mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Creatures: Implemented CREATURE_STATIC_FLAG_5_NO_LEAVECOMBAT_STATE_RESTORE
This commit is contained in:
@@ -307,7 +307,8 @@ bool CreatureAI::_EnterEvadeMode(EvadeReason /*why*/)
|
||||
return false;
|
||||
}
|
||||
|
||||
me->RemoveAurasOnEvade();
|
||||
if (me->IsStateRestoredOnEvade())
|
||||
me->RemoveAurasOnEvade();
|
||||
|
||||
me->CombatStop(true);
|
||||
if (!me->IsTapListNotClearedOnEvade())
|
||||
|
||||
@@ -179,6 +179,9 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
||||
bool IsInEvadeMode() const { return HasUnitState(UNIT_STATE_EVADE); }
|
||||
bool IsEvadingAttacks() const { return IsInEvadeMode() || CanNotReachTarget(); }
|
||||
|
||||
bool IsStateRestoredOnEvade() const { return !HasFlag(CREATURE_STATIC_FLAG_5_NO_LEAVECOMBAT_STATE_RESTORE); }
|
||||
void SetRestoreStateOnEvade(bool restoreOnEvade) { _staticFlags.ApplyFlag(CREATURE_STATIC_FLAG_5_NO_LEAVECOMBAT_STATE_RESTORE, !restoreOnEvade); }
|
||||
|
||||
bool AIM_Destroy();
|
||||
bool AIM_Create(CreatureAI* ai = nullptr);
|
||||
bool AIM_Initialize(CreatureAI* ai = nullptr);
|
||||
|
||||
@@ -147,11 +147,14 @@ void HomeMovementGenerator<Creature>::DoFinalize(Creature* owner, bool active, b
|
||||
if (!owner->HasCanSwimFlagOutOfCombat())
|
||||
owner->RemoveUnitFlag(UNIT_FLAG_CAN_SWIM);
|
||||
|
||||
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);
|
||||
}
|
||||
if (CreatureAI* ai = owner->AI())
|
||||
ai->JustReachedHome();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user