diff options
author | offl <11556157+offl@users.noreply.github.com> | 2025-05-28 15:06:19 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-28 14:06:19 +0200 |
commit | c8efee7a1378423db6d1b52ee01fad399c89bc76 (patch) | |
tree | 59be849faa15cb0ba7e3b103396c1cc7f148cce5 | |
parent | 8c5863596e428916aa5b9d2c5fa4c31ef67317e7 (diff) |
Scripts/BlackTemple: Modernize scripts (#30963)
11 files changed, 291 insertions, 241 deletions
diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp index 6b93face40a..a44a5cb2dbb 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp @@ -22,7 +22,7 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" -enum Spells +enum BlackTempleSpells { // Wrathbone Flayer SPELL_CLEAVE = 15496, @@ -37,13 +37,13 @@ enum Spells SPELL_SHADOW_INFERNO_DAMAGE = 39646 }; -enum Creatures +enum BlackTempleCreatures { NPC_BLOOD_MAGE = 22945, NPC_DEATHSHAPER = 22882 }; -enum Events +enum BlackTempleEvents { // Wrathbone Flayer EVENT_GET_CHANNELERS = 1, @@ -52,11 +52,12 @@ enum Events EVENT_IGNORED }; -enum Misc +enum BlackTempleMisc { GROUP_OUT_OF_COMBAT = 1 }; +// 22953 - Wrathbone Flayer struct npc_wrathbone_flayer : public ScriptedAI { npc_wrathbone_flayer(Creature* creature) : ScriptedAI(creature) @@ -135,7 +136,7 @@ struct npc_wrathbone_flayer : public ScriptedAI if (Creature* deathshaper = ObjectAccessor::GetCreature(*me, guid)) deathshaper->CastSpell(nullptr, SPELL_SUMMON_CHANNEL); - _events.ScheduleEvent(EVENT_SET_CHANNELERS, 12s); + _events.Repeat(12s); break; } @@ -156,12 +157,12 @@ struct npc_wrathbone_flayer : public ScriptedAI { case EVENT_CLEAVE: DoCastVictim(SPELL_CLEAVE); - _events.ScheduleEvent(EVENT_CLEAVE, 1s, 2s); + _events.Repeat(1s, 2s); break; case EVENT_IGNORED: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) DoCast(target, SPELL_IGNORED); - _events.ScheduleEvent(EVENT_IGNORED, 10s); + _events.Repeat(10s); break; default: break; @@ -178,6 +179,7 @@ private: bool _enteredCombat; }; +// 23398 - Angered Soul Fragment struct npc_angered_soul_fragment : public ScriptedAI { npc_angered_soul_fragment(Creature* creature) : ScriptedAI(creature) { } @@ -186,18 +188,18 @@ struct npc_angered_soul_fragment : public ScriptedAI { _scheduler.CancelAll(); - _scheduler.Schedule(Seconds(1), GROUP_OUT_OF_COMBAT, [this](TaskContext invi) + _scheduler.Schedule(1s, GROUP_OUT_OF_COMBAT, [this](TaskContext invi) { DoCastSelf(SPELL_GREATER_INVISIBILITY); /* Workaround - On Retail creature appear and "vanish" again periodically, but i cant find packets with UPDATE_AURA on sniffs about it */ - _scheduler.Schedule(Seconds(5), Seconds(10), GROUP_OUT_OF_COMBAT, [this](TaskContext /*context*/) + _scheduler.Schedule(5s, 10s, GROUP_OUT_OF_COMBAT, [this](TaskContext /*context*/) { me->RemoveAurasDueToSpell(SPELL_GREATER_INVISIBILITY); }); - invi.Repeat(Seconds(15), Seconds(25)); + invi.Repeat(15s, 25s); }); } @@ -206,13 +208,13 @@ struct npc_angered_soul_fragment : public ScriptedAI me->RemoveAurasDueToSpell(SPELL_GREATER_INVISIBILITY); _scheduler.CancelGroup(GROUP_OUT_OF_COMBAT); - _scheduler.Schedule(Seconds(1), [this](TaskContext anger) + _scheduler.Schedule(1s, [this](TaskContext anger) { Unit* target = me->GetVictim(); if (target && me->IsWithinMeleeRange(target)) DoCastSelf(SPELL_ANGER); else - anger.Repeat(Seconds(1)); + anger.Repeat(1s); }); } diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.h b/src/server/scripts/Outland/BlackTemple/black_temple.h index 96b6af6eb32..0fde0ce9d13 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.h +++ b/src/server/scripts/Outland/BlackTemple/black_temple.h @@ -58,7 +58,7 @@ enum BTDataTypes DATA_RELIQUARY_COMBAT_TRIGGER = 25 }; -enum TriggerEmotes +enum BTTexts { EMOTE_HIGH_WARLORD_NAJENTUS_DIED = 0, EMOTE_DEN_OF_MORTAL_DOOR_OPEN = 1 @@ -132,7 +132,7 @@ enum BTGameObjectIds GO_ILLIDAN_MUSIC_CONTROLLER = 185966 }; -enum BlackTempleMisc +enum BTMisc { AKAMA_INTRO = 1, AKAMA_FIGHT = 2, diff --git a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp index 52b66895bfe..45a439bfc3a 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp @@ -23,15 +23,15 @@ #include "ScriptedCreature.h" #include "SpellScript.h" -enum Says +enum GurtoggTexts { - SAY_AGGRO = 0, - SAY_SLAY = 1, - SAY_SPECIAL = 2, - SAY_ENRAGE = 3 + SAY_AGGRO = 0, + SAY_SLAY = 1, + SAY_SPECIAL = 2, + SAY_ENRAGE = 3 }; -enum Spells +enum GurtoggSpells { //Gurtogg SPELL_BLOODBOIL = 42005, @@ -59,23 +59,23 @@ enum Spells SPELL_BIRTH = 40031 }; -enum Phases +enum GurtoggPhases { - PHASE_1 = 1, - PHASE_2 = 2, - GROUP_PHASE_1 = 1, - GROUP_PHASE_2 = 2 + PHASE_1 = 1, + PHASE_2 = 2, + GROUP_PHASE_1 = 1, + GROUP_PHASE_2 = 2 }; -enum Sounds +enum GurtoggSounds { - SOUND_ID_DEATH = 11439, - SOUND_ID_ENRAGE = 11437 + SOUND_ID_DEATH = 11439, + SOUND_ID_ENRAGE = 11437 }; -enum Events +enum GurtoggEvents { - EVENT_BERSERK = 1, + EVENT_BERSERK = 1, EVENT_BLOODBOIL, EVENT_ARCING_SMASH, EVENT_FEL_ACID_BREATH, @@ -89,6 +89,7 @@ enum Events EVENT_CHARGE_PLAYER }; +// 22948 - Gurtogg Bloodboil struct boss_gurtogg_bloodboil : public BossAI { boss_gurtogg_bloodboil(Creature* creature) : BossAI(creature, DATA_GURTOGG_BLOODBOIL) @@ -143,18 +144,18 @@ struct boss_gurtogg_bloodboil : public BossAI { if (events.IsInPhase(PHASE_1)) { - events.ScheduleEvent(EVENT_BLOODBOIL, Seconds(10), GROUP_PHASE_1, PHASE_1); - events.ScheduleEvent(EVENT_ARCING_SMASH, Seconds(10), GROUP_PHASE_1, PHASE_1); - events.ScheduleEvent(EVENT_FEL_ACID_BREATH, Seconds(25), GROUP_PHASE_1, PHASE_1); - events.ScheduleEvent(EVENT_EJECT, Seconds(35), GROUP_PHASE_1, PHASE_1); - events.ScheduleEvent(EVENT_BEWILDERING_STRIKE, Seconds(47), GROUP_PHASE_1, PHASE_1); + events.ScheduleEvent(EVENT_BLOODBOIL, 10s, GROUP_PHASE_1, PHASE_1); + events.ScheduleEvent(EVENT_ARCING_SMASH, 10s, GROUP_PHASE_1, PHASE_1); + events.ScheduleEvent(EVENT_FEL_ACID_BREATH, 25s, GROUP_PHASE_1, PHASE_1); + events.ScheduleEvent(EVENT_EJECT, 35s, GROUP_PHASE_1, PHASE_1); + events.ScheduleEvent(EVENT_BEWILDERING_STRIKE, 47s, GROUP_PHASE_1, PHASE_1); } else if (events.IsInPhase(PHASE_2)) { - events.ScheduleEvent(EVENT_START_PHASE_2, Milliseconds(100), GROUP_PHASE_2, PHASE_2); - events.ScheduleEvent(EVENT_EJECT_2, Seconds(14), GROUP_PHASE_2, PHASE_2); - events.ScheduleEvent(EVENT_FEL_ACID_BREATH_2, Seconds(16), GROUP_PHASE_2, PHASE_2); - events.ScheduleEvent(EVENT_ARCING_SMASH_2, Seconds(8), GROUP_PHASE_2, PHASE_2); + events.ScheduleEvent(EVENT_START_PHASE_2, 100ms, GROUP_PHASE_2, PHASE_2); + events.ScheduleEvent(EVENT_EJECT_2, 14s, GROUP_PHASE_2, PHASE_2); + events.ScheduleEvent(EVENT_FEL_ACID_BREATH_2, 16s, GROUP_PHASE_2, PHASE_2); + events.ScheduleEvent(EVENT_ARCING_SMASH_2, 8s, GROUP_PHASE_2, PHASE_2); } } @@ -186,16 +187,16 @@ struct boss_gurtogg_bloodboil : public BossAI { case EVENT_BLOODBOIL: DoCast(SPELL_BLOODBOIL); - events.Repeat(Seconds(10)); + events.Repeat(10s); break; case EVENT_ARCING_SMASH: DoCastVictim(SPELL_ARCING_SMASH); - events.Repeat(Seconds(10)); + events.Repeat(10s); break; case EVENT_FEL_ACID_BREATH: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, me->GetCombatReach())) DoCast(target, SPELL_FEL_ACID_BREATH); - events.Repeat(Seconds(25), Seconds(30)); + events.Repeat(25s, 30s); break; case EVENT_EJECT: Talk(SAY_SPECIAL); @@ -226,7 +227,7 @@ struct boss_gurtogg_bloodboil : public BossAI target->CastSpell(target, SPELL_TAUNT_GURTOGG, true); DoCastAOE(SPELL_INSIGNIFIGANCE, true); - events.ScheduleEvent(EVENT_CHARGE_PLAYER, Seconds(2), GROUP_PHASE_2, PHASE_2); + events.ScheduleEvent(EVENT_CHARGE_PLAYER, 2s, GROUP_PHASE_2, PHASE_2); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true); @@ -236,7 +237,7 @@ struct boss_gurtogg_bloodboil : public BossAI events.SetPhase(PHASE_1); events.CancelEventGroup(GROUP_PHASE_2); ScheduleEvents(); - events.RescheduleEvent(EVENT_CHANGE_PHASE, Seconds(60)); + events.RescheduleEvent(EVENT_CHANGE_PHASE, 60s); } break; case EVENT_CHARGE_PLAYER: @@ -251,7 +252,7 @@ struct boss_gurtogg_bloodboil : public BossAI break; case EVENT_ARCING_SMASH_2: DoCastVictim(SPELL_ARCING_SMASH_2); - events.Repeat(Seconds(13)); + events.Repeat(13s); break; case EVENT_BERSERK: DoCast(SPELL_BERSERK); @@ -303,6 +304,7 @@ private: float _oldThreat; }; +// 23254 - Fel Geyser struct npc_fel_geyser : public PassiveAI { npc_fel_geyser(Creature* creature) : PassiveAI(creature) { } diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 1255bfc4dbd..f77f29f78e1 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -32,7 +32,7 @@ #include "SpellScript.h" #include "TemporarySummon.h" -enum IllidanSay +enum IllidanTexts { // Illidan SAY_ILLIDAN_MINION = 0, @@ -199,7 +199,7 @@ enum IllidanSpells SPELL_DEMON_FIRE = 40029, // Flame Crash - SPELL_FLAME_CRASH_GROUND = 40836 + SPELL_FLAME_CRASH_GROUND = 40836 }; enum IllidanMisc @@ -465,6 +465,7 @@ public: } }; +// 22917 - Illidan Stormrage struct boss_illidan_stormrage : public BossAI { boss_illidan_stormrage(Creature* creature) : BossAI(creature, DATA_ILLIDAN_STORMRAGE), @@ -498,7 +499,7 @@ struct boss_illidan_stormrage : public BossAI specialEvents.ScheduleEvent(EVENT_EVADE_CHECK, 10s); specialEvents.ScheduleEvent(EVENT_BERSERK, 25min); ScheduleEvents(GROUP_PHASE_1, GROUP_PHASE_1); - events.ScheduleEvent(EVENT_TAUNT, Seconds(30), Seconds(60), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_TAUNT, 30s, 60s, GROUP_PHASE_ALL); } void JustSummoned(Creature* summon) override @@ -512,7 +513,7 @@ struct boss_illidan_stormrage : public BossAI void ChangeOrientation(float orientation) { _orientation = orientation; - events.ScheduleEvent(EVENT_CHANGE_ORIENTATION, Milliseconds(1), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_CHANGE_ORIENTATION, 1ms, GROUP_PHASE_ALL); } void KilledUnit(Unit* victim) override @@ -526,30 +527,30 @@ struct boss_illidan_stormrage : public BossAI switch (phase) { case GROUP_PHASE_1: - events.ScheduleEvent(EVENT_FLAME_CRASH, Seconds(30), group); - events.ScheduleEvent(EVENT_DRAW_SOUL, Seconds(34), group); - events.ScheduleEvent(EVENT_SHEAR, Seconds(10), group); - events.ScheduleEvent(EVENT_PARASITIC_SHADOWFIEND, Seconds(26), group); + events.ScheduleEvent(EVENT_FLAME_CRASH, 30s, group); + events.ScheduleEvent(EVENT_DRAW_SOUL, 34s, group); + events.ScheduleEvent(EVENT_SHEAR, 10s, group); + events.ScheduleEvent(EVENT_PARASITIC_SHADOWFIEND, 26s, group); break; case GROUP_PHASE_2: - events.ScheduleEvent(EVENT_FIREBALL, Seconds(1), Seconds(8), group); - events.ScheduleEvent(EVENT_EYE_BLAST, Seconds(1), Seconds(30), group); + events.ScheduleEvent(EVENT_FIREBALL, 1s, 8s, group); + events.ScheduleEvent(EVENT_EYE_BLAST, 1s, 30s, group); if (roll_chance_i(50)) - events.ScheduleEvent(EVENT_DARK_BARRAGE, Seconds(1), Seconds(20), group); + events.ScheduleEvent(EVENT_DARK_BARRAGE, 1s, 20s, group); break; case GROUP_PHASE_3: ScheduleEvents(GROUP_PHASE_1, group); - events.ScheduleEvent(EVENT_AGONIZING_FLAMES, Seconds(21), group); - events.ScheduleEvent(EVENT_DEMON, Seconds(60), group); + events.ScheduleEvent(EVENT_AGONIZING_FLAMES, 21s, group); + events.ScheduleEvent(EVENT_DEMON, 60s, group); break; case GROUP_PHASE_DEMON: - events.ScheduleEvent(EVENT_SHADOW_BLAST, Seconds(1), group); - events.ScheduleEvent(EVENT_FLAME_BURST, Seconds(6), group); - events.ScheduleEvent(EVENT_SHADOW_DEMON, Seconds(18), Seconds(30), group); + events.ScheduleEvent(EVENT_SHADOW_BLAST, 1s, group); + events.ScheduleEvent(EVENT_FLAME_BURST, 6s, group); + events.ScheduleEvent(EVENT_SHADOW_DEMON, 18s, 30s, group); break; case GROUP_PHASE_4: ScheduleEvents(GROUP_PHASE_3, group); - events.ScheduleEvent(EVENT_FRENZY, Seconds(40), group); + events.ScheduleEvent(EVENT_FRENZY, 40s, group); break; default: break; @@ -576,8 +577,8 @@ struct boss_illidan_stormrage : public BossAI case ACTION_START_ENCOUNTER: events.SetPhase(PHASE_INTRO); me->RemoveAurasDueToSpell(SPELL_KNEEL); - events.ScheduleEvent(EVENT_START_INTRO, Seconds(2), GROUP_PHASE_ALL); - events.ScheduleEvent(EVENT_UNCONVINCED, Seconds(24), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_START_INTRO, 2s, GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_UNCONVINCED, 24s, GROUP_PHASE_ALL); if (Creature* akama = instance->GetCreature(DATA_AKAMA)) akama->AI()->DoAction(ACTION_FREE); break; @@ -600,7 +601,7 @@ struct boss_illidan_stormrage : public BossAI me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); me->SetDisableGravity(true); DoPlaySoundToSet(me, ILLIDAN_TAKEOFF_SOUND_ID); - events.ScheduleEvent(EVENT_FLY, Seconds(1), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_FLY, 1s, GROUP_PHASE_ALL); events.CancelEventGroup(GROUP_PHASE_1); break; } @@ -627,7 +628,7 @@ struct boss_illidan_stormrage : public BossAI me->SetReactState(REACT_PASSIVE); me->AttackStop(); me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); - events.ScheduleEvent(EVENT_SHADOW_PRISON_TEXT, Milliseconds(500), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_SHADOW_PRISON_TEXT, 500ms, GROUP_PHASE_ALL); break; case ACTION_ILLIDAN_CAGED: for (uint32 summonSpell : SummonCageTrapSpells) @@ -663,8 +664,8 @@ struct boss_illidan_stormrage : public BossAI { case POINT_THROW_GLAIVE: DoPlaySoundToSet(me, ILLIDAN_WARGLAIVE_SOUND_ID); - events.ScheduleEvent(EVENT_THROW_WARGLAIVE, Seconds(2), GROUP_PHASE_ALL); - events.ScheduleEvent(EVENT_FACE_MIDDLE, Milliseconds(1), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_THROW_WARGLAIVE, 2s, GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_FACE_MIDDLE, 1ms, GROUP_PHASE_ALL); break; case POINT_RANDOM_PILLAR: { @@ -683,7 +684,7 @@ struct boss_illidan_stormrage : public BossAI for (Creature* trigger : triggers) trigger->CastSpell(trigger, SPELL_GLAIVE_RETURNS, true); - events.ScheduleEvent(EVENT_GLAIVE_EMOTE, Seconds(3), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_GLAIVE_EMOTE, 3s, GROUP_PHASE_ALL); break; } default: @@ -755,7 +756,7 @@ struct boss_illidan_stormrage : public BossAI events.CancelEventGroup(GROUP_PHASE_DEMON); me->InterruptNonMeleeSpells(false); DoCastSelf(SPELL_DEMON_TRANSFORM_1, true); - events.ScheduleEvent(EVENT_PHASE_4_DELAYED, Seconds(12), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_PHASE_4_DELAYED, 12s, GROUP_PHASE_ALL); } else DoAction(ACTION_START_PHASE_4); @@ -777,12 +778,12 @@ struct boss_illidan_stormrage : public BossAI me->SetControlled(false, UNIT_STATE_ROOT); events.CancelEventGroup(GROUP_PHASE_DEMON); DoCastSelf(SPELL_DEMON_TRANSFORM_1, true); - events.ScheduleEvent(EVENT_RESUME_COMBAT_DEMON, Seconds(12), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_RESUME_COMBAT_DEMON, 12s, GROUP_PHASE_ALL); _isDemon = false; break; case EVENT_EVADE_CHECK: EnterEvadeModeIfNeeded(); - specialEvents.Repeat(Seconds(10)); + specialEvents.Repeat(10s); break; default: break; @@ -813,12 +814,12 @@ struct boss_illidan_stormrage : public BossAI break; case EVENT_UNCONVINCED: Talk(SAY_ILLIDAN_UNCONVINCED); - events.ScheduleEvent(EVENT_PREPARED, Seconds(14), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_PREPARED, 14s, GROUP_PHASE_ALL); break; case EVENT_PREPARED: Talk(SAY_ILLIDAN_PREPARED); me->SetSheath(SHEATH_STATE_MELEE); - events.ScheduleEvent(EVENT_ENCOUNTER_START, Seconds(3), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_ENCOUNTER_START, 3s, GROUP_PHASE_ALL); break; case EVENT_ENCOUNTER_START: me->SetImmuneToAll(false); @@ -828,26 +829,26 @@ struct boss_illidan_stormrage : public BossAI break; case EVENT_FLAME_CRASH: DoCastVictim(SPELL_FLAME_CRASH); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; case EVENT_DRAW_SOUL: DoCastAOE(SPELL_DRAW_SOUL); - events.Repeat(Seconds(34)); + events.Repeat(34s); break; case EVENT_SHEAR: DoCastVictim(SPELL_SHEAR); - events.Repeat(Seconds(12)); + events.Repeat(12s); break; case EVENT_PARASITIC_SHADOWFIEND: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 0.0f, true)) DoCast(target, SPELL_PARASITIC_SHADOWFIEND); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; case EVENT_MINIONS_WEAVE: if (_dead) return; SummonMinions(); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; case EVENT_MOVE_TO_WARGLAIVE_POINT: { @@ -872,26 +873,26 @@ struct boss_illidan_stormrage : public BossAI } case EVENT_THROW_WARGLAIVE: DoCastAOE(SPELL_THROW_GLAIVE); - events.ScheduleEvent(EVENT_THROW_WARGLAIVE_2, Seconds(1), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_THROW_WARGLAIVE_2, 1s, GROUP_PHASE_ALL); break; case EVENT_THROW_WARGLAIVE_2: DoCastAOE(SPELL_THROW_GLAIVE2); me->SetSheath(SHEATH_STATE_UNARMED); - events.ScheduleEvent(EVENT_FLY_TO_RANDOM_PILLAR, Seconds(2), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_FLY_TO_RANDOM_PILLAR, 2s, GROUP_PHASE_ALL); break; case EVENT_CHANGE_ORIENTATION: me->SetFacingTo(_orientation); break; case EVENT_FLY: ChangeOrientation(3.137039f); - events.ScheduleEvent(EVENT_MOVE_TO_WARGLAIVE_POINT, Seconds(6), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_MOVE_TO_WARGLAIVE_POINT, 6s, GROUP_PHASE_ALL); break; case EVENT_FLY_TO_RANDOM_PILLAR: { events.CancelEventGroup(GROUP_PHASE_2); _pillarIndex = urand(0, 3); me->GetMotionMaster()->MovePoint(POINT_RANDOM_PILLAR, IllidanPhase2Positions[_pillarIndex]); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; } case EVENT_FACE_MIDDLE: @@ -916,7 +917,7 @@ struct boss_illidan_stormrage : public BossAI { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 150.0f, true)) DoCast(target, SPELL_DARK_BARRAGE); - events.RescheduleEvent(EVENT_EYE_BLAST, Seconds(5), GROUP_PHASE_2); + events.RescheduleEvent(EVENT_EYE_BLAST, 5s, GROUP_PHASE_2); Milliseconds currentTime = events.GetTimeUntilEvent(EVENT_FLY_TO_RANDOM_PILLAR); events.RescheduleEvent(EVENT_FLY_TO_RANDOM_PILLAR, currentTime + 30s, GROUP_PHASE_2); break; @@ -924,13 +925,13 @@ struct boss_illidan_stormrage : public BossAI case EVENT_FIREBALL: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 150.0f, true)) DoCast(target, SPELL_FIREBALL); - events.Repeat(Seconds(2), Seconds(4)); + events.Repeat(2s, 4s); break; case EVENT_GLAIVE_EMOTE: me->SetDisableGravity(false); me->HandleEmoteCommand(EMOTE_ONESHOT_LAND); me->SetSheath(SHEATH_STATE_MELEE); - events.ScheduleEvent(EVENT_RESUME_COMBAT, Seconds(3), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_RESUME_COMBAT, 3s, GROUP_PHASE_ALL); break; case EVENT_RESUME_COMBAT: me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); @@ -941,7 +942,7 @@ struct boss_illidan_stormrage : public BossAI break; case EVENT_AGONIZING_FLAMES: DoCastSelf(SPELL_AGONIZING_FLAMES_SELECTOR); - events.Repeat(Seconds(53)); + events.Repeat(53s); break; case EVENT_DEMON: me->SetControlled(true, UNIT_STATE_ROOT); @@ -949,8 +950,8 @@ struct boss_illidan_stormrage : public BossAI events.CancelEventGroup(_phase == PHASE_3 ? GROUP_PHASE_3 : GROUP_PHASE_4); me->LoadEquipment(0, true); DoCastSelf(SPELL_DEMON_TRANSFORM_1, true); - events.ScheduleEvent(EVENT_DEMON_TEXT, Seconds(2), GROUP_PHASE_ALL); - specialEvents.ScheduleEvent(EVENT_CANCEL_DEMON_FORM, Minutes(1) + Seconds(12)); + events.ScheduleEvent(EVENT_DEMON_TEXT, 2s, GROUP_PHASE_ALL); + specialEvents.ScheduleEvent(EVENT_CANCEL_DEMON_FORM, 1min + 12s); events.ScheduleEvent(EVENT_SCHEDULE_DEMON_SPELLS, 15s); break; case EVENT_SCHEDULE_DEMON_SPELLS: @@ -970,31 +971,31 @@ struct boss_illidan_stormrage : public BossAI } case EVENT_FLAME_BURST: DoCastSelf(SPELL_FLAME_BURST); - events.Repeat(Seconds(22)); + events.Repeat(22s); break; case EVENT_SHADOW_DEMON: DoCastSelf(SPELL_SUMMON_SHADOWDEMON); break; case EVENT_SHADOW_BLAST: DoCastVictim(SPELL_SHADOW_BLAST); - events.Repeat(Seconds(2)); + events.Repeat(2s); break; case EVENT_PHASE_4_DELAYED: DoAction(ACTION_START_PHASE_4); break; case EVENT_SHADOW_PRISON_TEXT: Talk(SAY_ILLIDAN_SHADOW_PRISON); - events.ScheduleEvent(EVENT_SUMMON_MAIEV, Seconds(9), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_SUMMON_MAIEV, 9s, GROUP_PHASE_ALL); break; case EVENT_SUMMON_MAIEV: DoCastSelf(SPELL_SUMMON_MAIEV); if (Creature* maiev = instance->GetCreature(DATA_MAIEV)) me->SetFacingToObject(maiev); - events.ScheduleEvent(EVENT_CONFRONT_MAIEV_TEXT, Seconds(9), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_CONFRONT_MAIEV_TEXT, 9s, GROUP_PHASE_ALL); break; case EVENT_CONFRONT_MAIEV_TEXT: Talk(SAY_ILLIDAN_CONFRONT_MAIEV); - events.ScheduleEvent(EVENT_RESUME_COMBAT_PHASE_4, Seconds(13), GROUP_PHASE_ALL); + events.ScheduleEvent(EVENT_RESUME_COMBAT_PHASE_4, 13s, GROUP_PHASE_ALL); break; case EVENT_RESUME_COMBAT_PHASE_4: me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); @@ -1005,11 +1006,11 @@ struct boss_illidan_stormrage : public BossAI case EVENT_FRENZY: DoCastSelf(SPELL_FRENZY); Talk(SAY_ILLIDAN_FRENZY); - events.Repeat(Seconds(40)); + events.Repeat(40s); break; case EVENT_TAUNT: Talk(SAY_ILLIDAN_TAUNT); - events.Repeat(Seconds(30), Seconds(60)); + events.Repeat(30s, 60s); break; case EVENT_DEFEATED_TEXT: Talk(SAY_ILLIDAN_DEFEATED); @@ -1052,6 +1053,7 @@ private: EventMap specialEvents; }; +// 23089 - Akama struct npc_akama_illidan : public ScriptedAI { npc_akama_illidan(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), @@ -1124,7 +1126,7 @@ struct npc_akama_illidan : public ScriptedAI me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); _events.SetPhase(PHASE_INTRO); _events.ScheduleEvent(EVENT_TELEPORT, 1s); - _events.ScheduleEvent(EVENT_MOVE_TO_ILLIDARI_ROOM, Seconds(1) + Milliseconds(500)); + _events.ScheduleEvent(EVENT_MOVE_TO_ILLIDARI_ROOM, 1s + 500ms); break; case ACTION_OPEN_DOOR: _instance->SetData(ACTION_OPEN_DOOR, 0); @@ -1183,7 +1185,7 @@ struct npc_akama_illidan : public ScriptedAI break; case POINT_TELEPORT: DoCastSelf(SPELL_AKAMA_TELEPORT); - _events.ScheduleEvent(EVENT_AKAMA_MINIONS_MOVE_2, Milliseconds(500)); + _events.ScheduleEvent(EVENT_AKAMA_MINIONS_MOVE_2, 500ms); break; case POINT_MINIONS: _events.SetPhase(PHASE_MINIONS); @@ -1194,7 +1196,7 @@ struct npc_akama_illidan : public ScriptedAI _events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 2s); break; case POINT_MOVE_BACK: - _events.ScheduleEvent(EVENT_AKAMA_MOVE_TO_ILLIDAN, Milliseconds(1)); + _events.ScheduleEvent(EVENT_AKAMA_MOVE_TO_ILLIDAN, 1ms); break; case POINT_ILLIDAN: _events.ScheduleEvent(EVENT_AKAMA_LIGHT_TEXT, 1s); @@ -1244,12 +1246,12 @@ struct npc_akama_illidan : public ScriptedAI break; case EVENT_SUMMON_SPIRITS: me->SummonCreatureGroup(SUMMON_GROUP); - _events.ScheduleEvent(EVENT_SPIRIT_SAY_1, Seconds(1)); + _events.ScheduleEvent(EVENT_SPIRIT_SAY_1, 1s); break; case EVENT_SPIRIT_SAY_1: if (Creature* undalo = ObjectAccessor::GetCreature(*me, _spiritOfUdaloGUID)) undalo->AI()->Talk(SAY_SPIRIT_ALONE); - _events.ScheduleEvent(EVENT_SPIRIT_SAY_2, Seconds(6)); + _events.ScheduleEvent(EVENT_SPIRIT_SAY_2, 6s); break; case EVENT_SPIRIT_SAY_2: if (Creature* olum = ObjectAccessor::GetCreature(*me, _spiritOfOlumGUID)) @@ -1277,12 +1279,12 @@ struct npc_akama_illidan : public ScriptedAI if (Creature* undalo = ObjectAccessor::GetCreature(*me, _spiritOfUdaloGUID)) { undalo->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); - undalo->DespawnOrUnsummon(Seconds(7)); + undalo->DespawnOrUnsummon(7s); } if (Creature* olum = ObjectAccessor::GetCreature(*me, _spiritOfOlumGUID)) { olum->HandleEmoteCommand(EMOTE_ONESHOT_SALUTE); - olum->DespawnOrUnsummon(Seconds(7)); + olum->DespawnOrUnsummon(7s); } break; case EVENT_RUN_FROM_ILLIDAN_ROOM: @@ -1310,7 +1312,7 @@ struct npc_akama_illidan : public ScriptedAI case EVENT_HEALING_POTION: if (me->HealthBelowPct(20)) DoCastSelf(SPELL_HEALING_POTION); - _events.Repeat(Seconds(1)); + _events.Repeat(1s); break; case EVENT_AKAMA_MINIONS: Talk(SAY_AKAMA_MINIONS); @@ -1332,7 +1334,7 @@ struct npc_akama_illidan : public ScriptedAI break; case EVENT_CHAIN_LIGHTNING: DoCastVictim(SPELL_CHAIN_LIGHTNING); - _events.Repeat(Seconds(8) + Milliseconds(500)); + _events.Repeat(8s + 500ms); break; case EVENT_AKAMA_MOVE_BACK: me->GetMotionMaster()->MoveAlongSplineChain(POINT_MOVE_BACK, SPLINE_MOVE_BACK, false); @@ -1372,6 +1374,7 @@ private: bool _isTeleportToMinions; }; +// 23498 - Parasitic Shadowfiend struct npc_parasitic_shadowfiend : public ScriptedAI { npc_parasitic_shadowfiend(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } @@ -1387,7 +1390,7 @@ struct npc_parasitic_shadowfiend : public ScriptedAI if (Creature* illidan = _instance->GetCreature(DATA_ILLIDAN_STORMRAGE)) illidan->AI()->JustSummoned(me); me->SetReactState(REACT_PASSIVE); - _scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/) + _scheduler.Schedule(2s, [this](TaskContext /*context*/) { me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(); @@ -1402,7 +1405,7 @@ struct npc_parasitic_shadowfiend : public ScriptedAI me->AttackStop(); } else if (action == ACTION_RESUME_COMBAT) - _scheduler.Schedule(Seconds(2), [this](TaskContext /*context*/) + _scheduler.Schedule(2s, [this](TaskContext /*context*/) { me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(); @@ -1424,6 +1427,7 @@ private: TaskScheduler _scheduler; }; +// 22996 - Blade of Azzinoth struct npc_blade_of_azzinoth : public NullCreatureAI { npc_blade_of_azzinoth(Creature* creature) : NullCreatureAI(creature), _instance(creature->GetInstanceScript()) { } @@ -1441,10 +1445,10 @@ struct npc_blade_of_azzinoth : public NullCreatureAI _flameGuid.Clear(); me->PlayDirectSound(WARGLAIVE_SPAWN_SOUND_ID); DoCastSelf(SPELL_BIRTH, true); - _scheduler.Schedule(Seconds(3), [this](TaskContext /*context*/) + _scheduler.Schedule(3s, [this](TaskContext /*context*/) { DoCastSelf(SPELL_SUMMON_TEAR_OF_AZZINOTH); - _scheduler.Schedule(Milliseconds(500), [this](TaskContext /*context*/) + _scheduler.Schedule(500ms, [this](TaskContext /*context*/) { if (Creature* flame = ObjectAccessor::GetCreature(*me, _flameGuid)) DoCast(flame, SPELL_AZZINOTH_CHANNEL); @@ -1469,6 +1473,7 @@ private: ObjectGuid _flameGuid; }; +// 22997 - Flame of Azzinoth struct npc_flame_of_azzinoth : public ScriptedAI { npc_flame_of_azzinoth(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) @@ -1515,14 +1520,14 @@ struct npc_flame_of_azzinoth : public ScriptedAI if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, ChargeTargetSelector())) { DoCast(target, SPELL_CHARGE); - _events.Repeat(Seconds(5)); + _events.Repeat(5s); } else - _events.Repeat(Seconds(1)); + _events.Repeat(1s); break; case EVENT_FLAME_BLAST: DoCastAOE(SPELL_FLAME_BLAST); - _events.Repeat(Seconds(12)); + _events.Repeat(12s); break; default: break; @@ -1546,6 +1551,7 @@ private: EventMap _events; }; +// 23070 - Illidan DB Target struct npc_illidan_db_target : public NullCreatureAI { npc_illidan_db_target(Creature* creature) : NullCreatureAI(creature) { } @@ -1571,6 +1577,7 @@ struct npc_illidan_db_target : public NullCreatureAI } }; +// 23375 - Shadow Demon struct npc_shadow_demon : public PassiveAI { npc_shadow_demon(Creature* creature) : PassiveAI(creature), _instance(creature->GetInstanceScript()) { } @@ -1585,7 +1592,7 @@ struct npc_shadow_demon : public PassiveAI DoCastSelf(SPELL_SHADOW_DEMON_PASSIVE); DoCastSelf(SPELL_FIND_TARGET); - _scheduler.Schedule(Seconds(1), [this](TaskContext checkTarget) + _scheduler.Schedule(1s, [this](TaskContext checkTarget) { if (Unit* target = ObjectAccessor::GetUnit(*me, _targetGUID)) { @@ -1619,6 +1626,7 @@ private: ObjectGuid _targetGUID; }; +// 23197 - Maiev Shadowsong struct npc_maiev : public ScriptedAI { npc_maiev(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _canDown(true) { } @@ -1714,25 +1722,25 @@ struct npc_maiev : public ScriptedAI illidan->CastSpell(illidan, SPELL_CAGED_TRAP_TELEPORT, true); DoCastSelf(SPELL_CAGE_TRAP_SUMMON); Talk(SAY_MAIEV_SHADOWSONG_TRAP); - _events.Repeat(Seconds(30)); + _events.Repeat(30s); break; case EVENT_SHADOW_STRIKE: DoCastVictim(SPELL_SHADOW_STRIKE); - _events.Repeat(Seconds(50)); + _events.Repeat(50s); break; case EVENT_THROW_DAGGER: if (Unit* target = me->GetVictim()) if (!me->IsWithinMeleeRange(target)) { DoCastVictim(SPELL_THROW_DAGGER); - _events.Repeat(Seconds(5)); + _events.Repeat(5s); break; } - _events.Repeat(Seconds(1)); + _events.Repeat(1s); break; case EVENT_TAUNT: Talk(SAY_MAIEV_SHADOWSONG_TAUNT); - _events.Repeat(Seconds(30), Seconds(60)); + _events.Repeat(30s, 60s); break; case EVENT_MAIEV_OUTRO_TEXT: Talk(SAY_MAIEV_SHADOWSONG_OUTRO); @@ -1744,7 +1752,7 @@ struct npc_maiev : public ScriptedAI break; case EVENT_MAIEV_TELEPORT_DESPAWN: DoCastSelf(SPELL_TELEPORT_VISUAL); - me->DespawnOrUnsummon(Seconds(1)); + me->DespawnOrUnsummon(1s); break; default: break; @@ -1763,13 +1771,14 @@ private: bool _canDown; }; +// 23304 - Cage Trap Disturb Trigger struct npc_cage_trap_trigger : public PassiveAI { npc_cage_trap_trigger(Creature* creature) : PassiveAI(creature) { } void Reset() override { - _scheduler.Schedule(Seconds(1), [this](TaskContext checkTarget) + _scheduler.Schedule(1s, [this](TaskContext checkTarget) { DoCastSelf(SPELL_CAGE_TRAP_PERIODIC); checkTarget.Repeat(); @@ -1785,6 +1794,7 @@ private: TaskScheduler _scheduler; }; +// 23226 - Illidari Elite struct npc_illidari_elite : public ScriptedAI { npc_illidari_elite(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } @@ -1809,6 +1819,9 @@ private: InstanceScript* _instance; }; +// 23069 - Demon Fire +// 23259 - Blaze +// 23336 - Flame Crash struct npc_illidan_generic_fire : public ScriptedAI { npc_illidan_generic_fire(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) @@ -2347,7 +2360,7 @@ class spell_illidan_despawn_akama : public SpellScript void HandleDummy(SpellEffIndex /*effIndex*/) { if (Creature* target = GetHitCreature()) - target->DespawnOrUnsummon(Seconds(1)); + target->DespawnOrUnsummon(1s); } void Register() override diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp index 8515c2f0004..d06827b8975 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp @@ -26,7 +26,7 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" -enum Says +enum CouncilTexts { SAY_COUNCIL_AGRO = 0, SAY_COUNCIL_ENRAGE = 1, @@ -36,7 +36,7 @@ enum Says SAY_COUNCIL_DEATH = 5 }; -enum Spells +enum CouncilSpells { // Illidari Council (Trigger) SPELL_EMPYREAL_BALANCE = 41499, @@ -89,7 +89,7 @@ enum Spells SPELL_ENVENOM_DUMMY = 41510 }; -enum IllidariEvents +enum CouncilEvents { EVENT_EMPYREAL_EQUIVALENCY = 1, EVENT_VANISH, @@ -109,7 +109,7 @@ enum IllidariEvents EVENT_BERSERK }; -enum IllidariMisc +enum CouncilMisc { SUMMON_COUNCIL_GROUP = 1, ACTION_REFRESH_DAMPEN @@ -133,6 +133,7 @@ static uint32 GetRandomBossExcept(uint32 exception) return Trinity::Containers::SelectRandomContainerElement(bossData); } +// 23426 - The Illidari Council struct boss_illidari_council : public BossAI { boss_illidari_council(Creature* creature) : BossAI(creature, DATA_ILLIDARI_COUNCIL), _inCombat(false) { } @@ -206,7 +207,7 @@ struct boss_illidari_council : public BossAI { case EVENT_EMPYREAL_EQUIVALENCY: DoCastSelf(SPELL_EMPYREAL_EQUIVALENCY, true); - events.Repeat(Seconds(2)); + events.Repeat(2s); break; case EVENT_BERSERK: for (uint32 bossData : CouncilData) @@ -301,6 +302,7 @@ private: Unit const* _me; }; +// 22949 - Gathios the Shatterer struct boss_gathios_the_shatterer : public IllidariCouncilBossAI { boss_gathios_the_shatterer(Creature* creature) : IllidariCouncilBossAI(creature, DATA_GATHIOS_THE_SHATTERER) { } @@ -331,25 +333,25 @@ struct boss_gathios_the_shatterer : public IllidariCouncilBossAI Unit* target = Trinity::Containers::SelectRandomContainerElement(TargetList); DoCast(target, RAND(SPELL_BLESS_PROTECTION, SPELL_BLESS_SPELL_WARDING)); } - events.Repeat(Seconds(30), Seconds(45)); + events.Repeat(30s, 45s); break; } case EVENT_AURA: DoCastSelf(RAND(SPELL_CHROMATIC_AURA, SPELL_DEVOTION_AURA)); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; case EVENT_HAMMER_OF_JUSTICE: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, HammerTargetSelector(me))) DoCast(target, SPELL_HAMMER_OF_JUSTICE); - events.Repeat(Seconds(20)); + events.Repeat(20s); break; case EVENT_JUDGEMENT: DoCastVictim(SPELL_JUDGEMENT); - events.Repeat(Seconds(15)); + events.Repeat(15s); break; case EVENT_CONSECRATION: DoCastSelf(SPELL_CONSECRATION); - events.Repeat(Seconds(30), Seconds(35)); + events.Repeat(30s, 35s); break; default: break; @@ -357,6 +359,7 @@ struct boss_gathios_the_shatterer : public IllidariCouncilBossAI } }; +// 22950 - High Nethermancer Zerevor struct boss_high_nethermancer_zerevor : public IllidariCouncilBossAI { boss_high_nethermancer_zerevor(Creature* creature) : IllidariCouncilBossAI(creature, DATA_HIGH_NETHERMANCER_ZEREVOR), _canUseArcaneExplosion(true) { } @@ -381,6 +384,7 @@ struct boss_high_nethermancer_zerevor : public IllidariCouncilBossAI if (actionId == ACTION_REFRESH_DAMPEN) events.ScheduleEvent(EVENT_DAMPEN_MAGIC, 50s); } + void ExecuteEvent(uint32 eventId) override { switch (eventId) @@ -389,12 +393,12 @@ struct boss_high_nethermancer_zerevor : public IllidariCouncilBossAI if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) DoCast(target, SPELL_FLAMESTRIKE); Talk(SAY_COUNCIL_SPECIAL); - events.Repeat(Seconds(40)); + events.Repeat(40s); break; case EVENT_BLIZZARD: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) DoCast(target, SPELL_BLIZZARD); - events.Repeat(Seconds(15), Seconds(40)); + events.Repeat(15s, 40s); break; case EVENT_ARCANE_EXPLOSION_CHECK: _canUseArcaneExplosion = true; @@ -406,7 +410,7 @@ struct boss_high_nethermancer_zerevor : public IllidariCouncilBossAI _canUseArcaneExplosion = false; events.ScheduleEvent(EVENT_ARCANE_EXPLOSION_CHECK, 5s); } - events.Repeat(Seconds(1)); + events.Repeat(1s); break; case EVENT_DAMPEN_MAGIC: DoCastSelf(SPELL_DAMPEN_MAGIC); @@ -440,6 +444,7 @@ private: bool _canUseArcaneExplosion; }; +// 22951 - Lady Malande struct boss_lady_malande : public IllidariCouncilBossAI { boss_lady_malande(Creature* creature) : IllidariCouncilBossAI(creature, DATA_LADY_MALANDE) { } @@ -463,16 +468,16 @@ struct boss_lady_malande : public IllidariCouncilBossAI { case EVENT_CIRCLE_OF_HEALING: DoCastSelf(SPELL_CIRCLE_OF_HEALING); - events.Repeat(Seconds(20), Seconds(35)); + events.Repeat(20s, 35s); break; case EVENT_REFLECTIVE_SHIELD: DoCastSelf(SPELL_REFLECTIVE_SHIELD); Talk(SAY_COUNCIL_SPECIAL); - events.Repeat(Seconds(40)); + events.Repeat(40s); break; case EVENT_DIVINE_WRATH: DoCastVictim(SPELL_DIVINE_WRATH); - events.Repeat(Seconds(20)); + events.Repeat(20s); break; default: break; @@ -500,6 +505,7 @@ struct boss_lady_malande : public IllidariCouncilBossAI } }; +// 22952 - Veras Darkshadow struct boss_veras_darkshadow : public IllidariCouncilBossAI { boss_veras_darkshadow(Creature* creature) : IllidariCouncilBossAI(creature, DATA_VERAS_DARKSHADOW) { } @@ -522,7 +528,7 @@ struct boss_veras_darkshadow : public IllidariCouncilBossAI Talk(SAY_COUNCIL_SPECIAL); DoCastSelf(SPELL_VANISH); DoCastSelf(SPELL_DEADLY_STRIKE); - events.Repeat(Seconds(60)); + events.Repeat(60s); break; default: break; @@ -530,6 +536,7 @@ struct boss_veras_darkshadow : public IllidariCouncilBossAI } }; +// 23451 - Veras Vanish Effect struct npc_veras_vanish_effect : public PassiveAI { npc_veras_vanish_effect(Creature* creature) : PassiveAI(creature) { } @@ -537,7 +544,7 @@ struct npc_veras_vanish_effect : public PassiveAI void Reset() override { DoCastSelf(SPELL_BIRTH, true); - _scheduler.Schedule(Seconds(1), [this](TaskContext /*context*/) + _scheduler.Schedule(1s, [this](TaskContext /*context*/) { DoCastSelf(SPELL_ENVENOM_DUMMY, true); }); diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index b876dc0900e..d8730117e5a 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -22,7 +22,7 @@ #include "SpellAuraEffects.h" #include "GridNotifiers.h" -enum Texts +enum ShahrazTexts { SAY_TAUNT = 0, SAY_AGGRO = 1, @@ -34,7 +34,7 @@ enum Texts EMOTE_BERSERK = 7 }; -enum Spells +enum ShahrazSpells { SPELL_FATAL_ATTRACTION_DAMAGE = 40871, SPELL_SILENCING_SHRIEK = 40823, @@ -59,7 +59,7 @@ enum Spells SPELL_BEAM_SINFUL = 40827 }; -enum Events +enum ShahrazEvents { EVENT_RANDOM_BEAM = 1, EVENT_PRISMATIC_SHIELD, @@ -95,6 +95,7 @@ uint32 const PrismaticAuras[6]= SPELL_PRISMATIC_AURA_HOLY }; +// 22947 - Mother Shahraz struct boss_mother_shahraz : public BossAI { boss_mother_shahraz(Creature* creature) : BossAI(creature, DATA_MOTHER_SHAHRAZ), _enraged(false) { } @@ -151,24 +152,24 @@ struct boss_mother_shahraz : public BossAI { case EVENT_RANDOM_BEAM: DoCastSelf(BeamTriggers[urand(0, 3)]); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; case EVENT_PRISMATIC_SHIELD: DoCastSelf(PrismaticAuras[urand(0, 5)]); - events.Repeat(Seconds(15)); + events.Repeat(15s); break; case EVENT_FATAL_ATTRACTION: Talk(SAY_SPELL); DoCastSelf(SPELL_FATAL_ATTRACTION_TELEPORT, { SPELLVALUE_MAX_TARGETS, 3 }); - events.Repeat(Seconds(30)); + events.Repeat(30s); break; case EVENT_SILENCING_SHRIEK: DoCastVictim(SPELL_SILENCING_SHRIEK); - events.Repeat(Seconds(18), Seconds(30)); + events.Repeat(18s, 30s); break; case EVENT_TAUNT: Talk(SAY_TAUNT); - events.Repeat(Seconds(30), Seconds(40)); + events.Repeat(30s, 40s); break; case EVENT_BERSERK: Talk(EMOTE_BERSERK, me); diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index 4e81dc242fd..f034cd97615 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -26,7 +26,7 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" -enum Says +enum ReliquaryTexts { // Essence of Suffering SUFF_SAY_AGRO = 0, @@ -53,7 +53,7 @@ enum Says //ANGER_SAY_DEATH = 6 }; -enum Spells +enum ReliquarySpells { // Reliquary SPELL_SUMMON_ESSENCE_OF_SUFFERING = 41488, @@ -88,7 +88,7 @@ enum Spells SUMMON_ENSLAVED_SOUL = 41538 }; -enum Misc +enum ReliquaryMisc { RELIQUARY_DESPAWN_WAYPOINT = 0, ACTION_ESSENCE_OF_SUFFERING_DEAD, @@ -98,14 +98,14 @@ enum Misc ANGER_SOUND_ID_DEATH = 11401 }; -enum Phases +enum ReliquaryPhases { PHASE_ESSENCE_OF_SUFFERING = 1, PHASE_ESSENCE_OF_DESIRE, PHASE_ESSENCE_OF_ANGER }; -enum Events +enum ReliquaryEvents { EVENT_SUBMERGE = 1, EVENT_SUMMON_ESSENCE, @@ -138,6 +138,7 @@ class EnslavedSoulEvent : public BasicEvent Creature* _owner; }; +// 22856 - Reliquary of the Lost struct boss_reliquary_of_souls : public BossAI { boss_reliquary_of_souls(Creature* creature) : BossAI(creature, DATA_RELIQUARY_OF_SOULS), _inCombat(false) { } @@ -283,6 +284,7 @@ private: bool _inCombat; }; +// 23418 - Essence of Suffering struct boss_essence_of_suffering : public BossAI { boss_essence_of_suffering(Creature* creature) : BossAI(creature, DATA_ESSENCE_OF_SUFFERING), _dead(false) @@ -308,7 +310,7 @@ struct boss_essence_of_suffering : public BossAI reliquary->AI()->DoAction(ACTION_ESSENCE_OF_SUFFERING_DEAD); DoCastSelf(SPELL_SUBMERGE_VISUAL, true); - me->DespawnOrUnsummon(Seconds(2)); + me->DespawnOrUnsummon(2s); } } @@ -362,12 +364,12 @@ struct boss_essence_of_suffering : public BossAI { case EVENT_SOUL_DRAIN: DoCastSelf(SPELL_SOUL_DRAIN, { SPELLVALUE_MAX_TARGETS, 5 }); - events.Repeat(Seconds(30), Seconds(35)); + events.Repeat(30s, 35s); break; case EVENT_FRENZY: Talk(SUFF_SAY_ENRAGE); DoCastSelf(SPELL_FRENZY); - events.Repeat(Seconds(45), Seconds(50)); + events.Repeat(45s, 50s); break; default: break; @@ -383,6 +385,7 @@ private: bool _dead; }; +// 23419 - Essence of Desire struct boss_essence_of_desire : public BossAI { boss_essence_of_desire(Creature* creature) : BossAI(creature, DATA_ESSENCE_OF_DESIRE), _dead(false) @@ -419,7 +422,7 @@ struct boss_essence_of_desire : public BossAI reliquary->AI()->DoAction(ACTION_ESSENCE_OF_DESIRE_DEAD); DoCastSelf(SPELL_SUBMERGE_VISUAL, true); - me->DespawnOrUnsummon(Seconds(2)); + me->DespawnOrUnsummon(2s); } } @@ -463,16 +466,16 @@ struct boss_essence_of_desire : public BossAI { case EVENT_SPIRIT_SHOCK: DoCastVictim(SPELL_SPIRIT_SHOCK); - events.Repeat(Seconds(10), Seconds(15)); + events.Repeat(10s, 15s); break; case EVENT_RUNE_SHIELD: DoCastSelf(SPELL_RUNE_SHIELD); - events.Repeat(Seconds(16)); + events.Repeat(16s); break; case EVENT_DEADEN: Talk(DESI_SAY_SPEC); DoCastVictim(SPELL_DEADEN); - events.Repeat(Seconds(31)); + events.Repeat(31s); break; default: break; @@ -488,6 +491,7 @@ private: bool _dead; }; +// 23420 - Essence of Anger struct boss_essence_of_anger : public BossAI { boss_essence_of_anger(Creature* creature) :BossAI(creature, DATA_ESSENCE_OF_ANGER) @@ -509,7 +513,7 @@ struct boss_essence_of_anger : public BossAI events.ScheduleEvent(EVENT_START_CHECK_TANKER, 5s); events.ScheduleEvent(EVENT_SOUL_SCREAM, 11s); events.ScheduleEvent(EVENT_SPITE, 20s); - events.ScheduleEvent(EVENT_FREED_2, Seconds(1), Minutes(3)); + events.ScheduleEvent(EVENT_FREED_2, 1s, 3min); me->SetCombatPulseDelay(5); me->setActive(true); @@ -553,12 +557,12 @@ struct boss_essence_of_anger : public BossAI } case EVENT_SOUL_SCREAM: DoCastSelf(SPELL_SOUL_SCREAM); - events.Repeat(Seconds(11)); + events.Repeat(11s); break; case EVENT_SPITE: Talk(ANGER_SAY_SPITE); DoCastSelf(SPELL_SPITE, { SPELLVALUE_MAX_TARGETS, 3 }); - events.Repeat(Seconds(20)); + events.Repeat(20s); break; case EVENT_START_CHECK_TANKER: if (Unit* target = me->GetVictim()) @@ -567,7 +571,7 @@ struct boss_essence_of_anger : public BossAI events.ScheduleEvent(EVENT_CHECK_TANKER, 1s); } else - events.Repeat(Seconds(1)); + events.Repeat(1s); break; case EVENT_FREED_2: Talk(ANGER_SAY_FREED_2); @@ -587,6 +591,7 @@ private: ObjectGuid _targetGUID; }; +// 23469 - Enslaved Soul struct npc_enslaved_soul : public ScriptedAI { npc_enslaved_soul(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()), _dead(false) { } @@ -599,7 +604,7 @@ struct npc_enslaved_soul : public ScriptedAI DoCastSelf(SPELL_ENSLAVED_SOUL_PASSIVE, true); - _scheduler.Schedule(Seconds(3), [this](TaskContext /*context*/) + _scheduler.Schedule(3s, [this](TaskContext /*context*/) { me->SetReactState(REACT_AGGRESSIVE); DoZoneInCombat(); @@ -651,6 +656,7 @@ private: bool _dead; }; +// 23417 - Reliquary Combat Trigger struct npc_reliquary_combat_trigger : public ScriptedAI { npc_reliquary_combat_trigger(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index 00fc7d84e5d..2e6c0e37a6c 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -29,7 +29,7 @@ #include "SpellScript.h" #include "TemporarySummon.h" -enum Says +enum AkamaTexts { // Akama SAY_BROKEN_FREE_0 = 0, @@ -42,7 +42,7 @@ enum Says SAY_BROKEN_HAIL = 1 }; -enum Spells +enum AkamaSpells { // Akama SPELL_STEALTH = 34189, @@ -79,14 +79,14 @@ enum Spells SPELL_SPIRITBINDER_SPIRIT_HEAL = 42317 }; -enum Creatures +enum AkamaCreatures { NPC_ASHTONGUE_CHANNELER = 23421, NPC_ASHTONGUE_BROKEN = 23319, NPC_CREATURE_SPAWNER_AKAMA = 23210 }; -enum Actions +enum AkamaActions { ACTION_START_SPAWNING = 0, ACTION_STOP_SPAWNING = 1, @@ -97,7 +97,7 @@ enum Actions ACTION_BROKEN_HAIL = 6 }; -enum Events +enum AkamaEvents { // Akama EVENT_SHADE_START = 1, @@ -137,7 +137,7 @@ enum Events EVENT_CHAIN_HEAL_RESET = 29 }; -enum Misc +enum AkamaMisc { AKAMA_CHANNEL_WAYPOINT = 0, AKAMA_INTRO_WAYPOINT = 1, @@ -198,6 +198,7 @@ static float const MIDDLE_OF_ROOM = 400.0f; static float const FACE_THE_DOOR = 0.08726646f; static float const FACE_THE_PLATFORM = 3.118662f; +// 22841 - Shade of Akama struct boss_shade_of_akama : public BossAI { boss_shade_of_akama(Creature* creature) : BossAI(creature, DATA_SHADE_OF_AKAMA) @@ -258,7 +259,7 @@ struct boss_shade_of_akama : public BossAI me->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE); me->SetImmuneToPC(false); me->SetWalk(false); - events.ScheduleEvent(EVENT_ADD_THREAT, Milliseconds(100)); + events.ScheduleEvent(EVENT_ADD_THREAT, 100ms); for (ObjectGuid spawnerGuid : _spawners) if (Creature* spawner = ObjectAccessor::GetCreature(*me, spawnerGuid)) @@ -327,11 +328,11 @@ struct boss_shade_of_akama : public BossAI } case EVENT_ADD_THREAT: DoCast(SPELL_THREAT); - events.Repeat(Seconds(3) + Milliseconds(500)); + events.Repeat(3s + 500ms); break; case EVENT_EVADE_CHECK: EnterEvadeModeIfNeeded(); - events.Repeat(Seconds(10)); + events.Repeat(10s); break; default: break; @@ -346,6 +347,7 @@ private: bool _isInPhaseOne; }; +// 23191 - Akama struct npc_akama_shade : public ScriptedAI { npc_akama_shade(Creature* creature) : ScriptedAI(creature), _summons(me) @@ -474,11 +476,11 @@ struct npc_akama_shade : public ScriptedAI break; case EVENT_CHAIN_LIGHTNING: DoCastVictim(SPELL_CHAIN_LIGHTNING); - _events.Repeat(Seconds(8), Seconds(15)); + _events.Repeat(8s, 15s); break; case EVENT_DESTRUCTIVE_POISON: DoCastSelf(SPELL_DESTRUCTIVE_POISON); - _events.Repeat(Seconds(3), Seconds(7)); + _events.Repeat(3s, 7s); break; case EVENT_START_SOUL_RETRIEVE: me->SetFacingTo(FACE_THE_DOOR); @@ -489,22 +491,22 @@ struct npc_akama_shade : public ScriptedAI me->HandleEmoteCommand(EMOTE_ONESHOT_ROAR); Talk(SAY_BROKEN_FREE_0); SummonBrokens(); - _events.ScheduleEvent(EVENT_BROKEN_FREE_1, Seconds(10)); + _events.ScheduleEvent(EVENT_BROKEN_FREE_1, 10s); break; case EVENT_BROKEN_FREE_1: Talk(SAY_BROKEN_FREE_1); - _events.ScheduleEvent(EVENT_BROKEN_FREE_2, Seconds(12)); + _events.ScheduleEvent(EVENT_BROKEN_FREE_2, 12s); break; case EVENT_BROKEN_FREE_2: Talk(SAY_BROKEN_FREE_2); - _events.ScheduleEvent(EVENT_BROKEN_FREE_3, Seconds(15)); + _events.ScheduleEvent(EVENT_BROKEN_FREE_3, 15s); break; case EVENT_BROKEN_FREE_3: if (Creature* special = ObjectAccessor::GetCreature(*me, _chosen)) special->AI()->Talk(SAY_BROKEN_SPECIAL); _summons.DoAction(ACTION_BROKEN_EMOTE, _pred); - _events.ScheduleEvent(EVENT_BROKEN_FREE_4, Seconds(5)); + _events.ScheduleEvent(EVENT_BROKEN_FREE_4, 5s); break; case EVENT_BROKEN_FREE_4: _summons.DoAction(ACTION_BROKEN_HAIL, _pred); @@ -552,6 +554,7 @@ private: bool _hasYelledOnce; }; +// 23421 - Ashtongue Channeler struct npc_ashtongue_channeler : public PassiveAI { npc_ashtongue_channeler(Creature* creature) : PassiveAI(creature) @@ -561,7 +564,7 @@ struct npc_ashtongue_channeler : public PassiveAI void Reset() override { - _scheduler.Schedule(Seconds(2), [this](TaskContext channel) + _scheduler.Schedule(2s, [this](TaskContext channel) { if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA)) { @@ -569,10 +572,10 @@ struct npc_ashtongue_channeler : public PassiveAI DoCastSelf(SPELL_SHADE_SOUL_CHANNEL); else - me->DespawnOrUnsummon(Seconds(3)); + me->DespawnOrUnsummon(3s); } - channel.Repeat(Seconds(2)); + channel.Repeat(2s); }); me->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE); } @@ -587,6 +590,7 @@ private: TaskScheduler _scheduler; }; +// 23210 - Creature Generator (Akama) struct npc_creature_generator_akama : public ScriptedAI { npc_creature_generator_akama(Creature* creature) : ScriptedAI(creature), _summons(me) @@ -621,7 +625,7 @@ struct npc_creature_generator_akama : public ScriptedAI case ACTION_START_SPAWNING: if (_leftSide) { - _events.ScheduleEvent(EVENT_SPAWN_WAVE_B, Milliseconds(100)); + _events.ScheduleEvent(EVENT_SPAWN_WAVE_B, 100ms); _events.ScheduleEvent(EVENT_SUMMON_ASHTONGUE_SORCERER, 2s, 5s); } else @@ -652,15 +656,15 @@ struct npc_creature_generator_akama : public ScriptedAI { case EVENT_SPAWN_WAVE_B: DoCastSelf(SPELL_ASHTONGUE_WAVE_B); - _events.Repeat(Seconds(50), Seconds(60)); + _events.Repeat(50s, 60s); break; case EVENT_SUMMON_ASHTONGUE_SORCERER: // left DoCastSelf(SPELL_SUMMON_ASHTONGUE_SORCERER); - _events.Repeat(Seconds(30), Seconds(35)); + _events.Repeat(30s, 35s); break; case EVENT_SUMMON_ASHTONGUE_DEFENDER: // right DoCastSelf(SPELL_SUMMON_ASHTONGUE_DEFENDER); - _events.Repeat(Seconds(30), Seconds(40)); + _events.Repeat(30s, 40s); break; default: break; @@ -674,6 +678,7 @@ private: bool _leftSide; }; +// 23215 - Ashtongue Sorcerer struct npc_ashtongue_sorcerer : public ScriptedAI { npc_ashtongue_sorcerer(Creature* creature) : ScriptedAI(creature) @@ -703,7 +708,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI void JustDied(Unit* /*killer*/) override { - me->DespawnOrUnsummon(Seconds(5)); + me->DespawnOrUnsummon(5s); } void EnterEvadeMode(EvadeReason /*why*/) override { } @@ -726,7 +731,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MovePoint(1, me->GetPositionX() + frand(-8.0f, 8.0f), me->GetPositionY() + frand(-8.0f, 8.0f), me->GetPositionZ()); - _scheduler.Schedule(Seconds(1) + Milliseconds(500), [this](TaskContext sorcer_channel) + _scheduler.Schedule(1s + 500ms, [this](TaskContext sorcer_channel) { if (Creature* shade = _instance->GetCreature(DATA_SHADE_OF_AKAMA)) { @@ -734,7 +739,7 @@ struct npc_ashtongue_sorcerer : public ScriptedAI { me->SetFacingToObject(shade); DoCastSelf(SPELL_SHADE_SOUL_CHANNEL); - sorcer_channel.Repeat(Seconds(2)); + sorcer_channel.Repeat(2s); } else { @@ -768,6 +773,7 @@ private: bool _inBanish; }; +// 23216 - Ashtongue Defender struct npc_ashtongue_defender : public ScriptedAI { npc_ashtongue_defender(Creature* creature) : ScriptedAI(creature) @@ -783,7 +789,7 @@ struct npc_ashtongue_defender : public ScriptedAI void JustDied(Unit* /*killer*/) override { - me->DespawnOrUnsummon(Seconds(5)); + me->DespawnOrUnsummon(5s); } void JustEngagedWith(Unit* /*who*/) override @@ -807,19 +813,19 @@ struct npc_ashtongue_defender : public ScriptedAI { case EVENT_DEBILITATING_STRIKE: DoCastVictim(SPELL_DEBILITATING_STRIKE); - _events.Repeat(Seconds(20), Seconds(25)); + _events.Repeat(20s, 25s); break; case EVENT_HEROIC_STRIKE: DoCastSelf(SPELL_HEROIC_STRIKE); - _events.Repeat(Seconds(5), Seconds(15)); + _events.Repeat(5s, 15s); break; case EVENT_SHIELD_BASH: DoCastVictim(SPELL_SHIELD_BASH); - _events.Repeat(Seconds(10), Seconds(20)); + _events.Repeat(10s, 20s); break; case EVENT_WINDFURY: DoCastVictim(SPELL_WINDFURY); - _events.Repeat(Seconds(6), Seconds(8)); + _events.Repeat(6s, 8s); break; default: break; @@ -834,6 +840,7 @@ private: EventMap _events; }; +// 23318 - Ashtongue Rogue struct npc_ashtongue_rogue : public ScriptedAI { npc_ashtongue_rogue(Creature* creature) : ScriptedAI(creature) @@ -849,12 +856,12 @@ struct npc_ashtongue_rogue : public ScriptedAI void JustDied(Unit* /*killer*/) override { - me->DespawnOrUnsummon(Seconds(5)); + me->DespawnOrUnsummon(5s); } void JustEngagedWith(Unit* /*who*/) override { - _events.ScheduleEvent(EVENT_DEBILITATING_POISON, Milliseconds(500), Seconds(2)); + _events.ScheduleEvent(EVENT_DEBILITATING_POISON, 500ms, 2s); _events.ScheduleEvent(EVENT_EVISCERATE, 2s, 5s); } @@ -873,11 +880,11 @@ struct npc_ashtongue_rogue : public ScriptedAI { case EVENT_DEBILITATING_POISON: DoCastVictim(SPELL_DEBILITATING_POISON); - _events.Repeat(Seconds(15), Seconds(20)); + _events.Repeat(15s, 20s); break; case EVENT_EVISCERATE: DoCastVictim(SPELL_EVISCERATE); - _events.Repeat(Seconds(12), Seconds(20)); + _events.Repeat(12s, 20s); break; default: break; @@ -892,6 +899,7 @@ private: EventMap _events; }; +// 23523 - Ashtongue Elementalist struct npc_ashtongue_elementalist : public ScriptedAI { npc_ashtongue_elementalist(Creature* creature) : ScriptedAI(creature) @@ -907,7 +915,7 @@ struct npc_ashtongue_elementalist : public ScriptedAI void JustDied(Unit* /*killer*/) override { - me->DespawnOrUnsummon(Seconds(5)); + me->DespawnOrUnsummon(5s); } void JustEngagedWith(Unit* /*who*/) override @@ -931,11 +939,11 @@ struct npc_ashtongue_elementalist : public ScriptedAI { case EVENT_RAIN_OF_FIRE: DoCastVictim(SPELL_RAIN_OF_FIRE); - _events.Repeat(Seconds(15), Seconds(20)); + _events.Repeat(15s, 20s); break; case EVENT_LIGHTNING_BOLT: DoCastVictim(SPELL_LIGHTNING_BOLT); - _events.Repeat(Seconds(8), Seconds(15)); + _events.Repeat(8s, 15s); break; default: break; @@ -950,6 +958,7 @@ private: EventMap _events; }; +// 23524 - Ashtongue Spiritbinder struct npc_ashtongue_spiritbinder : public ScriptedAI { npc_ashtongue_spiritbinder(Creature* creature) : ScriptedAI(creature) @@ -974,7 +983,7 @@ struct npc_ashtongue_spiritbinder : public ScriptedAI void JustDied(Unit* /*killer*/) override { - me->DespawnOrUnsummon(Seconds(5)); + me->DespawnOrUnsummon(5s); } void JustEngagedWith(Unit* /*who*/) override @@ -1014,7 +1023,7 @@ struct npc_ashtongue_spiritbinder : public ScriptedAI { case EVENT_SPIRIT_HEAL: DoCastSelf(SPELL_SPIRITBINDER_SPIRIT_HEAL); - _events.Repeat(Seconds(13), Seconds(16)); + _events.Repeat(13s, 16s); break; case EVENT_SPIRIT_MEND_RESET: _spiritMend = false; @@ -1040,6 +1049,7 @@ private: bool _chainHeal; }; +// 23319 - Ashtongue Broken struct npc_ashtongue_broken : public ScriptedAI { npc_ashtongue_broken(Creature* creature) : ScriptedAI(creature) diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index dedc0e8739a..6a5d05e0541 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -22,14 +22,14 @@ #include "PassiveAI.h" #include "ScriptedCreature.h" -enum Texts +enum SupremusTexts { EMOTE_NEW_TARGET = 0, EMOTE_PUNCH_GROUND = 1, EMOTE_GROUND_CRACK = 2 }; -enum Spells +enum SupremusSpells { SPELL_MOLTEN_PUNCH = 40126, SPELL_HATEFUL_STRIKE = 41926, @@ -42,7 +42,7 @@ enum Spells SPELL_CHARGE = 41581 }; -enum Events +enum SupremusEvents { EVENT_BERSERK = 1, EVENT_SWITCH_PHASE, @@ -52,17 +52,19 @@ enum Events EVENT_HATEFUL_STRIKE }; -enum Phases +enum SupremusPhases { PHASE_INITIAL = 1, PHASE_STRIKE = 2, PHASE_CHASE = 3 }; -enum Actions +enum SupremusActions { ACTION_DISABLE_VULCANO = 1 }; + +// 22898 - Supremus struct boss_supremus : public BossAI { boss_supremus(Creature* creature) : BossAI(creature, DATA_SUPREMUS) { } @@ -96,7 +98,7 @@ struct boss_supremus : public BossAI events.SetPhase(PHASE_STRIKE); DummyEntryCheckPredicate pred; summons.DoAction(ACTION_DISABLE_VULCANO, pred); - events.ScheduleEvent(EVENT_HATEFUL_STRIKE, Seconds(2), 0, PHASE_STRIKE); + events.ScheduleEvent(EVENT_HATEFUL_STRIKE, 2s, 0, PHASE_STRIKE); me->RemoveAurasDueToSpell(SPELL_SNARE_SELF); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, false); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, false); @@ -104,8 +106,8 @@ struct boss_supremus : public BossAI else { events.SetPhase(PHASE_CHASE); - events.ScheduleEvent(EVENT_VOLCANO, Seconds(5), 0, PHASE_CHASE); - events.ScheduleEvent(EVENT_SWITCH_TARGET, Seconds(10), 0, PHASE_CHASE); + events.ScheduleEvent(EVENT_VOLCANO, 5s, 0, PHASE_CHASE); + events.ScheduleEvent(EVENT_SWITCH_TARGET, 10s, 0, PHASE_CHASE); me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_MOD_TAUNT, true); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, true); DoCast(SPELL_SNARE_SELF); @@ -145,12 +147,12 @@ struct boss_supremus : public BossAI break; case EVENT_FLAME: DoCast(SPELL_MOLTEN_PUNCH); - events.Repeat(Seconds(15), Seconds(20)); + events.Repeat(15s, 20s); break; case EVENT_HATEFUL_STRIKE: if (Unit* target = CalculateHatefulStrikeTarget()) DoCast(target, SPELL_HATEFUL_STRIKE); - events.Repeat(Seconds(5)); + events.Repeat(5s); break; case EVENT_SWITCH_TARGET: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true)) @@ -160,12 +162,12 @@ struct boss_supremus : public BossAI DoCast(target, SPELL_CHARGE); Talk(EMOTE_NEW_TARGET); } - events.Repeat(Seconds(10)); + events.Repeat(10s); break; case EVENT_VOLCANO: DoCastAOE(SPELL_VOLCANIC_SUMMON, true); Talk(EMOTE_GROUND_CRACK); - events.Repeat(Seconds(10)); + events.Repeat(10s); break; case EVENT_SWITCH_PHASE: ChangePhase(); @@ -176,6 +178,7 @@ struct boss_supremus : public BossAI } }; +// 23095 - Supremus Punch Invis Stalker struct npc_molten_flame : public NullCreatureAI { npc_molten_flame(Creature* creature) : NullCreatureAI(creature) { } @@ -189,13 +192,14 @@ struct npc_molten_flame : public NullCreatureAI } }; +// 23085 - Supremus Volcano struct npc_volcano : public NullCreatureAI { npc_volcano(Creature* creature) : NullCreatureAI(creature) { } void Reset() override { - _scheduler.Schedule(Seconds(3), [this](TaskContext /*context*/) + _scheduler.Schedule(3s, [this](TaskContext /*context*/) { DoCastSelf(SPELL_VOLCANIC_ERUPTION); }); diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 8124325e761..c5b62d0dba5 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -26,7 +26,7 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" -enum Says +enum TeronTexts { SAY_INTRO = 0, SAY_AGGRO = 1, @@ -37,7 +37,7 @@ enum Says SAY_DEATH = 6 }; -enum Spells +enum TeronSpells { //Teron SPELL_INCINERATE = 40239, @@ -71,14 +71,14 @@ enum Spells SPELL_SPIRIT_LANCE = 40157 }; -enum Npcs +enum TeronCreatures { NPC_DOOM_BLOSSOM = 23123, NPC_SHADOWY_CONSTRUCT = 23111, NPC_VENGEFUL_SPIRIT = 23109 //Npc controlled by player }; -enum Events +enum TeronEvents { EVENT_ENRAGE = 1, EVENT_INCINERATE, @@ -87,7 +87,7 @@ enum Events EVENT_CRUSHING_SHADOWS }; -enum Actions +enum TeronActions { ACTION_START_INTRO = 1 }; @@ -100,6 +100,7 @@ uint32 const SkeletronSpells[4] = SPELL_SUMMON_SKELETRON_4 }; +// 22871 - Teron Gorefiend struct boss_teron_gorefiend : public BossAI { boss_teron_gorefiend(Creature* creature) : BossAI(creature, DATA_TERON_GOREFIEND) { } @@ -162,22 +163,22 @@ struct boss_teron_gorefiend : public BossAI if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) DoCast(target, SPELL_INCINERATE); Talk(SAY_INCINERATE); - events.Repeat(Seconds(12), Seconds(20)); + events.Repeat(12s, 20s); break; case EVENT_SUMMON_DOOM_BLOSSOM: DoCastSelf(SPELL_SUMMON_DOOM_BLOSSOM, true); Talk(SAY_BLOSSOM); - events.Repeat(Seconds(30), Seconds(40)); + events.Repeat(30s, 40s); break; case EVENT_SHADOW_DEATH: if (Unit* target = SelectTarget(SelectTargetMethod::Random, 1, 100.0f, true, true, -SPELL_SPIRITUAL_VENGEANCE)) DoCast(target, SPELL_SHADOW_OF_DEATH); - events.Repeat(Seconds(30), Seconds(35)); + events.Repeat(30s, 35s); break; case EVENT_CRUSHING_SHADOWS: DoCastSelf(SPELL_CRUSHING_SHADOWS, { SPELLVALUE_MAX_TARGETS, 5 }); Talk(SAY_CRUSHING); - events.Repeat(Seconds(18), Seconds(30)); + events.Repeat(18s, 30s); break; default: break; @@ -191,6 +192,7 @@ struct boss_teron_gorefiend : public BossAI } }; +// 23123 - Doom Blossom struct npc_doom_blossom : public NullCreatureAI { npc_doom_blossom(Creature* creature) : NullCreatureAI(creature), _instance(me->GetInstanceScript()) { } @@ -206,12 +208,12 @@ struct npc_doom_blossom : public NullCreatureAI DoCast(SPELL_SUMMON_BLOSSOM_MOVE_TARGET); _scheduler.CancelAll(); DoZoneInCombat(); - _scheduler.Schedule(Seconds(12), [this](TaskContext shadowBolt) + _scheduler.Schedule(12s, [this](TaskContext shadowBolt) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0)) DoCast(target, SPELL_SHADOWBOLT); - shadowBolt.Repeat(Seconds(2)); + shadowBolt.Repeat(2s); }); } @@ -228,6 +230,7 @@ private: InstanceScript* _instance; }; +// 23111 - Shadowy Construct struct npc_shadowy_construct : public ScriptedAI { npc_shadowy_construct(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { } @@ -242,12 +245,12 @@ struct npc_shadowy_construct : public ScriptedAI targetGUID.Clear(); _scheduler.CancelAll(); - _scheduler.Schedule(Seconds(12), [this](TaskContext atrophy) + _scheduler.Schedule(12s, [this](TaskContext atrophy) { DoCastVictim(SPELL_ATROPHY); - atrophy.Repeat(Seconds(10), Seconds(12)); + atrophy.Repeat(10s, 12s); }); - _scheduler.Schedule(Milliseconds(200), [this](TaskContext checkPlayer) + _scheduler.Schedule(200ms, [this](TaskContext checkPlayer) { if (Unit* target = ObjectAccessor::GetUnit(*me, targetGUID)) { @@ -257,7 +260,7 @@ struct npc_shadowy_construct : public ScriptedAI else SelectNewTarget(); - checkPlayer.Repeat(Seconds(1)); + checkPlayer.Repeat(1s); }); if (Creature* teron = _instance->GetCreature(DATA_TERON_GOREFIEND)) diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 0b59044f955..67a3cecfd94 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -26,7 +26,7 @@ #include "SpellInfo.h" #include "SpellScript.h" -enum Texts +enum NajentusTexts { SAY_AGGRO = 0, SAY_NEEDLE = 1, @@ -36,7 +36,7 @@ enum Texts SAY_DEATH = 5 }; -enum Spells +enum NajentusSpells { SPELL_NEEDLE_SPINE_TARGETING = 39992, SPELL_NEEDLE_SPINE = 39835, @@ -48,7 +48,7 @@ enum Spells SPELL_BERSERK = 26662 }; -enum Events +enum NajentusEvents { EVENT_BERSERK = 1, EVENT_YELL = 2, @@ -57,12 +57,13 @@ enum Events EVENT_SHIELD = 5 }; -enum Misc +enum NajentusMisc { DATA_REMOVE_IMPALING_SPINE = 1, ACTION_RESET_IMPALING_TARGET = 2 }; +// 22887 - High Warlord Naj'entus struct boss_najentus : public BossAI { boss_najentus(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS) { } @@ -97,7 +98,7 @@ struct boss_najentus : public BossAI { me->RemoveAurasDueToSpell(SPELL_TIDAL_SHIELD); DoCastSelf(SPELL_TIDAL_BURST, true); - events.RescheduleEvent(EVENT_SPINE, Seconds(2)); + events.RescheduleEvent(EVENT_SPINE, 2s); } } @@ -142,8 +143,8 @@ struct boss_najentus : public BossAI { case EVENT_SHIELD: DoCastSelf(SPELL_TIDAL_SHIELD, true); - events.RescheduleEvent(EVENT_SPINE, Seconds(50)); - events.Repeat(Seconds(55), Seconds(60)); + events.RescheduleEvent(EVENT_SPINE, 50s); + events.Repeat(55s, 60s); break; case EVENT_BERSERK: Talk(SAY_ENRAGE); @@ -158,15 +159,15 @@ struct boss_najentus : public BossAI target->SummonGameObject(GO_NAJENTUS_SPINE, *target, QuaternionData(), 30s); Talk(SAY_NEEDLE); } - events.Repeat(Seconds(20), Seconds(25)); + events.Repeat(20s, 25s); break; case EVENT_NEEDLE: DoCastSelf(SPELL_NEEDLE_SPINE_TARGETING, true); - events.Repeat(Seconds(2)); + events.Repeat(2s); break; case EVENT_YELL: Talk(SAY_SPECIAL); - events.Repeat(Seconds(25), Seconds(100)); + events.Repeat(25s, 100s); break; default: break; @@ -177,6 +178,7 @@ private: ObjectGuid _spineTargetGUID; }; +// 185584 - Naj'entus Spine struct go_najentus_spine : public GameObjectAI { go_najentus_spine(GameObject* go) : GameObjectAI(go), _instance(go->GetInstanceScript()) { } |