From 0d8b1d4942347269112760a5e202097984e965c4 Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Thu, 16 Nov 2023 14:00:19 -0300 Subject: [PATCH] =?UTF-8?q?refactor(Scripts/Karazhan):=20Move=20Malchezaar?= =?UTF-8?q?=20door=20handling=20to=20the=20inst=E2=80=A6=20(#17730)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Karazhan/boss_prince_malchezaar.cpp | 18 ++++-------------- .../Karazhan/instance_karazhan.cpp | 17 ++++------------- .../EasternKingdoms/Karazhan/karazhan.h | 1 - 3 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 1f44a23d9..59a7687ff 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -84,7 +84,6 @@ struct boss_malchezaar : public BossAI clearweapons(); relays.clear(); infernalTargets.clear(); - instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true); } void clearweapons() @@ -149,7 +148,6 @@ struct boss_malchezaar : public BossAI { _JustDied(); Talk(SAY_DEATH); - instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true); } void SpawnInfernal(Creature* relay, Creature* target) @@ -193,8 +191,6 @@ struct boss_malchezaar : public BossAI me->GetCreaturesWithEntryInRange(relays, 250.0f, NPC_INFERNAL_RELAY); me->GetCreaturesWithEntryInRange(infernalTargets, 100.0f, NPC_INFERNAL_TARGET); - instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), false); - scheduler.Schedule(30s, [this](TaskContext context) { DoCastAOE(SPELL_ENFEEBLE); @@ -282,7 +278,7 @@ struct npc_netherspite_infernal : public ScriptedAI void UpdateAI(uint32 diff) override { - _scheduler.Update(diff); + scheduler.Update(diff); } void KilledUnit(Unit* who) override @@ -306,7 +302,7 @@ struct npc_netherspite_infernal : public ScriptedAI me->SetDisplayId(me->GetUInt32Value(UNIT_FIELD_NATIVEDISPLAYID)); me->SetUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - _scheduler.Schedule(4s, [this](TaskContext /*context*/) + scheduler.Schedule(4s, [this](TaskContext /*context*/) { DoCastSelf(SPELL_HELLFIRE); }); @@ -317,9 +313,6 @@ struct npc_netherspite_infernal : public ScriptedAI { damage = 0; } - - private: - TaskScheduler _scheduler; }; struct npc_malchezaar_axe : public ScriptedAI @@ -337,7 +330,7 @@ struct npc_malchezaar_axe : public ScriptedAI void JustEngagedWith(Unit* /*who*/) override { DoZoneInCombat(); - _scheduler.Schedule(7500ms, [this](TaskContext context) + scheduler.Schedule(7500ms, [this](TaskContext context) { if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true)) { @@ -358,12 +351,9 @@ struct npc_malchezaar_axe : public ScriptedAI if (!UpdateVictim()) return; - _scheduler.Update(diff, + scheduler.Update(diff, std::bind(&ScriptedAI::DoMeleeAttackIfReady, this)); } - - private: - TaskScheduler _scheduler; }; // 30843 - Enfeeble diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index 109d4236f..61b41ec33 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -57,9 +57,10 @@ ObjectData const gameObjectData[] = DoorData const doorData[] = { - { GO_MASTERS_TERRACE_DOOR, DATA_NIGHTBANE, DOOR_TYPE_ROOM }, - { GO_MASTERS_TERRACE_DOOR2, DATA_NIGHTBANE, DOOR_TYPE_ROOM }, - { 0, 0, DOOR_TYPE_ROOM } + { GO_MASTERS_TERRACE_DOOR, DATA_NIGHTBANE, DOOR_TYPE_ROOM }, + { GO_MASTERS_TERRACE_DOOR2, DATA_NIGHTBANE, DOOR_TYPE_ROOM }, + { GO_NETHERSPACE_DOOR, DATA_MALCHEZAAR, DOOR_TYPE_ROOM }, + { 0, 0, DOOR_TYPE_ROOM } }; class instance_karazhan : public InstanceMapScript @@ -371,13 +372,6 @@ public: case GO_GAMESMAN_HALL_EXIT_DOOR: m_uiGamesmansExitDoor = go->GetGUID(); break; - case GO_NETHERSPACE_DOOR: - m_uiNetherspaceDoor = go->GetGUID(); - if (GetBossState(DATA_PRINCE) != IN_PROGRESS) - go->SetGameObjectFlag(GO_FLAG_LOCKED); - else - go->RemoveGameObjectFlag(GO_FLAG_LOCKED); - break; case GO_SIDE_ENTRANCE_DOOR: if (GetBossState(DATA_OPERA_PERFORMANCE) == DONE) go->RemoveGameObjectFlag(GO_FLAG_LOCKED); @@ -487,8 +481,6 @@ public: return m_uiGamesmansDoor; case DATA_GO_GAME_EXIT_DOOR: return m_uiGamesmansExitDoor; - case DATA_GO_NETHER_DOOR: - return m_uiNetherspaceDoor; case DATA_IMAGE_OF_MEDIVH: return ImageGUID; case DATA_NIGHTBANE: @@ -521,7 +513,6 @@ public: ObjectGuid m_uiMassiveDoor; // Door at Netherspite ObjectGuid m_uiGamesmansDoor; // Door before Chess ObjectGuid m_uiGamesmansExitDoor; // Door after Chess - ObjectGuid m_uiNetherspaceDoor; // Door at Malchezaar ObjectGuid ImageGUID; ObjectGuid DustCoveredChest; ObjectGuid m_uiRelayGUID; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index 34ceb1d14..4e0d57f4b 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -50,7 +50,6 @@ enum KZDataTypes DATA_GO_STAGEDOORRIGHT = 20, DATA_GO_LIBRARY_DOOR = 21, DATA_GO_MASSIVE_DOOR = 22, - DATA_GO_NETHER_DOOR = 23, DATA_GO_GAME_DOOR = 24, DATA_GO_GAME_EXIT_DOOR = 25, DATA_IMAGE_OF_MEDIVH = 26,