From 870c72d367976638f15b41af9a6f82a8eade0abd Mon Sep 17 00:00:00 2001 From: kckckc Date: Sat, 11 Feb 2023 23:01:47 -0800 Subject: [PATCH] feat #1968: Add afterGiveHp event --- src/server/components/stats.js | 17 ++++++++++++++++- .../config/spells/spellSingleTargetHeal.js | 8 +++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/server/components/stats.js b/src/server/components/stats.js index 6c7fa06a..fe38d974 100644 --- a/src/server/components/stats.js +++ b/src/server/components/stats.js @@ -596,7 +596,17 @@ module.exports = { source.fireEvent('afterDealDamage', damage, obj); }, - getHp: function (heal, source) { + /* + Gives hp to heal.target + heal: Damage object returned by combat.getDamage + source: Source object + event: Optional config object. We want to eventually phase out the first 2 args. + heal: Same as 1st parameter + source: Same as 2nd parameter + target: Target object (heal.target) + spell: Optional spell object that caused this event + */ + getHp: function (heal, source, event) { let amount = heal.amount; if (amount === 0) return; @@ -646,6 +656,11 @@ module.exports = { } this.obj.syncer.setObject(false, 'stats', 'values', 'hp', values.hp); + + //We want to eventually replace the first two args with the event object + // For now, only fire the event when the event object is specified. + if (!heal.noEvents && event) + source.fireEvent('afterGiveHp', event); }, save: function () { diff --git a/src/server/config/spells/spellSingleTargetHeal.js b/src/server/config/spells/spellSingleTargetHeal.js index 939aeb94..8963e108 100644 --- a/src/server/config/spells/spellSingleTargetHeal.js +++ b/src/server/config/spells/spellSingleTargetHeal.js @@ -18,7 +18,13 @@ module.exports = { const { x, y } = target; const amount = this.getDamage(target, true); - target.stats.getHp(amount, this.obj); + const event = { + heal: amount, + source: this.obj, + target, + spell: this + }; + target.stats.getHp(amount, this.obj, event); const effect = { x,