Core/Creatures: Implemented CREATURE_STATIC_FLAG_5_NO_LEAVECOMBAT_STATE_RESTORE
This commit is contained in:
1 parent
e130290f83
commit
8c7b6f2bcf
3 files changed
+16
-8
No files matched your search
@@ -304,7 +304,8 @@ bool CreatureAI::_EnterEvadeMode(EvadeReason /*why*/)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
me->RemoveAurasOnEvade();
|
if (me->IsStateRestoredOnEvade())
|
||||||
|
me->RemoveAurasOnEvade();
|
||||||
|
|
||||||
me->CombatStop(true);
|
me->CombatStop(true);
|
||||||
me->LoadCreaturesAddon();
|
me->LoadCreaturesAddon();
|
||||||
|
|||||||
@@ -170,6 +170,9 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
|
|||||||
bool IsInEvadeMode() const { return HasUnitState(UNIT_STATE_EVADE); }
|
bool IsInEvadeMode() const { return HasUnitState(UNIT_STATE_EVADE); }
|
||||||
bool IsEvadingAttacks() const { return IsInEvadeMode() || CanNotReachTarget(); }
|
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_Destroy();
|
||||||
bool AIM_Create(CreatureAI* ai = nullptr);
|
bool AIM_Create(CreatureAI* ai = nullptr);
|
||||||
bool AIM_Initialize(CreatureAI* ai = nullptr);
|
bool AIM_Initialize(CreatureAI* ai = nullptr);
|
||||||
|
|||||||
@@ -81,14 +81,18 @@ void HomeMovementGenerator<Creature>::DoFinalize(Creature* owner)
|
|||||||
{
|
{
|
||||||
if (_arrived)
|
if (_arrived)
|
||||||
{
|
{
|
||||||
owner->ClearUnitState(UNIT_STATE_EVADE);
|
if (owner->IsStateRestoredOnEvade())
|
||||||
owner->SetWalk(true);
|
{
|
||||||
owner->InitializeMovementCapabilities();
|
owner->ClearUnitState(UNIT_STATE_EVADE);
|
||||||
owner->LoadCreaturesAddon();
|
owner->SetWalk(true);
|
||||||
if (owner->IsVehicle())
|
owner->InitializeMovementCapabilities();
|
||||||
owner->GetVehicleKit()->Reset(true);
|
owner->SetSpawnHealth();
|
||||||
|
owner->LoadCreaturesAddon();
|
||||||
|
if (owner->IsVehicle())
|
||||||
|
owner->GetVehicleKit()->Reset(true);
|
||||||
|
}
|
||||||
|
|
||||||
owner->AI()->JustReachedHome();
|
owner->AI()->JustReachedHome();
|
||||||
owner->SetSpawnHealth();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user