aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2021-04-20 17:38:46 +0300
committerGitHub <noreply@github.com>2021-04-20 17:38:46 +0300
commitabed54bf271a742dc61250f59ea1dd7c2c9c13b4 (patch)
tree33f82bcd21e1c51eb4a13e36ee51c60d27dd2841 /src
parentdfdf892f89f22ef01be5f57aca84c1d880e7f75a (diff)
Scripts/Nexus: Update Commander to new model (#26440)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp99
1 files changed, 44 insertions, 55 deletions
diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp
index 0ce5351d82b..622b18f4fae 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_nexus_commanders.cpp
@@ -42,69 +42,58 @@ enum Events
EVENT_FRIGHTENING_SHOUT
};
-class boss_nexus_commanders : public CreatureScript
+struct boss_nexus_commanders : public BossAI
{
- public:
- boss_nexus_commanders() : CreatureScript("boss_nexus_commanders") { }
+ boss_nexus_commanders(Creature* creature) : BossAI(creature, DATA_COMMANDER) { }
- struct boss_nexus_commandersAI : public BossAI
- {
- boss_nexus_commandersAI(Creature* creature) : BossAI(creature, DATA_COMMANDER) { }
-
- void JustEngagedWith(Unit* who) override
- {
- BossAI::JustEngagedWith(who);
- Talk(SAY_AGGRO);
- me->RemoveAurasDueToSpell(SPELL_FROZEN_PRISON);
- DoCast(me, SPELL_BATTLE_SHOUT);
-
- events.ScheduleEvent(EVENT_CHARGE_COMMANDER, 3s, 4s);
- events.ScheduleEvent(EVENT_WHIRLWIND, 6s, 8s);
- events.ScheduleEvent(EVENT_FRIGHTENING_SHOUT, 13s, 15s);
- }
-
- void ExecuteEvent(uint32 eventId) override
- {
- switch (eventId)
- {
- case EVENT_CHARGE_COMMANDER:
- if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true))
- DoCast(target, SPELL_CHARGE);
- events.ScheduleEvent(EVENT_CHARGE_COMMANDER, 11s, 15s);
- break;
- case EVENT_WHIRLWIND:
- DoCast(me, SPELL_WHIRLWIND);
- events.ScheduleEvent(EVENT_WHIRLWIND, 19500ms, 25s);
- break;
- case EVENT_FRIGHTENING_SHOUT:
- DoCastAOE(SPELL_FRIGHTENING_SHOUT);
- events.ScheduleEvent(EVENT_FRIGHTENING_SHOUT, 45s, 55s);
- break;
- default:
- break;
- }
- }
+ void JustEngagedWith(Unit* who) override
+ {
+ BossAI::JustEngagedWith(who);
+ Talk(SAY_AGGRO);
+ me->RemoveAurasDueToSpell(SPELL_FROZEN_PRISON);
+ DoCast(me, SPELL_BATTLE_SHOUT);
- void JustDied(Unit* /*killer*/) override
- {
- _JustDied();
- Talk(SAY_DEATH);
- }
+ events.ScheduleEvent(EVENT_CHARGE_COMMANDER, 3s, 4s);
+ events.ScheduleEvent(EVENT_WHIRLWIND, 6s, 8s);
+ events.ScheduleEvent(EVENT_FRIGHTENING_SHOUT, 13s, 15s);
+ }
- void KilledUnit(Unit* who) override
- {
- if (who->GetTypeId() == TYPEID_PLAYER)
- Talk(SAY_KILL);
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const override
+ void ExecuteEvent(uint32 eventId) override
+ {
+ switch (eventId)
{
- return GetNexusAI<boss_nexus_commandersAI>(creature);
+ case EVENT_CHARGE_COMMANDER:
+ if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true))
+ DoCast(target, SPELL_CHARGE);
+ events.ScheduleEvent(EVENT_CHARGE_COMMANDER, 11s, 15s);
+ break;
+ case EVENT_WHIRLWIND:
+ DoCast(me, SPELL_WHIRLWIND);
+ events.ScheduleEvent(EVENT_WHIRLWIND, 19500ms, 25s);
+ break;
+ case EVENT_FRIGHTENING_SHOUT:
+ DoCastAOE(SPELL_FRIGHTENING_SHOUT);
+ events.ScheduleEvent(EVENT_FRIGHTENING_SHOUT, 45s, 55s);
+ break;
+ default:
+ break;
}
+ }
+
+ void JustDied(Unit* /*killer*/) override
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
+
+ void KilledUnit(Unit* who) override
+ {
+ if (who->GetTypeId() == TYPEID_PLAYER)
+ Talk(SAY_KILL);
+ }
};
void AddSC_boss_nexus_commanders()
{
- new boss_nexus_commanders();
+ RegisterNexusCreatureAI(boss_nexus_commanders);
}