diff options
author | Nyeriah <sarah.trysan@live.com> | 2014-12-29 04:05:10 -0200 |
---|---|---|
committer | Nyeriah <sarah.trysan@live.com> | 2014-12-29 04:05:10 -0200 |
commit | 9671d513273867e62d520ec3d71b4c038802f5ab (patch) | |
tree | 6a38bed28bf0dd71681e513a8da3cdab7204fe5e | |
parent | be544545388b8622f0f8917dc93b52c5108c5868 (diff) |
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
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
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<WorldObject*>& 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); |