diff options
Diffstat (limited to 'src/server/scripts')
3 files changed, 41 insertions, 15 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp index eccc497a748..7edec45ca5e 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp @@ -330,8 +330,6 @@ class boss_kologarn : public CreatureScript                  if (!arm->isAlive())                      arm->Respawn(); -                // HACK: We should send spell SPELL_ARM_ENTER_VEHICLE here, but this will not work, because -                // the aura system will not allow it to stack from two different casters                  int32 seatId = arm->GetEntry() == NPC_LEFT_ARM ? 0 : 1;                  arm->CastCustomSpell(SPELL_ARM_ENTER_VEHICLE, SPELLVALUE_BASE_POINT0, seatId+1, me, true);                  arm->CastSpell(arm, SPELL_ARM_ENTER_VISUAL, true); @@ -625,13 +623,41 @@ class spell_ulduar_stone_grip : public SpellScriptLoader          }  }; +class spell_kologarn_stone_shout : public SpellScriptLoader +{ +    public: +        spell_kologarn_stone_shout() : SpellScriptLoader("spell_kologarn_stone_shout") { } + +        class spell_kologarn_stone_shout_SpellScript : public SpellScript +        { +            PrepareSpellScript(spell_kologarn_stone_shout_SpellScript); + +            void FilterTargets(std::list<Unit*>& unitList) +            { +                unitList.remove_if(PlayerOrPetCheck()); +            } + +            void Register() +            { +                OnUnitTargetSelect += SpellUnitTargetFn(spell_kologarn_stone_shout_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_AREA_ENEMY_SRC); +            } +        }; + +        SpellScript* GetSpellScript() const +        { +            return new spell_kologarn_stone_shout_SpellScript(); +        } +}; +  void AddSC_boss_kologarn()  {      new boss_kologarn(); +      new spell_ulduar_rubble_summon();      new spell_ulduar_squeezed_lifeless();      new spell_ulduar_cancel_stone_grip();      new spell_ulduar_stone_grip_cast_target();      new spell_ulduar_stone_grip_absorb();      new spell_ulduar_stone_grip(); +    new spell_kologarn_stone_shout();  } diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp index 8b9fee2f72d..7a137b07465 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp @@ -935,19 +935,6 @@ 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: diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h index b2c268b6b49..ed78d02f40d 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h @@ -186,4 +186,17 @@ CreatureAI* GetUlduarAI(Creature* creature)      return NULL;  } +class PlayerOrPetCheck +{ +    public: +        bool operator() (Unit* unit) +        { +            if (unit->GetTypeId() != TYPEID_PLAYER) +                if (!unit->ToCreature()->isPet()) +                    return true; + +            return false; +        } +}; +  #endif  | 
