Core/Scripts: Implemented new aura script hook OnEnterLeaveCombat

Port From (https://github.com/TrinityCore/TrinityCore/commit/2420f4e7a10c430ea28b2d71a17f54da0c244a54)
This commit is contained in:
hondacrx
2021-03-29 12:29:41 -04:00
parent 6977599b1b
commit e8959b884e
6 changed files with 55 additions and 5 deletions
+17 -2
View File
@@ -285,8 +285,8 @@ namespace Game.Entities
else if (!IsCharmed())
return;
}
else
ToPlayer().OnCombatExit();
OnCombatExit();
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.LeavingCombat);
}
@@ -328,6 +328,15 @@ namespace Game.Entities
return fThreat * m_threatModifier[(int)school];
}
public virtual void OnCombatExit()
{
foreach (var pair in m_appliedAuras)
{
AuraApplication aurApp = pair.Value;
aurApp.GetBase().CallScriptEnterLeaveCombatHandlers(aurApp, false);
}
}
public bool IsTargetableForAttack(bool checkFakeDeath = true)
{
if (!IsAlive())
@@ -1428,6 +1437,12 @@ namespace Game.Entities
foreach (var unit in m_Controlled)
unit.SetInCombatState(PvP, enemy);
foreach (var pair in m_appliedAuras)
{
AuraApplication aurApp = pair.Value;
aurApp.GetBase().CallScriptEnterLeaveCombatHandlers(aurApp, true);
}
RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags.EnteringCombat);
ProcSkillsAndAuras(enemy, ProcFlags.EnterCombat, ProcFlags.None, ProcFlagsSpellType.MaskAll, ProcFlagsSpellPhase.None, ProcFlagsHit.None, null, null, null);
}