From 9671d513273867e62d520ec3d71b4c038802f5ab Mon Sep 17 00:00:00 2001 From: Nyeriah Date: Mon, 29 Dec 2014 04:05:10 -0200 Subject: Scripts/Ulduar: Fixes Flame Leviathan entering evade mode if Pursue returns no target * Pursue is never cast on players at retail, however, being there without a vehicle doesn't prevent the boss from attacking you, nor does it enter evade mode. Closes #11199 --- .../Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index a240bc89a5e..c1568431809 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -548,6 +548,11 @@ class boss_flame_leviathan : public CreatureScript if (me->isAttackReady()) { Unit* target = ObjectAccessor::GetUnit(*me, _pursueTarget); + + // Pursue was unable to acquire a valid target, so get the current victim as target. + if (!target && me->GetVictim()) + target = me->GetVictim(); + if (me->IsWithinCombatRange(target, 30.0f)) { DoCast(target, SPELL_BATTERING_RAM); @@ -1648,7 +1653,7 @@ class FlameLeviathanPursuedTargetSelector bool operator()(WorldObject* target) const { - //! No players, only vehicles (@todo check if blizzlike) + //! No players, only vehicles. Pursue is never cast on players. Creature* creatureTarget = target->ToCreature(); if (!creatureTarget) return true; @@ -1698,12 +1703,7 @@ class spell_pursue : public SpellScriptLoader void FilterTargets(std::list& targets) { targets.remove_if(FlameLeviathanPursuedTargetSelector(GetCaster())); - if (targets.empty()) - { - if (Creature* caster = GetCaster()->ToCreature()) - caster->AI()->EnterEvadeMode(); - } - else + if (!targets.empty()) { //! In the end, only one target should be selected _target = Trinity::Containers::SelectRandomContainerElement(targets); -- cgit v1.2.3