mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-30 17:13:47 +00:00
fix(Core/Creatures): Critters should start fleeing upon entering comb… (#14253)
This commit is contained in:
@@ -69,30 +69,30 @@ void PossessedAI::KilledUnit(Unit* /*victim*/)
|
||||
// victim->RemoveDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
|
||||
}
|
||||
|
||||
void CritterAI::DamageTaken(Unit*, uint32&, DamageEffectType, SpellSchoolMask)
|
||||
void CritterAI::EnterCombat(Unit* who)
|
||||
{
|
||||
if (!me->HasUnitState(UNIT_STATE_FLEEING))
|
||||
me->SetControlled(true, UNIT_STATE_FLEEING);
|
||||
{
|
||||
me->SetControlled(true, UNIT_STATE_FLEEING, who);
|
||||
}
|
||||
}
|
||||
|
||||
_combatTimer = 1;
|
||||
void CritterAI::MovementInform(uint32 type, uint32 /*id*/)
|
||||
{
|
||||
if (type == TIMED_FLEEING_MOTION_TYPE)
|
||||
{
|
||||
EnterEvadeMode(EVADE_REASON_OTHER);
|
||||
}
|
||||
}
|
||||
|
||||
void CritterAI::EnterEvadeMode(EvadeReason why)
|
||||
{
|
||||
if (me->HasUnitState(UNIT_STATE_FLEEING))
|
||||
me->SetControlled(false, UNIT_STATE_FLEEING);
|
||||
CreatureAI::EnterEvadeMode(why);
|
||||
_combatTimer = 0;
|
||||
}
|
||||
|
||||
void CritterAI::UpdateAI(uint32 diff)
|
||||
{
|
||||
if (me->IsInCombat())
|
||||
{
|
||||
_combatTimer += diff;
|
||||
if (_combatTimer >= 5000)
|
||||
EnterEvadeMode(EVADE_REASON_OTHER);
|
||||
me->SetControlled(false, UNIT_STATE_FLEEING);
|
||||
}
|
||||
|
||||
CreatureAI::EnterEvadeMode(why);
|
||||
}
|
||||
|
||||
int32 CritterAI::Permissible(Creature const* creature)
|
||||
|
||||
@@ -66,16 +66,14 @@ public:
|
||||
class CritterAI : public PassiveAI
|
||||
{
|
||||
public:
|
||||
explicit CritterAI(Creature* c) : PassiveAI(c) { _combatTimer = 0; }
|
||||
explicit CritterAI(Creature* c) : PassiveAI(c) { }
|
||||
|
||||
void DamageTaken(Unit* /*done_by*/, uint32& /*damage*/, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask) override;
|
||||
void EnterCombat(Unit* /*who*/) override;
|
||||
void EnterEvadeMode(EvadeReason why) override;
|
||||
void UpdateAI(uint32) override;
|
||||
void MovementInform(uint32 type, uint32 id) override;
|
||||
void UpdateAI(uint32 /*diff*/) override { }
|
||||
|
||||
static int32 Permissible(Creature const* creature);
|
||||
// Xinef: Added
|
||||
private:
|
||||
uint32 _combatTimer;
|
||||
};
|
||||
|
||||
class TriggerAI : public NullCreatureAI
|
||||
|
||||
Reference in New Issue
Block a user