diff --git a/vwowrla.core/src/vwowrla/core/encounters/analysis.clj b/vwowrla.core/src/vwowrla/core/encounters/analysis.clj index 418fde6..71fbfef 100644 --- a/vwowrla.core/src/vwowrla/core/encounters/analysis.clj +++ b/vwowrla.core/src/vwowrla/core/encounters/analysis.clj @@ -259,6 +259,15 @@ (update-entity-damage-stats :in target-name damage-properties timestamp) (update-entity-damage-stats :out source-name damage-properties timestamp))) +(s/defn process-source-to-target-healing :- Encounter + [source-name :- s/Str + target-name :- s/Str + {:keys [skill] + :as heal-properties} :- HealProperties + timestamp :- Date + encounter :- Encounter] + encounter) + (s/defn process-entity-death :- Encounter [entity-name :- s/Str timestamp :- Date diff --git a/vwowrla.core/src/vwowrla/core/events/handlers.clj b/vwowrla.core/src/vwowrla/core/events/handlers.clj index 4906313..cf30c7a 100644 --- a/vwowrla.core/src/vwowrla/core/events/handlers.clj +++ b/vwowrla.core/src/vwowrla/core/events/handlers.clj @@ -122,12 +122,30 @@ (s/defmethod handle-event :skill-heals-target :- Encounter [{:keys [source-name skill crit? target-name amount timestamp]} :- CombatEvent encounter :- Encounter] - encounter) + (analysis/process-source-to-target-healing + source-name + target-name + {:skill skill + :actual-skill? true + :amount amount + :crit? crit?} + timestamp + encounter)) (s/defmethod handle-event :resource-gained :- Encounter [{:keys [target-name amount resource-type source-name skill timestamp]} :- CombatEvent encounter :- Encounter] - encounter) + (condp = resource-type + :health (analysis/process-source-to-target-healing + source-name + target-name + {:skill skill + ;:actual-skill? true ; TODO: this is not always true. e.g. if a potion is used (how to determine this?) + :amount amount + :crit? false} + timestamp + encounter) + encounter)) (s/defmethod handle-event :resource-lost :- Encounter [{:keys [target-name amount resource-type source-name skill timestamp]} :- CombatEvent diff --git a/vwowrla.core/src/vwowrla/core/schemas.clj b/vwowrla.core/src/vwowrla/core/schemas.clj index 75d5063..564f32a 100644 --- a/vwowrla.core/src/vwowrla/core/schemas.clj +++ b/vwowrla.core/src/vwowrla/core/schemas.clj @@ -93,4 +93,8 @@ ; TODO (def DamageProperties - {s/Any s/Any}) \ No newline at end of file + {s/Any s/Any}) + +; TODO +(def HealProperties + {s/Any s/Any})