diff options
author | Shauren <shauren.trinity@gmail.com> | 2013-08-19 22:15:39 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2013-08-19 22:16:05 +0200 |
commit | 44485a74ade53bd9733b662ef5b59e1b833f44d5 (patch) | |
tree | 945ea534a93f9fcc79c7f814e9d99d789740eeee | |
parent | e0f010b310d6d7c8ca3c696f941f17312bf3c01d (diff) |
Scripts/Icecrown Citadel: Fixed Ice Tomb targeting tanks in phase 3 in Sindragosa encounter
Closes #8778
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 999e7081d52..1b03022c9bd 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -196,6 +196,22 @@ class FrostBombExplosion : public BasicEvent uint64 _sindragosaGUID; }; +class FrostBeaconSelector +{ + public: + FrostBeaconSelector(Unit* source) : _source(source) { } + + bool operator()(Unit* target) const + { + return target->GetTypeId() == TYPEID_PLAYER && + target != _source->GetVictim() && + !target->HasAura(SPELL_ICE_TOMB_UNTARGETABLE); + } + + private: + Unit* _source; +}; + class boss_sindragosa : public CreatureScript { public: @@ -466,7 +482,7 @@ class boss_sindragosa : public CreatureScript me->GetMotionMaster()->MovePoint(POINT_AIR_PHASE_FAR, SindragosaAirPosFar); break; case EVENT_ICE_TOMB: - if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -SPELL_ICE_TOMB_UNTARGETABLE)) + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, FrostBeaconSelector(me))) { Talk(EMOTE_WARN_FROZEN_ORB, target->GetGUID()); DoCast(target, SPELL_ICE_TOMB_DUMMY, true); |