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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user