aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMalcrom <malcromdev@gmail.com>2014-09-23 15:13:38 -0230
committerMalcrom <malcromdev@gmail.com>2014-09-23 15:13:38 -0230
commitf72125a318cb2d11c97535c49981377d118a7f5b (patch)
tree0c15c70cee6bc3ea9c7fd543318b64c7053c9a8a /src
parent1455aaa83cac7aa477d56af4c0625d69e436418c (diff)
Scripting/Blackrock Caverns: Misc updates.
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp132
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp36
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp17
3 files changed, 87 insertions, 98 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
index ce92d8242c4..4b75f425e21 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/blackrock_caverns.cpp
@@ -27,13 +27,9 @@
# npc_fire_cyclone
#####*/
-enum FireCycloneSpells
-{
- SPELL_FIRE_CYCLONE_AURA = 74851
-};
-
-enum FireCycloneEvents
+enum FireCyclone
{
+ SPELL_FIRE_CYCLONE_AURA = 74851,
EVENT_FIRE_CYCLONE_AURA = 1
};
@@ -83,17 +79,13 @@ class npc_fire_cyclone : public CreatureScript
# npc_twilight_flame_caller
#####*/
-enum TwilightFlameCallerSpells
+enum TwilightFlameCaller
{
SPELL_FIRE_CHANNELING_1 = 74911,
SPELL_FIRE_CHANNELING_2 = 74912,
SPELL_BLAST_WAVE = 76473,
SPELL_CALL_FLAMES = 76325,
- NPC_FIRE_CYCLONE = 40164
-};
-
-enum TwilightFlameCallerEvents
-{
+ NPC_FIRE_CYCLONE = 40164,
EVENT_CHANNEL = 2,
EVENT_BLAST_WAVE = 3,
EVENT_CALL_FLAMES = 4
@@ -155,8 +147,8 @@ public: npc_twilight_flame_caller() : CreatureScript("npc_twilight_flame_caller"
void EnterCombat(Unit* /*who*/) override
{
- _combatPhase = true;
_events.Reset();
+ _combatPhase = true;
_events.ScheduleEvent(EVENT_BLAST_WAVE, urand(8000, 10000));
_events.ScheduleEvent(EVENT_CALL_FLAMES, urand(10000, 14000));
}
@@ -226,16 +218,12 @@ public: npc_twilight_flame_caller() : CreatureScript("npc_twilight_flame_caller"
# npc_twilight_torturer
#####*/
-enum TwilightTorturerSpells
+enum TwilightTorturer
{
SPELL_INFLICT_PAIN = 75590,
SPELL_RED_HOT_POKER = 76478,
SPELL_SHACKLES = 76484,
- SPELL_WILD_BEATDOWN = 76487
-};
-
-enum TwilightTorturerEvents
-{
+ SPELL_WILD_BEATDOWN = 76487,
EVENT_INFLICT_PAIN_TT = 5,
EVENT_RED_HOT_POKER = 6,
EVENT_SHACKLES = 7,
@@ -259,6 +247,7 @@ class npc_twilight_torturer : public CreatureScript
void EnterCombat(Unit* /*who*/) override
{
+ _events.Reset();
_combatPhase = true;
_events.ScheduleEvent(EVENT_RED_HOT_POKER, 9000);
_events.ScheduleEvent(EVENT_SHACKLES, 13000);
@@ -328,16 +317,12 @@ class npc_twilight_torturer : public CreatureScript
# npc_twilight_sadist
#####*/
-enum TwilightSadistSpells
+enum TwilightSadist
{
SPELL_INFLICT_PAIN_1 = 76497,
SPELL_HEAT_SEEKER_BLADE = 76502,
SPELL_SHORT_THROW = 76572,
- SPELL_SINISTER_STRIKE = 76500
-};
-
-enum TwilightSadistEvents
-{
+ SPELL_SINISTER_STRIKE = 76500,
EVENT_INFLICT_PAIN_TS = 9,
EVENT_HEAT_SEEKER_BLADE = 10,
EVENT_SHORT_THROW = 11,
@@ -361,6 +346,7 @@ class npc_twilight_sadist : public CreatureScript
void EnterCombat(Unit* /*who*/) override
{
+ _events.Reset();
_combatPhase = true;
_events.ScheduleEvent(EVENT_INFLICT_PAIN_TS, 9000);
_events.ScheduleEvent(EVENT_HEAT_SEEKER_BLADE, 13000);
@@ -431,19 +417,14 @@ class npc_twilight_sadist : public CreatureScript
# npc_mad_prisoner
#####*/
-enum MadPrisonerSpells
+enum MadPrisoner
{
SPELL_HEAD_CRACK = 77568,
SPELL_INFECTED_WOUND = 76512,
- SPELL_ENRAGE = 8599
-};
-
-enum MadPrisonerEvents
-{
- EVENT_INFLICT_PAIN_MP1 = 13,
- EVENT_HEAD_CRACK = 14,
- EVENT_INFECTED_WOUND = 15,
- EVENT_ENRAGE = 16
+ SPELL_ENRAGE = 8599,
+ EVENT_HEAD_CRACK = 13,
+ EVENT_INFECTED_WOUND = 14,
+ EVENT_ENRAGE = 15
};
class npc_mad_prisoner : public CreatureScript
@@ -454,10 +435,7 @@ class npc_mad_prisoner : public CreatureScript
{
npc_mad_prisonerAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
- void Reset() override
- {
- _events.ScheduleEvent(EVENT_INFLICT_PAIN_MP1, urand(6000, 18000));
- }
+ void Reset() override {}
void EnterCombat(Unit* /*who*/) override
{
@@ -511,12 +489,11 @@ class npc_mad_prisoner : public CreatureScript
# npc_crazed_mage
#####*/
-enum CrazedMageEvents
+enum CrazedMage
{
- EVENT_INFLICT_PAIN_MP2 = 17,
- EVENT_HEAD_CRACK2 = 18,
- EVENT_INFECTED_WOUND2 = 19,
- EVENT_ENRAGE2 = 20
+ EVENT_HEAD_CRACK2 = 16,
+ EVENT_INFECTED_WOUND2 = 17,
+ EVENT_ENRAGE2 = 18
};
class npc_crazed_mage : public CreatureScript
@@ -527,10 +504,7 @@ class npc_crazed_mage : public CreatureScript
{
npc_crazed_mageAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
- void Reset() override
- {
- _events.ScheduleEvent(EVENT_INFLICT_PAIN_MP2, urand(6000, 18000));
- }
+ void Reset() override {}
void EnterCombat(Unit* /*who*/) override
{
@@ -584,14 +558,19 @@ class npc_crazed_mage : public CreatureScript
# npc_raz_the_crazed
#####*/
-enum RazTheCrazedSpells
+enum RazTheCrazed
{
+ SAY_SMASH = 0,
SPELL_AGGRO_NEARBY_TARGETS = 80196,
- SPELL_SHADOW_PRISON = 79725
-};
-
-enum RazTheCrazedEvents
-{
+ SPELL_SHADOW_PRISON = 79725,
+ SPELL_LEAP_FROM_CAGE = 79720,
+ SPELL_FURIOUS_SWIPE = 80206,
+ SPELL_LEAP_FROM_BRIDGE = 80273,
+ TYPE_RAZ = 1,
+ DATA_ROMOGG_DEAD = 1,
+ EVENT_AGGO_NEARBY_TARGETS = 19,
+ EVENT_START_FIRST_PATH = 20,
+ EVENT_FURIOUS_SWIPE = 21
};
class npc_raz_the_crazed : public CreatureScript
@@ -602,12 +581,11 @@ class npc_raz_the_crazed : public CreatureScript
{
npc_raz_the_crazedAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
- void Reset() override
- {
- }
+ void Reset() override {}
void EnterCombat(Unit* /*who*/) override
{
+ _events.ScheduleEvent(SPELL_FURIOUS_SWIPE, 500);
}
void IsSummonedBy(Unit* summoner) override
@@ -615,27 +593,45 @@ class npc_raz_the_crazed : public CreatureScript
if (summoner->GetEntry() == NPC_ROMOGG_BONECRUSHER)
{
me->SetDisableGravity(true);
- DoCast(me, SPELL_AGGRO_NEARBY_TARGETS);
DoCast(me, SPELL_SHADOW_PRISON);
+ _events.ScheduleEvent(EVENT_AGGO_NEARBY_TARGETS, 1000);
}
}
- void UpdateAI(uint32 diff) override
+ void SetData(uint32 id, uint32 data) override
{
+ if (id == TYPE_RAZ && data == DATA_ROMOGG_DEAD)
+ {
+ me->RemoveAura(SPELL_SHADOW_PRISON);
+ me->SetDisableGravity(false);
+ DoCast(me, SPELL_LEAP_FROM_CAGE);
+ _events.ScheduleEvent(EVENT_START_FIRST_PATH, 3000);
+ }
+ }
+ void UpdateAI(uint32 diff) override
+ {
_events.Update(diff);
- if (!UpdateVictim())
- return;
-
- /*while (uint32 eventId = _events.ExecuteEvent())
+ while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
+ case EVENT_AGGO_NEARBY_TARGETS:
+ DoCast(me, SPELL_AGGRO_NEARBY_TARGETS);
+ _events.ScheduleEvent(EVENT_AGGO_NEARBY_TARGETS, 1500);
+ break;
+ case EVENT_START_FIRST_PATH:
+ Talk(SAY_SMASH);
+ break;
+ case EVENT_FURIOUS_SWIPE:
+ DoCastVictim(SPELL_FURIOUS_SWIPE, true);
+ _events.ScheduleEvent(SPELL_FURIOUS_SWIPE, 500);
+ break;
default:
break;
}
- }*/
+ }
DoMeleeAttackIfReady();
}
@@ -654,17 +650,13 @@ class npc_raz_the_crazed : public CreatureScript
# npc_chains_of_woe
#####*/
-enum ChainsOfWoeSpells
+enum ChainsOfWoe
{
SPELL_CHAINS_OF_WOE_1 = 75437,
SPELL_CHAINS_OF_WOE_2 = 75441,
SPELL_CHAINS_OF_WOE_3 = 75464,
SPELL_CHAINS_OF_WOE_4 = 82189,
- SPELL_CHAINS_OF_WOE_5 = 82192
-};
-
-enum ChainsOfWoeModel
-{
+ SPELL_CHAINS_OF_WOE_5 = 82192,
MODEL_INVISIBLE = 38330
};
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
index 708204a7239..34721a0f31f 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/boss_romogg_bonecrusher.cpp
@@ -19,37 +19,28 @@
#include "ScriptedCreature.h"
#include "blackrock_caverns.h"
-enum Say
+enum Romogg
{
YELL_AGGRO = 0,
YELL_KILL = 1,
YELL_SKULLCRACKER = 2,
YELL_DEATH = 3,
EMOTE_CALL_FOR_HELP = 4,
- EMOTE_SKULLCRACKER = 5
-};
-
-enum Spells
-{
+ EMOTE_SKULLCRACKER = 5,
SPELL_CALL_FOR_HELP = 82137, // Needs Scripting
SPELL_CHAINS_OF_WOE = 75539,
SPELL_QUAKE = 75272,
SPELL_SKULLCRACKER = 75543,
- SPELL_WOUNDING_STRIKE = 75571
-};
-
-enum Events
-{
+ SPELL_WOUNDING_STRIKE = 75571,
EVENT_CHAINS_OF_WOE = 1,
EVENT_QUAKE = 2, // Not yet sure of timing
EVENT_SKULLCRACKER = 3,
- EVENT_WOUNDING_STRIKE = 4
+ EVENT_WOUNDING_STRIKE = 4,
+ TYPE_RAZ = 1,
+ DATA_ROMOGG_DEAD = 1
};
-Position const SummonPos[1] =
-{
- { 249.2639f, 949.1614f, 191.7866f, 3.141593f } // Two more to add
-};
+Position const SummonPos = { 249.2639f, 949.1614f, 191.7866f, 3.141593f };
class boss_romogg_bonecrusher : public CreatureScript
{
@@ -58,18 +49,21 @@ class boss_romogg_bonecrusher : public CreatureScript
struct boss_romogg_bonecrusherAI : public BossAI
{
- boss_romogg_bonecrusherAI(Creature* creature) : BossAI(creature, DATA_ROMOGG_BONECRUSHER) {}
-
- void Reset() override
+ boss_romogg_bonecrusherAI(Creature* creature) : BossAI(creature, DATA_ROMOGG_BONECRUSHER)
{
- if(instance)
- me->SummonCreature(NPC_RAZ_THE_CRAZED, SummonPos[0], TEMPSUMMON_MANUAL_DESPAWN, 200000);
+ if (instance)
+ me->SummonCreature(NPC_RAZ_THE_CRAZED, SummonPos, TEMPSUMMON_MANUAL_DESPAWN, 200000);
}
+ void Reset() override { }
+
void JustDied(Unit* /*killer*/) override
{
_JustDied();
Talk(YELL_DEATH);
+
+ if (Creature* raz = ObjectAccessor::GetCreature(*me, instance->GetGuidData(NPC_RAZ_THE_CRAZED)))
+ raz->AI()->SetData(TYPE_RAZ, DATA_ROMOGG_DEAD);
}
void KilledUnit(Unit* /*victim*/) override
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp
index 0279ee268d6..34c19447ba4 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockCaverns/instance_blackrock_caverns.cpp
@@ -35,23 +35,24 @@ class instance_blackrock_caverns : public InstanceMapScript
{
switch (creature->GetEntry())
{
- case NPC_TWILIGHT_FLAME_CALLER:
+ case NPC_RAZ_THE_CRAZED:
+ RaztheCrazed = creature->GetGUID();
break;
default:
break;
}
}
- uint64 GetData64(uint32 type) const
+ ObjectGuid GetGuidData(uint32 type) const override
{
switch (type)
{
- case NPC_TWILIGHT_FLAME_CALLER:
- default:
- break;
+ case NPC_RAZ_THE_CRAZED:
+ return RaztheCrazed;
+ default:
+ break;
}
-
- return 0;
+ return ObjectGuid::Empty;
}
bool SetBossState(uint32 type, EncounterState state)
@@ -73,6 +74,8 @@ class instance_blackrock_caverns : public InstanceMapScript
return true;
}
+ protected:
+ ObjectGuid RaztheCrazed;
};
InstanceScript* GetInstanceScript(InstanceMap* map) const