diff options
-rw-r--r-- | src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp | 2 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp | 2 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp | 2 | ||||
-rw-r--r-- | src/game/CreatureAI.cpp | 10 | ||||
-rw-r--r-- | src/game/CreatureAI.h | 1 |
5 files changed, 14 insertions, 3 deletions
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp index 6b0d5cf65fe..ecc9a8d8d03 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp @@ -202,7 +202,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp index 1ab7c5e3334..8ce017a936e 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_noth.cpp @@ -128,7 +128,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public BossAI void UpdateAI(const uint32 diff) { - if(!UpdateVictim() || !CheckInRoom()) + if(!UpdateCombatState() || !CheckInRoom()) return; events.Update(diff); diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp index 535ca8ca21f..05dea45ed25 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/boss_sapphiron.cpp @@ -173,7 +173,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI events.Update(diff); - if(phase != PHASE_BIRTH && !UpdateVictim() || !CheckInRoom()) + if(phase != PHASE_BIRTH && !UpdateCombatState() || !CheckInRoom()) return; if(phase == PHASE_GROUND) diff --git a/src/game/CreatureAI.cpp b/src/game/CreatureAI.cpp index f61aca24405..143dfec99d3 100644 --- a/src/game/CreatureAI.cpp +++ b/src/game/CreatureAI.cpp @@ -149,6 +149,16 @@ bool CreatureAI::UpdateVictim() if(!me->isInCombat()) return false; + if(Unit *victim = me->SelectVictim()) + AttackStart(victim); + return me->getVictim(); +} + +bool CreatureAI::UpdateCombatState() +{ + if(!me->isInCombat()) + return false; + if(!me->HasReactState(REACT_PASSIVE)) { if(Unit *victim = me->SelectVictim()) diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h index d9d437c936c..91fabe30448 100644 --- a/src/game/CreatureAI.h +++ b/src/game/CreatureAI.h @@ -72,6 +72,7 @@ class TRINITY_DLL_SPEC CreatureAI : public UnitAI bool UpdateVictim(); bool UpdateVictimWithGaze(); + bool UpdateCombatState(); void SelectNearestTarget(Unit *who); public: |