diff options
author | Malcrom <malcromdev@gmail.com> | 2014-09-23 15:13:38 -0230 |
---|---|---|
committer | Malcrom <malcromdev@gmail.com> | 2014-09-23 15:13:38 -0230 |
commit | f72125a318cb2d11c97535c49981377d118a7f5b (patch) | |
tree | 0c15c70cee6bc3ea9c7fd543318b64c7053c9a8a /src | |
parent | 1455aaa83cac7aa477d56af4c0625d69e436418c (diff) |
Scripting/Blackrock Caverns: Misc updates.
Diffstat (limited to 'src')
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 |