diff --git a/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/zone/naxxramas/boss_gothik.cpp index 6b0d5cf65f..ecc9a8d8d0 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 1ab7c5e333..8ce017a936 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 535ca8ca21..05dea45ed2 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 f61aca2440..143dfec99d 100644 --- a/src/game/CreatureAI.cpp +++ b/src/game/CreatureAI.cpp @@ -145,6 +145,16 @@ bool CreatureAI::UpdateVictimWithGaze() } 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; diff --git a/src/game/CreatureAI.h b/src/game/CreatureAI.h index d9d437c936..91fabe3044 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: