Core/Creatures: Implemented CREATURE_STATIC_FLAG_5_NO_LEAVECOMBAT_STATE_RESTORE

Port From (https://github.com/TrinityCore/TrinityCore/commit/be3dc89c32e5b60df4c026d8b19505e529e199b6)
This commit is contained in:
hondacrx
2024-02-27 13:49:15 -05:00
parent ecf2ddeb5f
commit dcfcbd779a
3 changed files with 13 additions and 6 deletions
+2 -1
View File
@@ -290,7 +290,8 @@ namespace Game.AI
return false;
}
me.RemoveAurasOnEvade();
if (me.IsStateRestoredOnEvade())
me.RemoveAurasOnEvade();
// sometimes bosses stuck in combat?
me.CombatStop(true);
@@ -3404,6 +3404,9 @@ namespace Game.Entities
public bool IsInEvadeMode() { return HasUnitState(UnitState.Evade); }
public bool IsEvadingAttacks() { return IsInEvadeMode() || CanNotReachTarget(); }
public bool IsStateRestoredOnEvade() { return !HasFlag(CreatureStaticFlags5.NoLeavecombatStateRestore); }
public void SetRestoreStateOnEvade(bool restoreOnEvade) { _staticFlags.ApplyFlag(CreatureStaticFlags5.NoLeavecombatStateRestore, !restoreOnEvade); }
public override CreatureAI GetAI()
{
return (CreatureAI)i_AI;
@@ -63,11 +63,14 @@ namespace Game.AI
if (!owner.HasCanSwimFlagOutOfCombat())
owner.RemoveUnitFlag(UnitFlags.CanSwim);
owner.SetSpawnHealth();
owner.LoadCreaturesAddon();
owner.LoadCreaturesSparringHealth();
if (owner.IsVehicle())
owner.GetVehicleKit().Reset(true);
if (owner.IsStateRestoredOnEvade())
{
owner.SetSpawnHealth();
owner.LoadCreaturesAddon();
owner.LoadCreaturesSparringHealth();
if (owner.IsVehicle())
owner.GetVehicleKit().Reset(true);
}
CreatureAI ai = owner.GetAI();
if (ai != null)