aboutsummaryrefslogtreecommitdiff
path: root/src/game/NullCreatureAI.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-01-29 19:35:49 -0600
committermegamage <none@none>2009-01-29 19:35:49 -0600
commitb0bf621a139aaa6e620098fc7a4411a800fda43d (patch)
treea80cfed503a562c4e436814dc056e8b22386efef /src/game/NullCreatureAI.cpp
parent25ab1fa4adfe1e9be1f8bfb6701f6a0d48887770 (diff)
parentadee7cab17e191ab9d735c326cd611f0380736d6 (diff)
*Merge.
--HG-- branch : trunk
Diffstat (limited to 'src/game/NullCreatureAI.cpp')
-rw-r--r--src/game/NullCreatureAI.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/game/NullCreatureAI.cpp b/src/game/NullCreatureAI.cpp
index 4c1cb592967..164aa2f7974 100644
--- a/src/game/NullCreatureAI.cpp
+++ b/src/game/NullCreatureAI.cpp
@@ -19,7 +19,23 @@
*/
#include "NullCreatureAI.h"
+#include "Creature.h"
-NullCreatureAI::~NullCreatureAI()
+void PassiveAI::UpdateAI(const uint32)
{
+ if(me->isInCombat() && me->getAttackers().empty())
+ EnterEvadeMode();
+}
+
+void CritterAI::DamageTaken(Unit *done_by, uint32 &)
+{
+ if(!me->hasUnitState(UNIT_STAT_FLEEING))
+ me->SetControlled(true, UNIT_STAT_FLEEING);
+}
+
+void CritterAI::EnterEvadeMode()
+{
+ if(me->hasUnitState(UNIT_STAT_FLEEING))
+ me->SetControlled(false, UNIT_STAT_FLEEING);
+ CreatureAI::EnterEvadeMode();
}