diff options
Diffstat (limited to 'src/game/CreatureAIImpl.h')
-rw-r--r-- | src/game/CreatureAIImpl.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/game/CreatureAIImpl.h b/src/game/CreatureAIImpl.h index 2ed0219ad6a..09efb138574 100644 --- a/src/game/CreatureAIImpl.h +++ b/src/game/CreatureAIImpl.h @@ -287,6 +287,47 @@ inline bool CreatureAI::UpdateVictimWithGaze() return me->getVictim(); } +inline bool CreatureAI::UpdateCombatState() +{ + if(!me->isInCombat()) + return false; + + if(!me->HasReactState(REACT_PASSIVE)) + { + if(Unit *victim = me->SelectVictim()) + AttackStart(victim); + return me->getVictim(); + } + else if(me->getThreatManager().isThreatListEmpty()) + { + EnterEvadeMode(); + return false; + } + + return true; +} + +inline bool CreatureAI::UpdateVictim() +{ + if(!me->isInCombat()) + return false; + + if(!me->HasReactState(REACT_PASSIVE)) + { + if(Unit *victim = me->SelectVictim()) + AttackStart(victim); + return me->getVictim(); + } + else if(me->getThreatManager().isThreatListEmpty()) + { + EnterEvadeMode(); + return false; + } + + return true; +} + +/* inline bool CreatureAI::UpdateVictim() { if(!me->isInCombat()) @@ -295,6 +336,7 @@ inline bool CreatureAI::UpdateVictim() AttackStart(victim); return me->getVictim(); } +*/ inline bool CreatureAI::_EnterEvadeMode() { |