Core/Scripts: Added SpellEffectInfo argument to CalcDamage and CalcHealing spell script hooks
This commit is contained in:
@@ -1362,7 +1362,7 @@ void Unit::CalculateMeleeDamage(Unit* victim, CalcDamageInfo* damageInfo, Weapon
|
||||
uint32 damage = 0;
|
||||
damage += CalculateDamage(damageInfo->AttackType, false, true);
|
||||
// Add melee damage bonus
|
||||
damage = MeleeDamageBonusDone(damageInfo->Target, damage, damageInfo->AttackType, DIRECT_DAMAGE, nullptr, MECHANIC_NONE, SpellSchoolMask(damageInfo->DamageSchoolMask));
|
||||
damage = MeleeDamageBonusDone(damageInfo->Target, damage, damageInfo->AttackType, DIRECT_DAMAGE, nullptr, nullptr, MECHANIC_NONE, SpellSchoolMask(damageInfo->DamageSchoolMask));
|
||||
damage = damageInfo->Target->MeleeDamageBonusTaken(this, damage, damageInfo->AttackType, DIRECT_DAMAGE, nullptr, SpellSchoolMask(damageInfo->DamageSchoolMask));
|
||||
|
||||
// Script Hook For CalculateMeleeDamage -- Allow scripts to change the Damage pre class mitigation calculations
|
||||
@@ -6706,7 +6706,7 @@ int32 Unit::SpellDamageBonusDone(Unit* victim, SpellInfo const* spellProto, int3
|
||||
auto callDamageScript = [&](int32& dmg, int32& flatMod, float& pctMod)
|
||||
{
|
||||
if (spell)
|
||||
spell->CallScriptCalcDamageHandlers(victim, dmg, flatMod, pctMod);
|
||||
spell->CallScriptCalcDamageHandlers(spellEffectInfo, victim, dmg, flatMod, pctMod);
|
||||
else if (aurEff)
|
||||
aurEff->GetBase()->CallScriptCalcDamageAndHealingHandlers(aurEff, aurEff->GetBase()->GetApplicationOfTarget(victim->GetGUID()), victim, dmg, flatMod, pctMod);
|
||||
};
|
||||
@@ -7295,7 +7295,7 @@ int32 Unit::SpellHealingBonusDone(Unit* victim, SpellInfo const* spellProto, int
|
||||
}
|
||||
|
||||
if (spell)
|
||||
spell->CallScriptCalcHealingHandlers(victim, healamount, DoneTotal, DoneTotalMod);
|
||||
spell->CallScriptCalcHealingHandlers(spellEffectInfo, victim, healamount, DoneTotal, DoneTotalMod);
|
||||
else if (aurEff)
|
||||
aurEff->GetBase()->CallScriptCalcDamageAndHealingHandlers(aurEff, aurEff->GetBase()->GetApplicationOfTarget(victim->GetGUID()), victim, healamount, DoneTotal, DoneTotalMod);
|
||||
|
||||
@@ -7786,7 +7786,7 @@ bool Unit::IsImmunedToAuraPeriodicTick(WorldObject const* caster, SpellInfo cons
|
||||
return false;
|
||||
}
|
||||
|
||||
int32 Unit::MeleeDamageBonusDone(Unit* pVictim, int32 damage, WeaponAttackType attType, DamageEffectType damagetype, SpellInfo const* spellProto /*= nullptr*/, Mechanics mechanic /*= nullptr*/, SpellSchoolMask damageSchoolMask /*= SPELL_SCHOOL_MASK_NORMAL*/, Spell* spell /*= nullptr*/, AuraEffect const* aurEff /*= nullptr*/)
|
||||
int32 Unit::MeleeDamageBonusDone(Unit* pVictim, int32 damage, WeaponAttackType attType, DamageEffectType damagetype, SpellInfo const* spellProto /*= nullptr*/, SpellEffectInfo const* spellEffectInfo /*= nullptr*/, Mechanics mechanic /*= nullptr*/, SpellSchoolMask damageSchoolMask /*= SPELL_SCHOOL_MASK_NORMAL*/, Spell* spell /*= nullptr*/, AuraEffect const* aurEff /*= nullptr*/)
|
||||
{
|
||||
if (!pVictim || damage == 0)
|
||||
return 0;
|
||||
@@ -7883,7 +7883,7 @@ int32 Unit::MeleeDamageBonusDone(Unit* pVictim, int32 damage, WeaponAttackType a
|
||||
AddPct(DoneTotalMod, GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_DAMAGE_DONE_FOR_MECHANIC, spellProto->Mechanic));
|
||||
|
||||
if (spell)
|
||||
spell->CallScriptCalcDamageHandlers(pVictim, damage, DoneFlatBenefit, DoneTotalMod);
|
||||
spell->CallScriptCalcDamageHandlers(*spellEffectInfo, pVictim, damage, DoneFlatBenefit, DoneTotalMod);
|
||||
else if (aurEff)
|
||||
aurEff->GetBase()->CallScriptCalcDamageAndHealingHandlers(aurEff, aurEff->GetBase()->GetApplicationOfTarget(pVictim->GetGUID()), pVictim, damage, DoneFlatBenefit, DoneTotalMod);
|
||||
|
||||
|
||||
@@ -1629,7 +1629,7 @@ class TC_GAME_API Unit : public WorldObject
|
||||
float SpellHealingPctDone(Unit* victim, SpellInfo const* spellProto) const;
|
||||
int32 SpellHealingBonusTaken(Unit* caster, SpellInfo const* spellProto, int32 healamount, DamageEffectType damagetype) const;
|
||||
|
||||
int32 MeleeDamageBonusDone(Unit* pVictim, int32 damage, WeaponAttackType attType, DamageEffectType damagetype, SpellInfo const* spellProto = nullptr, Mechanics mechanic = MECHANIC_NONE, SpellSchoolMask damageSchoolMask = SPELL_SCHOOL_MASK_NORMAL, Spell* spell = nullptr, AuraEffect const* aurEff = nullptr);
|
||||
int32 MeleeDamageBonusDone(Unit* pVictim, int32 damage, WeaponAttackType attType, DamageEffectType damagetype, SpellInfo const* spellProto = nullptr, SpellEffectInfo const* spellEffectInfo = nullptr, Mechanics mechanic = MECHANIC_NONE, SpellSchoolMask damageSchoolMask = SPELL_SCHOOL_MASK_NORMAL, Spell* spell = nullptr, AuraEffect const* aurEff = nullptr);
|
||||
int32 MeleeDamageBonusTaken(Unit* attacker, int32 pdamage, WeaponAttackType attType, DamageEffectType damagetype, SpellInfo const* spellProto = nullptr, SpellSchoolMask damageSchoolMask = SPELL_SCHOOL_MASK_NORMAL);
|
||||
|
||||
bool IsBlockCritical() const;
|
||||
|
||||
@@ -5644,7 +5644,7 @@ void AuraEffect::HandlePeriodicDamageAurasTick(Unit* target, Unit* caster) const
|
||||
|
||||
// Add melee damage bonuses (also check for negative)
|
||||
if (caster)
|
||||
damage = caster->MeleeDamageBonusDone(target, damage, attackType, DOT, GetSpellInfo(), GetSpellEffectInfo().Mechanic, GetSpellInfo()->GetSchoolMask(), nullptr, this);
|
||||
damage = caster->MeleeDamageBonusDone(target, damage, attackType, DOT, GetSpellInfo(), &GetSpellEffectInfo(), GetSpellEffectInfo().Mechanic, GetSpellInfo()->GetSchoolMask(), nullptr, this);
|
||||
|
||||
damage = target->MeleeDamageBonusTaken(caster, damage, attackType, DOT, GetSpellInfo());
|
||||
break;
|
||||
|
||||
@@ -9046,25 +9046,25 @@ void Spell::CallScriptCalcCritChanceHandlers(Unit const* victim, float& critChan
|
||||
}
|
||||
}
|
||||
|
||||
void Spell::CallScriptCalcDamageHandlers(Unit* victim, int32& damage, int32& flatMod, float& pctMod)
|
||||
void Spell::CallScriptCalcDamageHandlers(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damage, int32& flatMod, float& pctMod)
|
||||
{
|
||||
for (SpellScript* script : m_loadedScripts)
|
||||
{
|
||||
script->_PrepareScriptCall(SPELL_SCRIPT_HOOK_CALC_DAMAGE);
|
||||
for (SpellScript::DamageAndHealingCalcHandler const& calcDamage : script->CalcDamage)
|
||||
calcDamage.Call(script, victim, damage, flatMod, pctMod);
|
||||
calcDamage.Call(script, spellEffectInfo, victim, damage, flatMod, pctMod);
|
||||
|
||||
script->_FinishScriptCall();
|
||||
}
|
||||
}
|
||||
|
||||
void Spell::CallScriptCalcHealingHandlers(Unit* victim, int32& healing, int32& flatMod, float& pctMod)
|
||||
void Spell::CallScriptCalcHealingHandlers(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& healing, int32& flatMod, float& pctMod)
|
||||
{
|
||||
for (SpellScript* script : m_loadedScripts)
|
||||
{
|
||||
script->_PrepareScriptCall(SPELL_SCRIPT_HOOK_CALC_HEALING);
|
||||
for (SpellScript::DamageAndHealingCalcHandler const& calcHealing : script->CalcHealing)
|
||||
calcHealing.Call(script, victim, healing, flatMod, pctMod);
|
||||
calcHealing.Call(script, spellEffectInfo, victim, healing, flatMod, pctMod);
|
||||
|
||||
script->_FinishScriptCall();
|
||||
}
|
||||
|
||||
@@ -910,8 +910,8 @@ class TC_GAME_API Spell
|
||||
void CallScriptAfterHitHandlers();
|
||||
public:
|
||||
void CallScriptCalcCritChanceHandlers(Unit const* victim, float& chance);
|
||||
void CallScriptCalcDamageHandlers(Unit* victim, int32& damage, int32& flatMod, float& pctMod);
|
||||
void CallScriptCalcHealingHandlers(Unit* victim, int32& healing, int32& flatMod, float& pctMod);
|
||||
void CallScriptCalcDamageHandlers(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damage, int32& flatMod, float& pctMod);
|
||||
void CallScriptCalcHealingHandlers(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& healing, int32& flatMod, float& pctMod);
|
||||
protected:
|
||||
void CallScriptObjectAreaTargetSelectHandlers(std::list<WorldObject*>& targets, SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
||||
void CallScriptObjectTargetSelectHandlers(WorldObject*& target, SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
||||
|
||||
@@ -2876,7 +2876,7 @@ void Spell::EffectWeaponDmg()
|
||||
weaponDamage = std::max(weaponDamage, 0);
|
||||
|
||||
// Add melee damage bonuses (also check for negative)
|
||||
weaponDamage = unitCaster->MeleeDamageBonusDone(unitTarget, weaponDamage, m_attackType, SPELL_DIRECT_DAMAGE, m_spellInfo, mechanic, m_spellSchoolMask, this);
|
||||
weaponDamage = unitCaster->MeleeDamageBonusDone(unitTarget, weaponDamage, m_attackType, SPELL_DIRECT_DAMAGE, m_spellInfo, effectInfo, mechanic, m_spellSchoolMask, this);
|
||||
m_damage += unitTarget->MeleeDamageBonusTaken(unitCaster, weaponDamage, m_attackType, SPELL_DIRECT_DAMAGE, m_spellInfo);
|
||||
}
|
||||
|
||||
|
||||
@@ -698,11 +698,11 @@ public:
|
||||
public:
|
||||
union DamageAndHealingCalcFnType
|
||||
{
|
||||
void(SpellScript::* Member)(Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod);
|
||||
void(*Static)(Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod);
|
||||
void(SpellScript::* Member)(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod);
|
||||
void(*Static)(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod);
|
||||
};
|
||||
|
||||
using SafeWrapperType = void(*)(SpellScript* spellScript, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod, DamageAndHealingCalcFnType callImpl);
|
||||
using SafeWrapperType = void(*)(SpellScript* spellScript, SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod, DamageAndHealingCalcFnType callImpl);
|
||||
|
||||
template<typename ScriptFunc>
|
||||
explicit DamageAndHealingCalcHandler(ScriptFunc handler)
|
||||
@@ -714,31 +714,31 @@ public:
|
||||
|
||||
if constexpr (!std::is_void_v<ScriptClass>)
|
||||
{
|
||||
static_assert(std::is_invocable_r_v<void, ScriptFunc, ScriptClass, Unit*, int32&, int32&, float&>,
|
||||
"DamageAndHealingCalcHandler signature must be \"void CalcDamage(Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod)\"");
|
||||
static_assert(std::is_invocable_r_v<void, ScriptFunc, ScriptClass, SpellEffectInfo const&, Unit*, int32&, int32&, float&>,
|
||||
"DamageAndHealingCalcHandler signature must be \"void CalcDamage(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod)\"");
|
||||
|
||||
_callImpl = { .Member = reinterpret_cast<decltype(DamageAndHealingCalcFnType::Member)>(handler) };
|
||||
_safeWrapper = [](SpellScript* spellScript, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod, DamageAndHealingCalcFnType callImpl) -> void
|
||||
_safeWrapper = [](SpellScript* spellScript, SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod, DamageAndHealingCalcFnType callImpl) -> void
|
||||
{
|
||||
return (static_cast<ScriptClass*>(spellScript)->*reinterpret_cast<ScriptFunc>(callImpl.Member))(victim, damageOrHealing, flatMod, pctMod);
|
||||
return (static_cast<ScriptClass*>(spellScript)->*reinterpret_cast<ScriptFunc>(callImpl.Member))(spellEffectInfo, victim, damageOrHealing, flatMod, pctMod);
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
static_assert(std::is_invocable_r_v<void, ScriptFunc, Unit*, int32&, int32&, float&>,
|
||||
"DamageAndHealingCalcHandler signature must be \"static void CalcDamage(Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod)\"");
|
||||
static_assert(std::is_invocable_r_v<void, ScriptFunc, SpellEffectInfo const&, Unit*, int32&, int32&, float&>,
|
||||
"DamageAndHealingCalcHandler signature must be \"static void CalcDamage(SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod)\"");
|
||||
|
||||
_callImpl = { .Static = reinterpret_cast<decltype(DamageAndHealingCalcFnType::Static)>(handler) };
|
||||
_safeWrapper = [](SpellScript* /*spellScript*/, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod, DamageAndHealingCalcFnType callImpl) -> void
|
||||
_safeWrapper = [](SpellScript* /*spellScript*/, SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod, DamageAndHealingCalcFnType callImpl) -> void
|
||||
{
|
||||
return reinterpret_cast<ScriptFunc>(callImpl.Static)(victim, damageOrHealing, flatMod, pctMod);
|
||||
return reinterpret_cast<ScriptFunc>(callImpl.Static)(spellEffectInfo, victim, damageOrHealing, flatMod, pctMod);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
void Call(SpellScript* spellScript, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod) const
|
||||
void Call(SpellScript* spellScript, SpellEffectInfo const& spellEffectInfo, Unit* victim, int32& damageOrHealing, int32& flatMod, float& pctMod) const
|
||||
{
|
||||
return _safeWrapper(spellScript, victim, damageOrHealing, flatMod, pctMod, _callImpl);
|
||||
return _safeWrapper(spellScript, spellEffectInfo, victim, damageOrHealing, flatMod, pctMod, _callImpl);
|
||||
}
|
||||
private:
|
||||
DamageAndHealingCalcFnType _callImpl;
|
||||
|
||||
@@ -124,7 +124,7 @@ class boss_rajaxx : public CreatureScript
|
||||
// 25599 - Thundercrash
|
||||
class spell_rajaxx_thundercrash : public SpellScript
|
||||
{
|
||||
static void HandleDamageCalc(Unit const* victim, int32& damage, int32& /*flatMod*/, float& /*pctMod*/)
|
||||
static void HandleDamageCalc(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& damage, int32& /*flatMod*/, float& /*pctMod*/)
|
||||
{
|
||||
damage = victim->CountPctFromCurHealth(50);
|
||||
}
|
||||
|
||||
@@ -240,7 +240,7 @@ private:
|
||||
// 68793, 69050 - Magic's Bane
|
||||
class spell_bronjahm_magic_bane : public SpellScript
|
||||
{
|
||||
void CalculateDamage(Unit const* victim, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const
|
||||
{
|
||||
if (victim->GetPowerType() != POWER_MANA)
|
||||
return;
|
||||
|
||||
@@ -1282,7 +1282,7 @@ class spell_blood_council_shadow_prison : public AuraScript
|
||||
// 72999 - Shadow Prison
|
||||
class spell_blood_council_shadow_prison_damage : public SpellScript
|
||||
{
|
||||
void CalculateDamage(Unit const* victim, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
{
|
||||
if (Aura const* aur = victim->GetAura(GetSpellInfo()->Id))
|
||||
if (AuraEffect const* eff = aur->GetEffect(EFFECT_1))
|
||||
|
||||
@@ -1888,7 +1888,7 @@ class spell_igb_incinerating_blast : public SpellScript
|
||||
GetCaster()->SetPower(POWER_ENERGY, 0);
|
||||
}
|
||||
|
||||
void CalculateDamage(Unit const* /*victim*/, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* /*victim*/, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
{
|
||||
flatMod += _energyLeft * _energyLeft * 8;
|
||||
}
|
||||
|
||||
@@ -438,7 +438,7 @@ class spell_oculus_shock_lance : public SpellScript
|
||||
return ValidateSpellInfo({ SPELL_AMBER_SHOCK_CHARGE });
|
||||
}
|
||||
|
||||
void CalculateDamage(Unit const* victim, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
{
|
||||
if (AuraEffect const* shockCharges = victim->GetAuraEffect(SPELL_AMBER_SHOCK_CHARGE, EFFECT_0, GetCaster()->GetGUID()))
|
||||
{
|
||||
|
||||
@@ -102,7 +102,7 @@ class spell_torghast_touch_of_the_unseen : public AuraScript
|
||||
// 305060 - Yel'Shir's Powerglove
|
||||
class spell_torghast_yelshirs_powerglove : public SpellScript
|
||||
{
|
||||
void CalculateDamage(Unit const* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
if (SpellInfo const* triggeringSpell = GetTriggeringSpell())
|
||||
if (Aura const* triggerAura = GetCaster()->GetAura(triggeringSpell->Id))
|
||||
|
||||
@@ -464,7 +464,7 @@ class spell_item_echoing_blades_damage : public SpellScript
|
||||
return ValidateSpellEffect({ { SPELL_ECHOING_BLADES_TRAIT, EFFECT_2 } });
|
||||
}
|
||||
|
||||
void CalculateDamage(Unit const* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const
|
||||
{
|
||||
if (AuraEffect const* trait = GetCaster()->GetAuraEffect(SPELL_ECHOING_BLADES_TRAIT, EFFECT_2))
|
||||
damage = trait->GetAmount() * 2;
|
||||
|
||||
@@ -196,7 +196,7 @@ class spell_evo_fire_breath_damage : public SpellScript
|
||||
&& spellInfo->GetEffect(EFFECT_2).IsAura(SPELL_AURA_MOD_SILENCE); // validate we are removing the correct effect
|
||||
}
|
||||
|
||||
void AddBonusUpfrontDamage(Unit const* victim, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
void AddBonusUpfrontDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& /*damage*/, int32& flatMod, float& /*pctMod*/) const
|
||||
{
|
||||
spell_evo_fire_breath::data const* params = std::any_cast<spell_evo_fire_breath::data>(&GetSpell()->m_customArg);
|
||||
if (!params)
|
||||
|
||||
@@ -1013,7 +1013,7 @@ private:
|
||||
// 64208 - Consumption
|
||||
class spell_gen_consumption : public SpellScript
|
||||
{
|
||||
void CalculateDamage(Unit const* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) const
|
||||
{
|
||||
if (SpellInfo const* createdBySpell = sSpellMgr->GetSpellInfo(GetCaster()->m_unitData->CreatedBySpell, GetCastDifficulty()))
|
||||
damage = createdBySpell->GetEffect(EFFECT_1).CalcValue();
|
||||
@@ -5287,7 +5287,7 @@ class spell_gen_major_healing_cooldown_modifier : public SpellScript
|
||||
});
|
||||
}
|
||||
|
||||
void CalculateHealingBonus(Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateHealingBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
AddPct(pctMod, MajorPlayerHealingCooldownHelpers::GetBonusMultiplier(GetCaster(), GetSpellInfo()->Id));
|
||||
}
|
||||
|
||||
@@ -484,7 +484,7 @@ class spell_pri_abyssal_reverie : public SpellScript
|
||||
return ValidateSpellEffect({ { SPELL_PRIEST_ABYSSAL_REVERIE, EFFECT_0 } });
|
||||
}
|
||||
|
||||
void CalculateHealingBonus(Unit const* /*victim*/, int32 const& /*healing*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
void CalculateHealingBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* /*victim*/, int32 const& /*healing*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
spell_pri_atonement::TriggerArgs const* args = std::any_cast<spell_pri_atonement::TriggerArgs>(&GetSpell()->m_customArg);
|
||||
if (!args || !(args->DamageSchoolMask & SPELL_SCHOOL_MASK_SHADOW))
|
||||
@@ -1001,7 +1001,7 @@ class spell_pri_divine_service : public SpellScript
|
||||
&& ValidateSpellEffect({ { SPELL_PRIEST_DIVINE_SERVICE, EFFECT_0 } });
|
||||
}
|
||||
|
||||
void CalculateHealingBonus(Unit const* victim, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateHealingBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
if (AuraEffect const* divineServiceEffect = GetCaster()->GetAuraEffect(SPELL_PRIEST_DIVINE_SERVICE, EFFECT_0))
|
||||
if (Aura const* prayerOfMending = victim->GetAura(SPELL_PRIEST_PRAYER_OF_MENDING_AURA, GetCaster()->GetGUID()))
|
||||
@@ -1267,7 +1267,7 @@ class spell_pri_focused_mending : public SpellScript
|
||||
return ValidateSpellEffect({ { SPELL_PRIEST_FOCUSED_MENDING, EFFECT_0 } });
|
||||
}
|
||||
|
||||
void CalculateHealingBonus(Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateHealingBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
if (AuraEffect const* focusedMendingEffect = GetCaster()->GetAuraEffect(SPELL_PRIEST_FOCUSED_MENDING, EFFECT_0))
|
||||
{
|
||||
@@ -1675,7 +1675,7 @@ class spell_pri_lights_wrath : public SpellScript
|
||||
}
|
||||
}
|
||||
|
||||
void CalculateDamageBonus(Unit const* /*victim*/, int32 const& /*damage*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
void CalculateDamageBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* /*victim*/, int32 const& /*damage*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
Aura const* atonement = GetCaster()->GetAura(SPELL_PRIEST_ATONEMENT);
|
||||
if (!atonement)
|
||||
@@ -1775,7 +1775,7 @@ class spell_pri_mind_devourer_buff : public SpellScript
|
||||
_damageIncrease = mindDevourer->GetAmount();
|
||||
}
|
||||
|
||||
void CalculateDamage(Unit* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
AddPct(pctMod, _damageIncrease);
|
||||
}
|
||||
@@ -2075,7 +2075,7 @@ class spell_pri_power_of_the_dark_side_damage_bonus : public SpellScript
|
||||
return ValidateSpellInfo({ SPELL_PRIEST_POWER_OF_THE_DARK_SIDE });
|
||||
}
|
||||
|
||||
void CalculateDamageBonus(Unit* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateDamageBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*damage*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
if (AuraEffect* powerOfTheDarkSide = GetCaster()->GetAuraEffect(SPELL_PRIEST_POWER_OF_THE_DARK_SIDE, EFFECT_0))
|
||||
AddPct(pctMod, powerOfTheDarkSide->GetAmount());
|
||||
@@ -2096,7 +2096,7 @@ class spell_pri_power_of_the_dark_side_healing_bonus : public SpellScript
|
||||
return ValidateSpellInfo({ SPELL_PRIEST_POWER_OF_THE_DARK_SIDE });
|
||||
}
|
||||
|
||||
void CalculateHealingBonus(Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
void CalculateHealingBonus(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*healing*/, int32& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
if (AuraEffect* powerOfTheDarkSide = GetCaster()->GetAuraEffect(SPELL_PRIEST_POWER_OF_THE_DARK_SIDE, EFFECT_0))
|
||||
AddPct(pctMod, powerOfTheDarkSide->GetAmount());
|
||||
@@ -3094,7 +3094,7 @@ class spell_pri_shadow_word_death : public SpellScript
|
||||
&& spellInfo->GetEffect(EFFECT_5).IsEffect(SPELL_EFFECT_DUMMY);
|
||||
}
|
||||
|
||||
void HandleDamageCalculation(Unit const* victim, int32 const& /*damage*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
void HandleDamageCalculation(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32 const& /*damage*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
if (victim->HealthBelowPct(GetEffectInfo(EFFECT_2).CalcValue(GetCaster())))
|
||||
AddPct(pctMod, GetEffectInfo(EFFECT_3).CalcValue(GetCaster()));
|
||||
|
||||
@@ -406,7 +406,7 @@ class spell_rog_deadly_poison : public SpellScript
|
||||
// 32645 - Envenom
|
||||
class spell_rog_envenom : public SpellScript
|
||||
{
|
||||
void CalculateDamage(Unit* /*victim*/, int32& /*damage*/, int32& flatMod, float& pctMod) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*damage*/, int32& flatMod, float& pctMod) const
|
||||
{
|
||||
pctMod *= GetSpell()->GetPowerTypeCostAmount(POWER_COMBO_POINTS).value_or(0);
|
||||
|
||||
@@ -423,7 +423,7 @@ class spell_rog_envenom : public SpellScript
|
||||
// 196819 - Eviscerate
|
||||
class spell_rog_eviscerate : public SpellScript
|
||||
{
|
||||
void CalculateDamage(Unit* /*victim*/, int32& /*damage*/, int32& flatMod, float& pctMod) const
|
||||
void CalculateDamage(SpellEffectInfo const& /*spellEffectInfo*/, Unit* /*victim*/, int32& /*damage*/, int32& flatMod, float& pctMod) const
|
||||
{
|
||||
pctMod *= GetSpell()->GetPowerTypeCostAmount(POWER_COMBO_POINTS).value_or(0);
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@ class spell_warl_deaths_embrace : public SpellScript
|
||||
return ValidateSpellEffect({ { SPELL_WARLOCK_DEATHS_EMBRACE, EFFECT_3 } });
|
||||
}
|
||||
|
||||
void HandleDamageCalculation(Unit const* victim, int32 const& /*damage*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
void HandleDamageCalculation(SpellEffectInfo const& /*spellEffectInfo*/, Unit const* victim, int32 const& /*damage*/, int32 const& /*flatMod*/, float& pctMod) const
|
||||
{
|
||||
spell_warl_deaths_embrace_impl::HandleDamageOrHealingCalculation(GetCaster(), victim, pctMod, EFFECT_2, EFFECT_3);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user