From 9505607d957ad4c74528ab1b37aa9a47bac6a518 Mon Sep 17 00:00:00 2001 From: Machiavelli Date: Wed, 8 Jun 2011 20:06:41 +0200 Subject: Scripts/Spells: Proper target selection for 62775 - with thanks to Kaelima --- src/server/game/Spells/SpellMgr.cpp | 5 --- .../scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp | 41 ++++++++++++++++++++++ 2 files changed, 41 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index e7056243ff6..e5fd2526916 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -4023,11 +4023,6 @@ void SpellMgr::LoadSpellCustomAttr() spellInfo->MaxAffectedTargets = 1; count++; break; - case 62775: // Tympanic Tantrum - spellInfo->EffectRadiusIndex[EFFECT_0] = 12; // 100yds instead of 500 - spellInfo->EffectRadiusIndex[EFFECT_1] = 12; - count++; - break; // ENDOF ULDUAR SPELLS // // ICECROWN CITADEL SPELLS diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp index 1bc5e048ffa..732a61dff05 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp @@ -818,6 +818,46 @@ class spell_xt002_heart_overload_periodic : public SpellScriptLoader } }; +class PlayerOrPetCheck +{ + public: + bool operator() (Unit* unit) + { + if (unit->GetTypeId() != TYPEID_PLAYER) + if (!unit->ToCreature()->isPet()) + return true; + + return false; + } +}; + +class spell_xt002_tympanic_tantrum : public SpellScriptLoader +{ + public: + spell_xt002_tympanic_tantrum() : SpellScriptLoader("spell_xt002_tympanic_tantrum") { } + + class spell_xt002_tympanic_tantrum_SpellScript : public SpellScript + { + PrepareSpellScript(spell_xt002_tympanic_tantrum_SpellScript); + + void FilterTargets(std::list& unitList) + { + unitList.remove_if(PlayerOrPetCheck()); + } + + void Register() + { + OnUnitTargetSelect += SpellUnitTargetFn(spell_xt002_tympanic_tantrum_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_AREA_ENEMY_SRC); + OnUnitTargetSelect += SpellUnitTargetFn(spell_xt002_tympanic_tantrum_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_AREA_ENEMY_SRC); + } + }; + + SpellScript* GetSpellScript() const + { + return new spell_xt002_tympanic_tantrum_SpellScript(); + } +}; + void AddSC_boss_xt002() { new mob_xt002_heart(); @@ -831,4 +871,5 @@ void AddSC_boss_xt002() new spell_xt002_searing_light_spawn_life_spark(); new spell_xt002_gravity_bomb_spawn_void_zone(); new spell_xt002_heart_overload_periodic(); + new spell_xt002_tympanic_tantrum(); } -- cgit v1.2.3