diff options
author | offl <11556157+offl@users.noreply.github.com> | 2021-04-15 15:19:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-15 14:19:16 +0200 |
commit | 747333149d096fc7600d57c37768a09b80b1b3b1 (patch) | |
tree | 8221aea62f43a94aed8b962a8d058053ba181845 /src | |
parent | ae7dd5bd18536648d319186cdde071414059c4e8 (diff) |
Scripts/BRS: Update scripts to new model (1/3) (#26416)
Co-authored-by: offl <offl@users.noreply.github.com>
Diffstat (limited to 'src')
5 files changed, 271 insertions, 327 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp index 0e71c3c111b..5a919367ed1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp @@ -35,80 +35,69 @@ enum Events EVENT_THUNDERCLAP = 4, }; -class boss_drakkisath : public CreatureScript +struct boss_drakkisath : public BossAI { -public: - boss_drakkisath() : CreatureScript("boss_drakkisath") { } + boss_drakkisath(Creature* creature) : BossAI(creature, DATA_GENERAL_DRAKKISATH) { } - struct boss_drakkisathAI : public BossAI + void Reset() override { - boss_drakkisathAI(Creature* creature) : BossAI(creature, DATA_GENERAL_DRAKKISATH) { } - - void Reset() override - { - _Reset(); - } + _Reset(); + } - void JustEngagedWith(Unit* who) override - { - BossAI::JustEngagedWith(who); - events.ScheduleEvent(EVENT_FIRE_NOVA, 6s); - events.ScheduleEvent(EVENT_CLEAVE, 8s); - events.ScheduleEvent(EVENT_CONFLIGURATION, 15s); - events.ScheduleEvent(EVENT_THUNDERCLAP, 17s); - } + void JustEngagedWith(Unit* who) override + { + BossAI::JustEngagedWith(who); + events.ScheduleEvent(EVENT_FIRE_NOVA, 6s); + events.ScheduleEvent(EVENT_CLEAVE, 8s); + events.ScheduleEvent(EVENT_CONFLIGURATION, 15s); + events.ScheduleEvent(EVENT_THUNDERCLAP, 17s); + } - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - } + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; - events.Update(diff); + events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - while (uint32 eventId = events.ExecuteEvent()) + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) { - switch (eventId) - { - case EVENT_FIRE_NOVA: - DoCastVictim(SPELL_FIRENOVA); - events.ScheduleEvent(EVENT_FIRE_NOVA, 10s); - break; - case EVENT_CLEAVE: - DoCastVictim(SPELL_CLEAVE); - events.ScheduleEvent(EVENT_CLEAVE, 8s); - break; - case EVENT_CONFLIGURATION: - DoCastVictim(SPELL_CONFLIGURATION); - events.ScheduleEvent(EVENT_CONFLIGURATION, 18s); - break; - case EVENT_THUNDERCLAP: - DoCastVictim(SPELL_THUNDERCLAP); - events.ScheduleEvent(EVENT_THUNDERCLAP, 20s); - break; - } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + case EVENT_FIRE_NOVA: + DoCastVictim(SPELL_FIRENOVA); + events.ScheduleEvent(EVENT_FIRE_NOVA, 10s); + break; + case EVENT_CLEAVE: + DoCastVictim(SPELL_CLEAVE); + events.ScheduleEvent(EVENT_CLEAVE, 8s); + break; + case EVENT_CONFLIGURATION: + DoCastVictim(SPELL_CONFLIGURATION); + events.ScheduleEvent(EVENT_CONFLIGURATION, 18s); + break; + case EVENT_THUNDERCLAP: + DoCastVictim(SPELL_THUNDERCLAP); + events.ScheduleEvent(EVENT_THUNDERCLAP, 20s); + break; } - DoMeleeAttackIfReady(); - } - }; - CreatureAI* GetAI(Creature* creature) const override - { - return GetBlackrockSpireAI<boss_drakkisathAI>(creature); + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + } + DoMeleeAttackIfReady(); } }; void AddSC_boss_drakkisath() { - new boss_drakkisath(); + RegisterBlackrockSpireCreatureAI(boss_drakkisath); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp index 4b5775c6c7a..877d4dc23b7 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp @@ -40,77 +40,66 @@ enum Events EVENT_FRENZY = 3 }; -class boss_gizrul_the_slavener : public CreatureScript +struct boss_gizrul_the_slavener : public BossAI { -public: - boss_gizrul_the_slavener() : CreatureScript("boss_gizrul_the_slavener") { } + boss_gizrul_the_slavener(Creature* creature) : BossAI(creature, DATA_GIZRUL_THE_SLAVENER) { } - struct boss_gizrul_the_slavenerAI : public BossAI + void Reset() override { - boss_gizrul_the_slavenerAI(Creature* creature) : BossAI(creature, DATA_GIZRUL_THE_SLAVENER) { } - - void Reset() override - { - _Reset(); - } + _Reset(); + } - void IsSummonedBy(WorldObject* /*summoner*/) override - { - me->GetMotionMaster()->MovePath(GIZRUL_PATH, false); - } + void IsSummonedBy(WorldObject* /*summoner*/) override + { + me->GetMotionMaster()->MovePath(GIZRUL_PATH, false); + } - void JustEngagedWith(Unit* who) override - { - BossAI::JustEngagedWith(who); - events.ScheduleEvent(EVENT_FATAL_BITE, 17s, 20s); - events.ScheduleEvent(EVENT_INFECTED_BITE, 10s, 12s); - } + void JustEngagedWith(Unit* who) override + { + BossAI::JustEngagedWith(who); + events.ScheduleEvent(EVENT_FATAL_BITE, 17s, 20s); + events.ScheduleEvent(EVENT_INFECTED_BITE, 10s, 12s); + } - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - } + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; - events.Update(diff); + events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - while (uint32 eventId = events.ExecuteEvent()) + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) { - switch (eventId) - { - case EVENT_FATAL_BITE: - DoCastVictim(SPELL_FATAL_BITE); - events.ScheduleEvent(EVENT_FATAL_BITE, 8s, 10s); - break; - case EVENT_INFECTED_BITE: - DoCast(me, SPELL_INFECTED_BITE); - events.ScheduleEvent(EVENT_FATAL_BITE, 8s, 10s); - break; - default: - break; - } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + case EVENT_FATAL_BITE: + DoCastVictim(SPELL_FATAL_BITE); + events.ScheduleEvent(EVENT_FATAL_BITE, 8s, 10s); + break; + case EVENT_INFECTED_BITE: + DoCast(me, SPELL_INFECTED_BITE); + events.ScheduleEvent(EVENT_FATAL_BITE, 8s, 10s); + break; + default: + break; } - DoMeleeAttackIfReady(); - } - }; - CreatureAI* GetAI(Creature* creature) const override - { - return GetBlackrockSpireAI<boss_gizrul_the_slavenerAI>(creature); + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + } + DoMeleeAttackIfReady(); } }; void AddSC_boss_gizrul_the_slavener() { - new boss_gizrul_the_slavener(); + RegisterBlackrockSpireCreatureAI(boss_gizrul_the_slavener); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp index 79c52bb8f3e..1de8cfcd416 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp @@ -49,141 +49,130 @@ enum Events EVENT_SUMMONED_2 = 6 }; -class boss_gyth : public CreatureScript +struct boss_gyth : public BossAI { -public: - boss_gyth() : CreatureScript("boss_gyth") { } - - struct boss_gythAI : public BossAI + boss_gyth(Creature* creature) : BossAI(creature, DATA_GYTH) { - boss_gythAI(Creature* creature) : BossAI(creature, DATA_GYTH) - { - Initialize(); - } + Initialize(); + } - void Initialize() - { - SummonedRend = false; - } + void Initialize() + { + SummonedRend = false; + } - bool SummonedRend; + bool SummonedRend; - void Reset() override + void Reset() override + { + Initialize(); + if (instance->GetBossState(DATA_GYTH) == IN_PROGRESS) { - Initialize(); - if (instance->GetBossState(DATA_GYTH) == IN_PROGRESS) - { - instance->SetBossState(DATA_GYTH, DONE); - me->DespawnOrUnsummon(); - } + instance->SetBossState(DATA_GYTH, DONE); + me->DespawnOrUnsummon(); } + } - void JustEngagedWith(Unit* who) override - { - BossAI::JustEngagedWith(who); + void JustEngagedWith(Unit* who) override + { + BossAI::JustEngagedWith(who); - events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8s, 16s); - events.ScheduleEvent(EVENT_FREEZE, 8s, 16s); - events.ScheduleEvent(EVENT_FLAME_BREATH, 8s, 16s); - events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s, 18s); - } + events.ScheduleEvent(EVENT_CORROSIVE_ACID, 8s, 16s); + events.ScheduleEvent(EVENT_FREEZE, 8s, 16s); + events.ScheduleEvent(EVENT_FLAME_BREATH, 8s, 16s); + events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s, 18s); + } + + void JustDied(Unit* /*killer*/) override + { + instance->SetBossState(DATA_GYTH, DONE); + } - void JustDied(Unit* /*killer*/) override + void SetData(uint32 /*type*/, uint32 data) override + { + switch (data) { - instance->SetBossState(DATA_GYTH, DONE); + case 1: + events.ScheduleEvent(EVENT_SUMMONED_1, 1s); + break; + default: + break; } + } + + void UpdateAI(uint32 diff) override + { - void SetData(uint32 /*type*/, uint32 data) override + if (!SummonedRend && HealthBelowPct(5)) { - switch (data) - { - case 1: - events.ScheduleEvent(EVENT_SUMMONED_1, 1s); - break; - default: - break; - } + DoCast(me, SPELL_SUMMON_REND); + me->RemoveAura(SPELL_REND_MOUNTS); + SummonedRend = true; } - void UpdateAI(uint32 diff) override + if (!UpdateVictim()) { - - if (!SummonedRend && HealthBelowPct(5)) - { - DoCast(me, SPELL_SUMMON_REND); - me->RemoveAura(SPELL_REND_MOUNTS); - SummonedRend = true; - } - - if (!UpdateVictim()) - { - events.Update(diff); - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_SUMMONED_1: - me->AddAura(SPELL_REND_MOUNTS, me); - if (GameObject* portcullis = me->FindNearestGameObject(GO_DR_PORTCULLIS, 40.0f)) - portcullis->UseDoorOrButton(); - if (Creature* victor = me->FindNearestCreature(NPC_LORD_VICTOR_NEFARIUS, 75.0f, true)) - victor->AI()->SetData(1, 1); - events.ScheduleEvent(EVENT_SUMMONED_2, 2s); - break; - case EVENT_SUMMONED_2: - me->GetMotionMaster()->MovePath(GYTH_PATH_1, false); - break; - default: - break; - } - } - return; - } - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - while (uint32 eventId = events.ExecuteEvent()) { switch (eventId) { - case EVENT_CORROSIVE_ACID: - DoCast(me, SPELL_CORROSIVE_ACID); - events.ScheduleEvent(EVENT_CORROSIVE_ACID, 10s, 16s); + case EVENT_SUMMONED_1: + me->AddAura(SPELL_REND_MOUNTS, me); + if (GameObject* portcullis = me->FindNearestGameObject(GO_DR_PORTCULLIS, 40.0f)) + portcullis->UseDoorOrButton(); + if (Creature* victor = me->FindNearestCreature(NPC_LORD_VICTOR_NEFARIUS, 75.0f, true)) + victor->AI()->SetData(1, 1); + events.ScheduleEvent(EVENT_SUMMONED_2, 2s); break; - case EVENT_FREEZE: - DoCast(me, SPELL_FREEZE); - events.ScheduleEvent(EVENT_FREEZE, 10s, 16s); - break; - case EVENT_FLAME_BREATH: - DoCast(me, SPELL_FLAMEBREATH); - events.ScheduleEvent(EVENT_FLAME_BREATH, 10s, 16s); - break; - case EVENT_KNOCK_AWAY: - DoCastVictim(SPELL_KNOCK_AWAY); - events.ScheduleEvent(EVENT_KNOCK_AWAY, 14s, 20s); + case EVENT_SUMMONED_2: + me->GetMotionMaster()->MovePath(GYTH_PATH_1, false); break; default: break; } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; } - DoMeleeAttackIfReady(); + return; } - }; - CreatureAI* GetAI(Creature* creature) const override - { - return GetBlackrockSpireAI<boss_gythAI>(creature); + events.Update(diff); + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_CORROSIVE_ACID: + DoCast(me, SPELL_CORROSIVE_ACID); + events.ScheduleEvent(EVENT_CORROSIVE_ACID, 10s, 16s); + break; + case EVENT_FREEZE: + DoCast(me, SPELL_FREEZE); + events.ScheduleEvent(EVENT_FREEZE, 10s, 16s); + break; + case EVENT_FLAME_BREATH: + DoCast(me, SPELL_FLAMEBREATH); + events.ScheduleEvent(EVENT_FLAME_BREATH, 10s, 16s); + break; + case EVENT_KNOCK_AWAY: + DoCastVictim(SPELL_KNOCK_AWAY); + events.ScheduleEvent(EVENT_KNOCK_AWAY, 14s, 20s); + break; + default: + break; + } + + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + } + DoMeleeAttackIfReady(); } }; void AddSC_boss_gyth() { - new boss_gyth(); + RegisterBlackrockSpireCreatureAI(boss_gyth); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp index 40b1a071382..e53093eb601 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp @@ -38,85 +38,74 @@ enum Events const Position SummonLocation = { -167.9561f, -411.7844f, 76.23057f, 1.53589f }; -class boss_halycon : public CreatureScript +struct boss_halycon : public BossAI { -public: - boss_halycon() : CreatureScript("boss_halycon") { } - - struct boss_halyconAI : public BossAI + boss_halycon(Creature* creature) : BossAI(creature, DATA_HALYCON) { - boss_halyconAI(Creature* creature) : BossAI(creature, DATA_HALYCON) - { - Initialize(); - } + Initialize(); + } - void Initialize() - { - Summoned = false; - } + void Initialize() + { + Summoned = false; + } - void Reset() override - { - _Reset(); - Initialize(); - } + void Reset() override + { + _Reset(); + Initialize(); + } - void JustEngagedWith(Unit* who) override - { - BossAI::JustEngagedWith(who); - events.ScheduleEvent(EVENT_REND, 17s, 20s); - events.ScheduleEvent(EVENT_THRASH, 10s, 12s); - } + void JustEngagedWith(Unit* who) override + { + BossAI::JustEngagedWith(who); + events.ScheduleEvent(EVENT_REND, 17s, 20s); + events.ScheduleEvent(EVENT_THRASH, 10s, 12s); + } - void JustDied(Unit* /*killer*/) override - { - me->SummonCreature(NPC_GIZRUL_THE_SLAVENER, SummonLocation, TEMPSUMMON_TIMED_DESPAWN, 5min); - Talk(EMOTE_DEATH); + void JustDied(Unit* /*killer*/) override + { + me->SummonCreature(NPC_GIZRUL_THE_SLAVENER, SummonLocation, TEMPSUMMON_TIMED_DESPAWN, 5min); + Talk(EMOTE_DEATH); - Summoned = true; - } + Summoned = true; + } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; - events.Update(diff); + events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - while (uint32 eventId = events.ExecuteEvent()) + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) { - switch (eventId) - { - case EVENT_REND: - DoCastVictim(SPELL_REND); - events.ScheduleEvent(EVENT_REND, 8s, 10s); - break; - case EVENT_THRASH: - DoCast(me, SPELL_THRASH); - break; - default: - break; - } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; + case EVENT_REND: + DoCastVictim(SPELL_REND); + events.ScheduleEvent(EVENT_REND, 8s, 10s); + break; + case EVENT_THRASH: + DoCast(me, SPELL_THRASH); + break; + default: + break; } - DoMeleeAttackIfReady(); - } - private: - bool Summoned; - }; - CreatureAI* GetAI(Creature* creature) const override - { - return GetBlackrockSpireAI<boss_halyconAI>(creature); + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; + } + DoMeleeAttackIfReady(); } + private: + bool Summoned; }; void AddSC_boss_halycon() { - new boss_halycon(); + RegisterBlackrockSpireCreatureAI(boss_halycon); } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp index a8753a17c5c..05f0502ec42 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp @@ -31,73 +31,61 @@ enum Events EVENT_KNOCK_AWAY = 2 }; -class boss_highlord_omokk : public CreatureScript +struct boss_highlord_omokk : public BossAI { -public: - boss_highlord_omokk() : CreatureScript("boss_highlord_omokk") { } + boss_highlord_omokk(Creature* creature) : BossAI(creature, DATA_HIGHLORD_OMOKK) { } - CreatureAI* GetAI(Creature* creature) const override + void Reset() override { - return GetBlackrockSpireAI<boss_highlordomokkAI>(creature); + _Reset(); } - struct boss_highlordomokkAI : public BossAI + void JustEngagedWith(Unit* who) override { - boss_highlordomokkAI(Creature* creature) : BossAI(creature, DATA_HIGHLORD_OMOKK) { } + BossAI::JustEngagedWith(who); + events.ScheduleEvent(EVENT_FRENZY, 20s); + events.ScheduleEvent(EVENT_KNOCK_AWAY, 18s); + } - void Reset() override - { - _Reset(); - } + void JustDied(Unit* /*killer*/) override + { + _JustDied(); + } - void JustEngagedWith(Unit* who) override - { - BossAI::JustEngagedWith(who); - events.ScheduleEvent(EVENT_FRENZY, 20s); - events.ScheduleEvent(EVENT_KNOCK_AWAY, 18s); - } + void UpdateAI(uint32 diff) override + { + if (!UpdateVictim()) + return; - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - } + events.Update(diff); - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; + if (me->HasUnitState(UNIT_STATE_CASTING)) + return; - events.Update(diff); + while (uint32 eventId = events.ExecuteEvent()) + { + switch (eventId) + { + case EVENT_FRENZY: + DoCastVictim(SPELL_FRENZY); + events.ScheduleEvent(EVENT_FRENZY, 1min); + break; + case EVENT_KNOCK_AWAY: + DoCastVictim(SPELL_KNOCK_AWAY); + events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s); + break; + default: + break; + } if (me->HasUnitState(UNIT_STATE_CASTING)) return; - - while (uint32 eventId = events.ExecuteEvent()) - { - switch (eventId) - { - case EVENT_FRENZY: - DoCastVictim(SPELL_FRENZY); - events.ScheduleEvent(EVENT_FRENZY, 1min); - break; - case EVENT_KNOCK_AWAY: - DoCastVictim(SPELL_KNOCK_AWAY); - events.ScheduleEvent(EVENT_KNOCK_AWAY, 12s); - break; - default: - break; - } - - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - } - DoMeleeAttackIfReady(); } - }; - + DoMeleeAttackIfReady(); + } }; void AddSC_boss_highlordomokk() { - new boss_highlord_omokk(); + RegisterBlackrockSpireCreatureAI(boss_highlord_omokk); } |