diff options
author | offl <11556157+offl@users.noreply.github.com> | 2025-08-28 14:19:48 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-28 13:19:48 +0200 |
commit | 5dcef2bbaf8e5f82dc722ff93dca10593eec280a (patch) | |
tree | 212703d1ccc227b267a80b48b74e611ea45b0097 | |
parent | ce061447adaa2afff0bf29e185f25ab9a6ad65d7 (diff) |
Scripts/Shadow Labyrinth: Modernize scripts (#31010)
3 files changed, 34 insertions, 30 deletions
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp index 718427dfe46..937fbbc8fab 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp @@ -72,6 +72,7 @@ class BlackheartCharmedPlayerAI : public SimpleCharmedPlayerAI } }; +// 18667 - Blackheart the Inciter struct boss_blackheart_the_inciter : public BossAI { boss_blackheart_the_inciter(Creature* creature) : BossAI(creature, DATA_BLACKHEART_THE_INCITER) { } @@ -124,6 +125,7 @@ struct boss_blackheart_the_inciter : public BossAI void UpdateAI(uint32 diff) override { events.Update(diff); + if (me->HasReactState(REACT_PASSIVE) || !UpdateVictim()) return; @@ -139,19 +141,19 @@ struct boss_blackheart_the_inciter : public BossAI if (me->GetThreatManager().GetThreatListSize() > 1) { ResetThreatList(); - DoCast(me, SPELL_INCITE_CHAOS); + DoCastSelf(SPELL_INCITE_CHAOS); } - events.ScheduleEvent(EVENT_INCITE_CHAOS, 40s); + events.Repeat(40s); break; } case EVENT_CHARGE_ATTACK: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) DoCast(target, SPELL_CHARGE); - events.ScheduleEvent(EVENT_CHARGE, 15s, 25s); + events.Repeat(15s, 25s); break; case EVENT_WAR_STOMP: - DoCast(me, SPELL_WAR_STOMP); - events.ScheduleEvent(EVENT_WAR_STOMP, 18s, 24s); + DoCastSelf(SPELL_WAR_STOMP); + events.Repeat(18s, 24s); break; } @@ -168,6 +170,7 @@ struct boss_blackheart_the_inciter_mc_dummy : public NullCreatureAI using NullCreatureAI::NullCreatureAI; void InitializeAI() override { me->SetReactState(REACT_PASSIVE); } static const uint32 FIRST_DUMMY = NPC_BLACKHEART_DUMMY1, LAST_DUMMY = NPC_BLACKHEART_DUMMY5; + void IsSummonedBy(WorldObject* whoWO) override { Unit* who = whoWO->ToUnit(); @@ -215,7 +218,8 @@ class spell_blackheart_incite_chaos : public SpellScript static const uint8 NUM_INCITE_SPELLS = 5; static const uint32 INCITE_SPELLS[NUM_INCITE_SPELLS]; - uint8 i=0; + uint8 i = 0; + void HandleDummy(SpellEffIndex /*effIndex*/) { if (Unit* target = GetHitUnit()) @@ -230,6 +234,7 @@ class spell_blackheart_incite_chaos : public SpellScript OnEffectHitTarget += SpellEffectFn(spell_blackheart_incite_chaos::HandleDummy, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); } }; + const uint32 spell_blackheart_incite_chaos::INCITE_SPELLS[spell_blackheart_incite_chaos::NUM_INCITE_SPELLS] = { 33677,33680,33681,33682,33683 }; void AddSC_boss_blackheart_the_inciter() diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp index de1d1107cd2..3d82f8a7699 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp @@ -23,7 +23,7 @@ #include "ScriptedCreature.h" #include "shadow_labyrinth.h" -enum Texts +enum VorpilTexts { SAY_HELP = 0, SAY_AGGRO = 1, @@ -33,7 +33,7 @@ enum Texts SAY_WIPE = 5 }; -enum Spells +enum VorpilSpells { SPELL_SHADOWBOLT_VOLLEY = 33841, SPELL_BANISH = 38791, @@ -64,7 +64,7 @@ enum Spells SPELL_INSTAKILL_SELF = 29878 }; -enum Events +enum VorpilEvents { EVENT_HELP = 1, EVENT_SHADOWBOLT_VOLLEY, @@ -78,6 +78,7 @@ std::array<uint32, 5> const VoidwalkerSummonSpells = SPELL_SUMMON_VOIDWALKER_A, SPELL_SUMMON_VOIDWALKER_B, SPELL_SUMMON_VOIDWALKER_C, SPELL_SUMMON_VOIDWALKER_D, SPELL_SUMMON_VOIDWALKER_E }; +// 18732 - Grandmaster Vorpil struct boss_grandmaster_vorpil : public BossAI { boss_grandmaster_vorpil(Creature* creature) : BossAI(creature, DATA_GRANDMASTER_VORPIL) { } @@ -171,6 +172,7 @@ struct boss_grandmaster_vorpil : public BossAI } }; +// 19427 - Voidwalker Summoner struct npc_voidwalker_summoner : public ScriptedAI { npc_voidwalker_summoner(Creature* creature) : ScriptedAI(creature) { } @@ -193,6 +195,7 @@ private: TaskScheduler _scheduler; }; +// 19226 - Void Traveler struct npc_void_traveler : public ScriptedAI { npc_void_traveler(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp index 70402c356d0..da5fd4d9956 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_murmur.cpp @@ -15,12 +15,7 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -/* ScriptData -SDName: Boss_Murmur -SD%Complete: 90 -SDComment: Timers may be incorrect -SDCategory: Auchindoun, Shadow Labyrinth -EndScriptData */ +/* Timers requires update */ #include "ScriptMgr.h" #include "ObjectAccessor.h" @@ -29,12 +24,12 @@ EndScriptData */ #include "SpellAuraEffects.h" #include "SpellScript.h" -enum Texts +enum MurmurTexts { EMOTE_SONIC_BOOM = 0 }; -enum Spells +enum MurmurSpells { SPELL_RESONANCE = 33657, SPELL_MAGNETIC_PULL = 33689, @@ -50,16 +45,17 @@ enum Spells SPELL_SHOCKWAVE_KNOCK_BACK = 33673 }; -enum Events +enum MurmurEvents { EVENT_SONIC_BOOM = 1, - EVENT_MURMURS_TOUCH = 2, - EVENT_RESONANCE = 3, - EVENT_MAGNETIC_PULL = 4, - EVENT_THUNDERING_STORM = 5, - EVENT_SONIC_SHOCK = 6 + EVENT_MURMURS_TOUCH, + EVENT_RESONANCE, + EVENT_MAGNETIC_PULL, + EVENT_THUNDERING_STORM, + EVENT_SONIC_SHOCK }; +// 18708 - Murmur struct boss_murmur : public BossAI { boss_murmur(Creature* creature) : BossAI(creature, DATA_MURMUR) @@ -103,20 +99,20 @@ struct boss_murmur : public BossAI { case EVENT_SONIC_BOOM: Talk(EMOTE_SONIC_BOOM); - DoCast(me, SPELL_SONIC_BOOM_CAST); - events.ScheduleEvent(EVENT_SONIC_BOOM, 30s); + DoCastSelf(SPELL_SONIC_BOOM_CAST); + events.Repeat(30s); events.ScheduleEvent(EVENT_RESONANCE, 1500ms); break; case EVENT_MURMURS_TOUCH: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 80.0f, true)) DoCast(target, SPELL_MURMURS_TOUCH); - events.ScheduleEvent(EVENT_MURMURS_TOUCH, 25s, 35s); + events.Repeat(25s, 35s); break; case EVENT_RESONANCE: if (!(me->IsWithinMeleeRange(me->GetVictim()))) { - DoCast(me, SPELL_RESONANCE); - events.ScheduleEvent(EVENT_RESONANCE, 5s); + DoCastSelf(SPELL_RESONANCE); + events.Repeat(5s); } break; case EVENT_MAGNETIC_PULL: @@ -130,12 +126,12 @@ struct boss_murmur : public BossAI break; case EVENT_THUNDERING_STORM: DoCastAOE(SPELL_THUNDERING_STORM, true); - events.ScheduleEvent(EVENT_THUNDERING_STORM, 15s); + events.Repeat(15s); break; case EVENT_SONIC_SHOCK: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, false)) DoCast(target, SPELL_SONIC_SHOCK); - events.ScheduleEvent(EVENT_SONIC_SHOCK, 10s, 20s); + events.Repeat(10s, 20s); break; } |