From 0759d4700094709d3af37102a5160c362de247ae Mon Sep 17 00:00:00 2001 From: Andrew <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 22 Feb 2026 10:55:18 -0300 Subject: [PATCH] fix(Scripts/EoE): Remove useless Focusing Iris script (#24804) --- .../rev_1771764309163193800.sql | 2 + .../Nexus/EyeOfEternity/boss_malygos.cpp | 14 ------ .../Nexus/EyeOfEternity/eye_of_eternity.h | 3 +- .../instance_eye_of_eternity.cpp | 48 ++++++++----------- 4 files changed, 23 insertions(+), 44 deletions(-) create mode 100644 data/sql/updates/pending_db_world/rev_1771764309163193800.sql diff --git a/data/sql/updates/pending_db_world/rev_1771764309163193800.sql b/data/sql/updates/pending_db_world/rev_1771764309163193800.sql new file mode 100644 index 000000000..797a96634 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1771764309163193800.sql @@ -0,0 +1,2 @@ +-- +UPDATE `gameobject_template` SET `ScriptName` = '' WHERE `entry` IN (193958, 193960) AND `ScriptName` = 'go_the_focusing_iris'; diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 2f965f509..2f228e856 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -1137,19 +1137,6 @@ struct npc_eoe_wyrmrest_skytalon : public VehicleAI } }; -struct go_the_focusing_iris : public GameObjectAI -{ - go_the_focusing_iris(GameObject* go) : GameObjectAI(go) { } - - bool GossipHello(Player* /*user*/, bool /*reportUse*/) override - { - if (InstanceScript* instance = me->GetInstanceScript()) - instance->SetData(DATA_IRIS_ACTIVATED, 0); - - return true; - } -}; - // 56105 - Vortex class spell_malygos_vortex_dummy : public SpellScript { @@ -1315,7 +1302,6 @@ void AddSC_boss_malygos() RegisterEoECreatureAI(boss_malygos); RegisterEoECreatureAI(npc_power_spark); RegisterEoECreatureAI(npc_alexstrasza); - RegisterGameObjectAI(go_the_focusing_iris); RegisterEoECreatureAI(npc_nexus_lord); RegisterEoECreatureAI(npc_scion_of_eternity); RegisterEoECreatureAI(npc_hover_disk); diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h b/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h index d46499c5c..8d6eed06c 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h @@ -97,7 +97,8 @@ enum eAchiev enum EoEMisc : uint32 { AREA_EYE_OF_ETERNITY = 4500, - EVENT_IRIS_ACTIVATED = 20158, + EVENT_DESTROY_PLATFORM = 20158, + EVENT_IRIS_ACTIVATED = 20711, PLATFORM_DESTROY_DAMAGE = 6500000, INTRO_MOVEMENT_INTERVAL = 25000, }; diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp index c14e71177..efa2bcf9f 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp @@ -97,15 +97,7 @@ struct instance_eye_of_eternity : public InstanceScript void OnPlayerEnter(Player* player) override { - if (GetBossState(DATA_MALYGOS) != DONE) - return; - - ProcessEvent(nullptr, EVENT_IRIS_ACTIVATED); - if (GameObject* iris = GetGameObject(DATA_IRIS)) - if (iris->GetPhaseMask() != 2) - iris->SetPhaseMask(2, true); - - if (player && player->IsAlive()) + if (player && player->IsAlive() && IsBossDone(DATA_MALYGOS)) player->CastSpell(player, SPELL_SUMMON_RED_DRAGON_BUDDY, true); } @@ -114,13 +106,16 @@ struct instance_eye_of_eternity : public InstanceScript InstanceScript::OnGameObjectCreate(gameobject); uint32 entry = gameobject->GetEntry(); - if ((entry == GO_IRIS_N || entry == GO_IRIS_H) && GetBossState(DATA_MALYGOS) == DONE) - gameobject->SetPhaseMask(2, true); - if (entry == GO_NEXUS_PLATFORM && GetBossState(DATA_MALYGOS) == DONE) + if (IsBossDone(DATA_MALYGOS)) { - gameobject->ModifyHealth(-int32(PLATFORM_DESTROY_DAMAGE)); - gameobject->EnableCollision(false); + if (entry == GO_IRIS_N || entry == GO_IRIS_H) + gameobject->SetPhaseMask(2, true); + else if (entry == GO_NEXUS_PLATFORM) + { + gameobject->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED, nullptr, true); + gameobject->EnableCollision(false); + } } } @@ -128,16 +123,6 @@ struct instance_eye_of_eternity : public InstanceScript { switch (type) { - case DATA_IRIS_ACTIVATED: - if (GetBossState(DATA_MALYGOS) == NOT_STARTED) - { - if (Creature* malygos = GetCreature(DATA_MALYGOS)) - { - if (Player* player = malygos->SelectNearestPlayer(250.0f)) - malygos->AI()->AttackStart(player); - } - } - break; case DATA_SET_IRIS_INACTIVE: { if (GameObject* iris = GetGameObject(DATA_IRIS)) @@ -204,15 +189,20 @@ struct instance_eye_of_eternity : public InstanceScript void ProcessEvent(WorldObject* /*unit*/, uint32 eventId) override { - if (eventId != EVENT_IRIS_ACTIVATED) - return; - - if (GameObject* platform = GetGameObject(DATA_NEXUS_PLATFORM)) + if (eventId == EVENT_IRIS_ACTIVATED) + { if (Creature* malygos = GetCreature(DATA_MALYGOS)) + if (Player* player = malygos->SelectNearestPlayer(250.0f)) + malygos->AI()->AttackStart(player); + } + else if (eventId == EVENT_DESTROY_PLATFORM) + { + if (GameObject* platform = GetGameObject(DATA_NEXUS_PLATFORM)) { - platform->ModifyHealth(-int32(PLATFORM_DESTROY_DAMAGE), malygos); + platform->SetDestructibleState(GO_DESTRUCTIBLE_DESTROYED, nullptr, true); platform->EnableCollision(false); } + } } bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* source, Unit const* /*target*/, uint32 /*miscvalue1*/) override