aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_kologarn.cpp30
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_xt002.cpp13
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h13
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