diff options
Diffstat (limited to 'src/server/scripts/Northrend')
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 7300bf60314..c8c6b9c6adf 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  | 
