diff options
4 files changed, 81 insertions, 97 deletions
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp index d0fbe767f12..c23a1f49435 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp @@ -20,15 +20,14 @@ #include "SpellScript.h" #include "vault_of_archavon.h" -enum Emotes +enum ArchavonTexts { EMOTE_BERSERK = 0, EMOTE_LEAP = 1 }; -enum Spells +enum ArchavonSpells { - // Spells Archavon SPELL_ROCK_SHARDS = 58678, SPELL_ROCK_SHARDS_VISUAL_L = 58689, SPELL_ROCK_SHARDS_VISUAL_R = 58692, @@ -40,26 +39,18 @@ enum Spells SPELL_BERSERK = 47008 }; -enum Creatures +enum ArchavonEvents { - NPC_ARCHAVON_WARDER = 32353 -}; - -enum Events -{ - // Archavon - EVENT_ROCK_SHARDS = 1, // 15s cd - EVENT_CHOKING_CLOUD = 2, // 30s cd - EVENT_STOMP = 3, // 45s cd - EVENT_IMPALE = 4, - EVENT_BERSERK = 5, // 300s cd + EVENT_ROCK_SHARDS = 1, // 15s cd + EVENT_CHOKING_CLOUD, // 30s cd + EVENT_STOMP, // 45s cd + EVENT_IMPALE, + EVENT_BERSERK // 300s cd }; struct boss_archavon : public BossAI { - boss_archavon(Creature* creature) : BossAI(creature, DATA_ARCHAVON) - { - } + boss_archavon(Creature* creature) : BossAI(creature, DATA_ARCHAVON) { } void JustEngagedWith(Unit* who) override { @@ -94,7 +85,7 @@ struct boss_archavon : public BossAI case EVENT_CHOKING_CLOUD: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, -10.0f, true)) { - DoCast(target, SPELL_CRUSHING_LEAP, true); //10y~80y, ignore range + DoCast(target, SPELL_CRUSHING_LEAP, true); // 10y~80y, ignore range Talk(EMOTE_LEAP, target); } events.ScheduleEvent(EVENT_CHOKING_CLOUD, 30s); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 5438cf29b70..502cb354493 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -22,7 +22,14 @@ #include "SpellAuras.h" #include "vault_of_archavon.h" -enum Spells +enum EmalonTexts +{ + EMOTE_OVERCHARGE = 0, + EMOTE_MINION_RESPAWN = 1, + EMOTE_BERSERK = 2 +}; + +enum EmalonSpells { SPELL_OVERCHARGE = 64218, // Cast every 45 sec on a random Tempest Minion SPELL_BERSERK = 26662, @@ -34,29 +41,18 @@ enum Spells SPELL_LIGHTNING_NOVA = 64216 }; -enum Emotes -{ - EMOTE_OVERCHARGE = 0, - EMOTE_MINION_RESPAWN = 1, - EMOTE_BERSERK = 2 -}; - -enum Events -{ - EVENT_CHAIN_LIGHTNING = 1, - EVENT_LIGHTNING_NOVA = 2, - EVENT_OVERCHARGE = 3, - EVENT_BERSERK = 4, - EVENT_SHOCK = 5, -}; - -enum Npcs +enum EmalonEvents { - NPC_TEMPEST_MINION = 33998 + EVENT_CHAIN_LIGHTNING = 1, + EVENT_LIGHTNING_NOVA, + EVENT_OVERCHARGE, + EVENT_BERSERK, + EVENT_SHOCK }; -enum Misc +enum EmalonMisc { + NPC_TEMPEST_MINION = 33998, MAX_TEMPEST_MINIONS = 4 }; @@ -70,9 +66,7 @@ Position const TempestMinions[MAX_TEMPEST_MINIONS] = struct boss_emalon : public BossAI { - boss_emalon(Creature* creature) : BossAI(creature, DATA_EMALON) - { - } + boss_emalon(Creature* creature) : BossAI(creature, DATA_EMALON) { } void Reset() override { @@ -82,15 +76,6 @@ struct boss_emalon : public BossAI me->SummonCreature(NPC_TEMPEST_MINION, TempestMinions[i], TEMPSUMMON_CORPSE_DESPAWN); } - void JustSummoned(Creature* summoned) override - { - BossAI::JustSummoned(summoned); - - // AttackStart has nullptr-check for victim - if (summoned->AI()) - summoned->AI()->AttackStart(me->GetVictim()); - } - void JustEngagedWith(Unit* who) override { if (!summons.empty()) @@ -111,6 +96,15 @@ struct boss_emalon : public BossAI BossAI::JustEngagedWith(who); } + void JustSummoned(Creature* summoned) override + { + BossAI::JustSummoned(summoned); + + // AttackStart has nullptr-check for victim + if (summoned->AI()) + summoned->AI()->AttackStart(me->GetVictim()); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) @@ -168,23 +162,35 @@ struct npc_tempest_minion : public ScriptedAI npc_tempest_minion(Creature* creature) : ScriptedAI(creature) { Initialize(); - instance = creature->GetInstanceScript(); + _instance = creature->GetInstanceScript(); } void Initialize() { - OverchargedTimer = 0; + _overchargedTimer = 0; } void Reset() override { - events.Reset(); + _events.Reset(); Initialize(); } + void JustEngagedWith(Unit* who) override + { + DoZoneInCombat(); + _events.ScheduleEvent(EVENT_SHOCK, 20s); + + if (Creature* pEmalon = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_EMALON))) + { + if (!pEmalon->GetVictim() && pEmalon->AI()) + pEmalon->AI()->AttackStart(who); + } + } + void JustDied(Unit* /*killer*/) override { - if (Creature* emalon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EMALON))) + if (Creature* emalon = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_EMALON))) { if (emalon->IsAlive()) { @@ -194,25 +200,12 @@ struct npc_tempest_minion : public ScriptedAI } } - void JustEngagedWith(Unit* who) override - { - DoZoneInCombat(); - events.ScheduleEvent(EVENT_SHOCK, 20s); - - if (Creature* pEmalon = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_EMALON))) - { - if (!pEmalon->GetVictim() && pEmalon->AI()) - pEmalon->AI()->AttackStart(who); - } - } - void UpdateAI(uint32 diff) override { - //Return since we have no target if (!UpdateVictim()) return; - events.Update(diff); + _events.Update(diff); if (me->HasUnitState(UNIT_STATE_CASTING)) return; @@ -221,13 +214,13 @@ struct npc_tempest_minion : public ScriptedAI { if (overchargedAura->GetStackAmount() < 10) { - if (OverchargedTimer <= diff) + if (_overchargedTimer <= diff) { DoCast(me, SPELL_OVERCHARGED); - OverchargedTimer = 2000; // ms + _overchargedTimer = 2000; // ms } else - OverchargedTimer -= diff; + _overchargedTimer -= diff; } else { @@ -240,19 +233,19 @@ struct npc_tempest_minion : public ScriptedAI } } - if (events.ExecuteEvent() == EVENT_SHOCK) + if (_events.ExecuteEvent() == EVENT_SHOCK) { DoCastVictim(SPELL_SHOCK); - events.ScheduleEvent(EVENT_SHOCK, 20s); + _events.ScheduleEvent(EVENT_SHOCK, 20s); } DoMeleeAttackIfReady(); } private: - InstanceScript* instance; - EventMap events; - uint32 OverchargedTimer; + InstanceScript* _instance; + EventMap _events; + uint32 _overchargedTimer; }; void AddSC_boss_emalon() diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp index 9d437fecbd9..01a2b152085 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp @@ -20,18 +20,8 @@ #include "SpellScript.h" #include "vault_of_archavon.h" -enum Events +enum KoralonSpells { - // Koralon - EVENT_BURNING_BREATH = 1, - EVENT_BURNING_FURY = 2, - EVENT_FLAME_CINDER = 3, - EVENT_METEOR_FISTS = 4 -}; - -enum Spells -{ - // Spells Koralon SPELL_BURNING_BREATH = 66665, SPELL_BURNING_FURY = 66721, SPELL_FLAME_CINDER_A = 66684, @@ -39,15 +29,21 @@ enum Spells SPELL_METEOR_FISTS = 66725, SPELL_METEOR_FISTS_DAMAGE = 66765, - // Spells Flame Warder + // Flame Warder SPELL_FW_METEOR_FISTS_DAMAGE = 66809 }; +enum KoralonEvents +{ + EVENT_BURNING_BREATH = 1, + EVENT_BURNING_FURY, + EVENT_FLAME_CINDER, + EVENT_METEOR_FISTS +}; + struct boss_koralon : public BossAI { - boss_koralon(Creature* creature) : BossAI(creature, DATA_KORALON) - { - } + boss_koralon(Creature* creature) : BossAI(creature, DATA_KORALON) { } void JustEngagedWith(Unit* who) override { @@ -103,6 +99,7 @@ struct boss_koralon : public BossAI } }; +// 66725, 68161 - SPELL_METEOR_FISTS class spell_koralon_meteor_fists : public AuraScript { PrepareAuraScript(spell_koralon_meteor_fists); @@ -124,6 +121,8 @@ class spell_koralon_meteor_fists : public AuraScript } }; +// 66765, 67333 - SPELL_METEOR_FISTS_DAMAGE +// 66809, 67331 - SPELL_FW_METEOR_FISTS_DAMAGE class spell_koralon_meteor_fists_damage : public SpellScript { PrepareSpellScript(spell_koralon_meteor_fists_damage); @@ -156,6 +155,7 @@ private: uint8 _chainTargets; }; +// 66808, 68160 - Meteor Fists class spell_flame_warder_meteor_fists : public AuraScript { PrepareAuraScript(spell_flame_warder_meteor_fists); diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp index 967a0782435..6ed3c203e5e 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp @@ -21,7 +21,7 @@ #include "SpellScript.h" #include "vault_of_archavon.h" -enum Spells +enum ToravonSpells { // Toravon SPELL_FREEZING_GROUND = 72090, @@ -38,11 +38,11 @@ enum Spells FROZEN_ORB_STALKER_AURA = 72094 }; -enum Events +enum ToravonEvents { - EVENT_FREEZING_GROUND = 1, - EVENT_FROZEN_ORB = 2, - EVENT_WHITEOUT = 3 + EVENT_FREEZING_GROUND = 1, + EVENT_FROZEN_ORB, + EVENT_WHITEOUT }; struct boss_toravon : public BossAI |