diff options
| author | Shauren <shauren.trinity@gmail.com> | 2023-08-02 00:12:16 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2023-08-02 00:12:16 +0200 |
| commit | 8594fcfe8a0085a087bce510e3b4cb14f632434f (patch) | |
| tree | 67eb3e764b43c3c64fc3bba86f0607f6f8384c8b /src/server/scripts/Spells | |
| parent | 9cdf3530f41e18fc815e7b164e40c01a18c3d757 (diff) | |
Scripts/Spells: Converted some damage calculating scripts to use new hooks as examples
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_azerite.cpp | 6 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 14 | ||||
| -rw-r--r-- | src/server/scripts/Spells/spell_priest.cpp | 28 |
3 files changed, 12 insertions, 36 deletions
diff --git a/src/server/scripts/Spells/spell_azerite.cpp b/src/server/scripts/Spells/spell_azerite.cpp index cc375591d3b..760bcaa515a 100644 --- a/src/server/scripts/Spells/spell_azerite.cpp +++ b/src/server/scripts/Spells/spell_azerite.cpp @@ -464,10 +464,10 @@ class spell_item_echoing_blades_damage : public SpellScript return ValidateSpellEffect({ { SPELL_ECHOING_BLADES_TRAIT, EFFECT_2 } }); } - void CalculateDamage(SpellEffIndex /*effIndex*/) + void CalculateDamage(Unit const* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const { if (AuraEffect const* trait = GetCaster()->GetAuraEffect(SPELL_ECHOING_BLADES_TRAIT, EFFECT_2)) - SetHitDamage(trait->GetAmount() * 2); + damage = trait->GetAmount() * 2; } void ForceCritical(Unit const* /*victim*/, float& critChance) @@ -477,7 +477,7 @@ class spell_item_echoing_blades_damage : public SpellScript void Register() override { - OnEffectLaunchTarget += SpellEffectFn(spell_item_echoing_blades_damage::CalculateDamage, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + CalcDamage += SpellCalcDamageFn(spell_item_echoing_blades_damage::CalculateDamage); OnCalcCritChance += SpellOnCalcCritChanceFn(spell_item_echoing_blades_damage::ForceCritical); } }; diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index be1fd4ae318..34352ba96c6 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -1056,23 +1056,15 @@ private: // 64208 - Consumption class spell_gen_consumption : public SpellScript { - void HandleDamageCalc(SpellEffIndex /*effIndex*/) + void CalculateDamage(Unit const* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const { - Creature* caster = GetCaster()->ToCreature(); - if (!caster) - return; - - int32 damage = 0; - if (SpellInfo const* createdBySpell = sSpellMgr->GetSpellInfo(caster->m_unitData->CreatedBySpell, GetCastDifficulty())) + if (SpellInfo const* createdBySpell = sSpellMgr->GetSpellInfo(GetCaster()->m_unitData->CreatedBySpell, GetCastDifficulty())) damage = createdBySpell->GetEffect(EFFECT_1).CalcValue(); - - if (damage) - SetEffectValue(damage); } void Register() override { - OnEffectLaunchTarget += SpellEffectFn(spell_gen_consumption::HandleDamageCalc, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + CalcDamage += SpellCalcDamageFn(spell_gen_consumption::CalculateDamage); } }; diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 1b3fc16ff3c..36b6584076c 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -968,23 +968,15 @@ class spell_pri_power_of_the_dark_side_damage_bonus : public SpellScript return ValidateSpellInfo({ SPELL_PRIEST_POWER_OF_THE_DARK_SIDE }); } - void HandleLaunchTarget(SpellEffIndex effIndex) + void CalculateDamageBonus(Unit* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const { if (AuraEffect* powerOfTheDarkSide = GetCaster()->GetAuraEffect(SPELL_PRIEST_POWER_OF_THE_DARK_SIDE, EFFECT_0)) - { - PreventHitDefaultEffect(effIndex); - - float damageBonus = GetCaster()->SpellDamageBonusDone(GetHitUnit(), GetSpellInfo(), GetEffectValue(), SPELL_DIRECT_DAMAGE, GetEffectInfo()); - float value = damageBonus + damageBonus * GetEffectVariance(); - value *= 1.0f + (powerOfTheDarkSide->GetAmount() / 100.0f); - value = GetHitUnit()->SpellDamageBonusTaken(GetCaster(), GetSpellInfo(), value, SPELL_DIRECT_DAMAGE); - SetHitDamage(value); - } + AddPct(pctMod, powerOfTheDarkSide->GetAmount()); } void Register() override { - OnEffectLaunchTarget += SpellEffectFn(spell_pri_power_of_the_dark_side_damage_bonus::HandleLaunchTarget, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); + CalcDamage += SpellCalcDamageFn(spell_pri_power_of_the_dark_side_damage_bonus::CalculateDamageBonus); } }; @@ -997,23 +989,15 @@ class spell_pri_power_of_the_dark_side_healing_bonus : public SpellScript return ValidateSpellInfo({ SPELL_PRIEST_POWER_OF_THE_DARK_SIDE }); } - void HandleLaunchTarget(SpellEffIndex effIndex) + void CalculateHealingBonus(Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const { if (AuraEffect* powerOfTheDarkSide = GetCaster()->GetAuraEffect(SPELL_PRIEST_POWER_OF_THE_DARK_SIDE, EFFECT_0)) - { - PreventHitDefaultEffect(effIndex); - - float healingBonus = GetCaster()->SpellHealingBonusDone(GetHitUnit(), GetSpellInfo(), GetEffectValue(), HEAL, GetEffectInfo()); - float value = healingBonus + healingBonus * GetEffectVariance(); - value *= 1.0f + (powerOfTheDarkSide->GetAmount() / 100.0f); - value = GetHitUnit()->SpellHealingBonusTaken(GetCaster(), GetSpellInfo(), value, HEAL); - SetHitHeal(value); - } + AddPct(pctMod, powerOfTheDarkSide->GetAmount()); } void Register() override { - OnEffectLaunchTarget += SpellEffectFn(spell_pri_power_of_the_dark_side_healing_bonus::HandleLaunchTarget, EFFECT_0, SPELL_EFFECT_HEAL); + CalcHealing += SpellCalcHealingFn(spell_pri_power_of_the_dark_side_healing_bonus::CalculateHealingBonus); } }; |
