feat(Core/Scripting): Expand ModifySpellDamageTaken() to include the … (#13707)
feat(Core/Scripting): Expand ModifySpellDamageTaken() to include the spell data
This commit is contained in:
@@ -1305,7 +1305,7 @@ void Unit::CalculateSpellDamageTaken(SpellNonMeleeDamage* damageInfo, int32 dama
|
|||||||
uint32 crTypeMask = victim->GetCreatureTypeMask();
|
uint32 crTypeMask = victim->GetCreatureTypeMask();
|
||||||
|
|
||||||
// Script Hook For CalculateSpellDamageTaken -- Allow scripts to change the Damage post class mitigation calculations
|
// Script Hook For CalculateSpellDamageTaken -- Allow scripts to change the Damage post class mitigation calculations
|
||||||
sScriptMgr->ModifySpellDamageTaken(damageInfo->target, damageInfo->attacker, damage);
|
sScriptMgr->ModifySpellDamageTaken(damageInfo->target, damageInfo->attacker, damage, spellInfo);
|
||||||
|
|
||||||
int32 cleanDamage = 0;
|
int32 cleanDamage = 0;
|
||||||
if (Unit::IsDamageReducedByArmor(damageSchoolMask, spellInfo))
|
if (Unit::IsDamageReducedByArmor(damageSchoolMask, spellInfo))
|
||||||
|
|||||||
@@ -69,11 +69,11 @@ void ScriptMgr::ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage)
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScriptMgr::ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage)
|
void ScriptMgr::ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage, SpellInfo const* spellInfo)
|
||||||
{
|
{
|
||||||
ExecuteScript<UnitScript>([&](UnitScript* script)
|
ExecuteScript<UnitScript>([&](UnitScript* script)
|
||||||
{
|
{
|
||||||
script->ModifySpellDamageTaken(target, attacker, damage);
|
script->ModifySpellDamageTaken(target, attacker, damage, spellInfo);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -428,7 +428,7 @@ public:
|
|||||||
virtual void ModifyMeleeDamage(Unit* /*target*/, Unit* /*attacker*/, uint32& /*damage*/) { }
|
virtual void ModifyMeleeDamage(Unit* /*target*/, Unit* /*attacker*/, uint32& /*damage*/) { }
|
||||||
|
|
||||||
// Called when Spell Damage is being Dealt
|
// Called when Spell Damage is being Dealt
|
||||||
virtual void ModifySpellDamageTaken(Unit* /*target*/, Unit* /*attacker*/, int32& /*damage*/) { }
|
virtual void ModifySpellDamageTaken(Unit* /*target*/, Unit* /*attacker*/, int32& /*damage*/, SpellInfo const* /*spellInfo*/) { }
|
||||||
|
|
||||||
// Called when Heal is Recieved
|
// Called when Heal is Recieved
|
||||||
virtual void ModifyHealReceived(Unit* /*target*/, Unit* /*healer*/, uint32& /*heal*/, SpellInfo const* /*spellInfo*/) { }
|
virtual void ModifyHealReceived(Unit* /*target*/, Unit* /*healer*/, uint32& /*heal*/, SpellInfo const* /*spellInfo*/) { }
|
||||||
@@ -2432,7 +2432,7 @@ public: /* UnitScript */
|
|||||||
void OnDamage(Unit* attacker, Unit* victim, uint32& damage);
|
void OnDamage(Unit* attacker, Unit* victim, uint32& damage);
|
||||||
void ModifyPeriodicDamageAurasTick(Unit* target, Unit* attacker, uint32& damage);
|
void ModifyPeriodicDamageAurasTick(Unit* target, Unit* attacker, uint32& damage);
|
||||||
void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage);
|
void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage);
|
||||||
void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage);
|
void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage, SpellInfo const* spellInfo);
|
||||||
void ModifyHealReceived(Unit* target, Unit* healer, uint32& addHealth, SpellInfo const* spellInfo);
|
void ModifyHealReceived(Unit* target, Unit* healer, uint32& addHealth, SpellInfo const* spellInfo);
|
||||||
uint32 DealDamage(Unit* AttackerUnit, Unit* pVictim, uint32 damage, DamageEffectType damagetype);
|
uint32 DealDamage(Unit* AttackerUnit, Unit* pVictim, uint32 damage, DamageEffectType damagetype);
|
||||||
void OnBeforeRollMeleeOutcomeAgainst(Unit const* attacker, Unit const* victim, WeaponAttackType attType, int32& attackerMaxSkillValueForLevel, int32& victimMaxSkillValueForLevel, int32& attackerWeaponSkill, int32& victimDefenseSkill, int32& crit_chance, int32& miss_chance, int32& dodge_chance, int32& parry_chance, int32& block_chance);
|
void OnBeforeRollMeleeOutcomeAgainst(Unit const* attacker, Unit const* victim, WeaponAttackType attType, int32& attackerMaxSkillValueForLevel, int32& victimMaxSkillValueForLevel, int32& attackerWeaponSkill, int32& victimDefenseSkill, int32& crit_chance, int32& miss_chance, int32& dodge_chance, int32& parry_chance, int32& block_chance);
|
||||||
|
|||||||
Reference in New Issue
Block a user