diff options
author | offl <11556157+offl@users.noreply.github.com> | 2021-04-20 17:38:46 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-20 17:38:46 +0300 |
commit | abed54bf271a742dc61250f59ea1dd7c2c9c13b4 (patch) | |
tree | 33f82bcd21e1c51eb4a13e36ee51c60d27dd2841 /src | |
parent | dfdf892f89f22ef01be5f57aca84c1d880e7f75a (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.cpp | 99 |
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); } |