aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjohnholiver <johnholiver@gmail.com>2011-05-07 00:07:34 -0300
committerjohnholiver <johnholiver@gmail.com>2011-05-07 00:07:34 -0300
commit64c8fb2b423b60ce6e7ce4e072a5471cac4dfdc4 (patch)
tree548c93356e9097482d3abd09942654adbe58d55f /src
parenta202404e7a4169a94d984382cb402ad31f211ebb (diff)
Scripts/Trial of the Crusader: Added missing difficulty checks for Valkyrs and Anub'arak
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp4
-rwxr-xr-xsrc/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp88
2 files changed, 53 insertions, 39 deletions
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 7002c1c2fb3..b7e38f99022 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -104,6 +104,8 @@ enum BossSpells
SPELL_SPIKE_TELE = 66170,
};
+#define SPELL_PERMAFROST_HELPER RAID_MODE<uint32>(66193,67856,67855,67857)
+
enum SummonActions
{
ACTION_SHADOW_STRIKE,
@@ -533,7 +535,7 @@ public:
}
else
{
- if (!me->HasAura(SPELL_PERMAFROST))
+ if (!me->HasAura(SPELL_PERMAFROST_HELPER))
{
DoCast(me, SPELL_SUBMERGE_EFFECT);
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_OOC_NOT_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
index 64628fe66a0..f20b7e1c7bb 100755
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp
@@ -88,14 +88,20 @@ enum BossSpells
SPELL_BERSERK = 64238,
SPELL_NONE = 0,
- SPELL_EMPOWERED_DARK = 67215,
- SPELL_EMPOWERED_LIGHT = 67218,
+ SPELL_EMPOWERED_DARK = 65724,
+ SPELL_EMPOWERED_LIGHT = 65748,
SPELL_UNLEASHED_DARK = 65808,
SPELL_UNLEASHED_LIGHT = 65795,
//PowerUp 67604
};
+#define SPELL_DARK_ESSENCE_HELPER RAID_MODE<uint32>(65684, 67176, 67177, 67178)
+#define SPELL_LIGHT_ESSENCE_HELPER RAID_MODE<uint32>(65686, 67222, 67223, 67224)
+
+#define SPELL_EMPOWERED_DARK_HELPER RAID_MODE<uint32>(65724,67213,67214,67215)
+#define SPELL_EMPOWERED_LIGHT_HELPER RAID_MODE<uint32>(65748, 67216, 67217, 67218)
+
enum Actions
{
ACTION_VORTEX,
@@ -216,19 +222,10 @@ struct boss_twin_baseAI : public ScriptedAI
switch (pSummoned->GetEntry())
{
case NPC_LIGHT_ESSENCE:
+ m_pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_LIGHT_ESSENCE_HELPER);
+ break;
case NPC_DARK_ESSENCE:
- Map* pMap = me->GetMap();
- Map::PlayerList const &lPlayers = pMap->GetPlayers();
- for (Map::PlayerList::const_iterator itr = lPlayers.begin(); itr != lPlayers.end(); ++itr)
- {
- Unit* pPlayer = itr->getSource();
- if (!pPlayer) continue;
- if (pPlayer->isAlive())
- if (pSummoned->GetEntry() == NPC_LIGHT_ESSENCE)
- pPlayer->RemoveAurasDueToSpell(SPELL_LIGHT_ESSENCE);
- if (pSummoned->GetEntry() == NPC_DARK_ESSENCE)
- pPlayer->RemoveAurasDueToSpell(SPELL_DARK_ESSENCE);
- }
+ m_pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DARK_ESSENCE_HELPER);
break;
}
Summons.Despawn(pSummoned);
@@ -457,9 +454,9 @@ public:
m_uiSisterNpcId = NPC_DARKBANE;
m_uiColorballNpcId = NPC_UNLEASHED_LIGHT;
m_uiEssenceNpcId = NPC_LIGHT_ESSENCE;
- m_uiMyEssenceSpellId = SPELL_LIGHT_ESSENCE;
- m_uiOtherEssenceSpellId = SPELL_DARK_ESSENCE;
- m_uiEmpoweredWeaknessSpellId = SPELL_EMPOWERED_DARK;
+ m_uiMyEssenceSpellId = SPELL_LIGHT_ESSENCE_HELPER;
+ m_uiOtherEssenceSpellId = SPELL_DARK_ESSENCE_HELPER;
+ m_uiEmpoweredWeaknessSpellId = SPELL_EMPOWERED_DARK_HELPER;
m_uiSurgeSpellId = SPELL_LIGHT_SURGE;
m_uiVortexSpellId = SPELL_LIGHT_VORTEX;
m_uiShieldSpellId = SPELL_LIGHT_SHIELD;
@@ -516,9 +513,9 @@ public:
m_uiSisterNpcId = NPC_LIGHTBANE;
m_uiColorballNpcId = NPC_UNLEASHED_DARK;
m_uiEssenceNpcId = NPC_DARK_ESSENCE;
- m_uiMyEssenceSpellId = SPELL_DARK_ESSENCE;
- m_uiOtherEssenceSpellId = SPELL_LIGHT_ESSENCE;
- m_uiEmpoweredWeaknessSpellId = SPELL_EMPOWERED_LIGHT;
+ m_uiMyEssenceSpellId = SPELL_DARK_ESSENCE_HELPER;
+ m_uiOtherEssenceSpellId = SPELL_LIGHT_ESSENCE_HELPER;
+ m_uiEmpoweredWeaknessSpellId = SPELL_EMPOWERED_LIGHT_HELPER;
m_uiSurgeSpellId = SPELL_DARK_SURGE;
m_uiVortexSpellId = SPELL_DARK_VORTEX;
m_uiShieldSpellId = SPELL_DARK_SHIELD;
@@ -534,29 +531,44 @@ public:
};
+#define ESSENCE_REMOVE 0
+#define ESSENCE_APPLY 1
+
class mob_essence_of_twin : public CreatureScript
{
-public:
- mob_essence_of_twin() : CreatureScript("mob_essence_of_twin") { }
+ public:
+ mob_essence_of_twin() : CreatureScript("mob_essence_of_twin") { }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- switch (creature->GetEntry())
+ struct mob_essence_of_twinAI : public ScriptedAI
{
- case NPC_LIGHT_ESSENCE:
- player->RemoveAura(SPELL_DARK_ESSENCE);
- player->CastSpell(player, SPELL_LIGHT_ESSENCE, true);
- break;
- case NPC_DARK_ESSENCE:
- player->RemoveAura(SPELL_LIGHT_ESSENCE);
- player->CastSpell(player, SPELL_DARK_ESSENCE, true);
- break;
- default:
- break;
+ mob_essence_of_twinAI(Creature* creature) : ScriptedAI(creature) { }
+
+ uint32 GetData(uint32 data)
+ {
+ uint32 spellReturned;
+ switch (me->GetEntry())
+ {
+ case NPC_LIGHT_ESSENCE:
+ spellReturned = data == ESSENCE_REMOVE? SPELL_DARK_ESSENCE_HELPER : SPELL_LIGHT_ESSENCE_HELPER;
+ case NPC_DARK_ESSENCE:
+ spellReturned = data == ESSENCE_REMOVE? SPELL_LIGHT_ESSENCE_HELPER : SPELL_DARK_ESSENCE_HELPER;
+ }
+ return spellReturned;
+ }
+ };
+
+ CreatureAI* GetAI(Creature* creature) const
+ {
+ return new mob_essence_of_twinAI(creature);
+ };
+
+ bool OnGossipHello(Player* player, Creature* creature)
+ {
+ player->RemoveAurasDueToSpell(creature->GetAI()->GetData(ESSENCE_REMOVE));
+ player->CastSpell(player, creature->GetAI()->GetData(ESSENCE_APPLY), true);
+ player->CLOSE_GOSSIP_MENU();
+ return true;
}
- player->CLOSE_GOSSIP_MENU();
- return true;
- }
};
struct mob_unleashed_ballAI : public ScriptedAI