fix(Scripts/Ulduar): Flame Leviathan reset and visibility (#26379)

This commit is contained in:
sogladev
2026-06-28 22:30:56 +02:00
committed by GitHub
parent 8b81e3da33
commit 933e3e17c4
3 changed files with 18 additions and 11 deletions
@@ -0,0 +1,11 @@
--
-- 62375 Gathering Speed is not removed by Evade
-- SPELL_ATTR0_CU_IGNORE_EVADE = 0x00000800
DELETE FROM `spell_custom_attr` WHERE `spell_id` = 62375;
INSERT INTO `spell_custom_attr` (`spell_id`, `attributes`) VALUES (62375, 0x800);
-- Flame Leviathan
UPDATE `creature_template_addon` SET `visibilityDistanceType` = 4 WHERE (`entry` IN (33113, 33114, 33139, 34003, 34111, 33143));
-- Ulduar Colossus
UPDATE `creature_addon` SET `visibilityDistanceType`=4 WHERE `guid` IN (137476, 137477, 137478, 137479, 137480)
@@ -121,7 +121,6 @@ enum Events
EVENT_MIMIRONS_INFERNO = 8,
EVENT_THORIMS_HAMMER = 9,
EVENT_SOUND_BEGINNING = 10,
EVENT_POSITION_CHECK = 11,
};
enum Texts
@@ -209,13 +208,13 @@ struct boss_flame_leviathan : public BossAI
void ScheduleEvents();
void SummonTowerHelpers(uint8 towerId);
// Original
void JustReachedHome() override
{
_JustReachedHome();
// For achievement
instance->StorePersistentData(PERSISTENT_DATA_UNBROKEN, 0);
me->setActive(false);
me->RemoveAurasDueToSpell(SPELL_GATHERING_SPEED);
}
void MoveInLineOfSight(Unit*) override {}
@@ -380,14 +379,6 @@ struct boss_flame_leviathan : public BossAI
switch (events.ExecuteEvent())
{
case EVENT_POSITION_CHECK:
if (me->GetPositionX() > 450 || me->GetPositionX() < 120)
{
EnterEvadeMode();
return;
}
events.Repeat(5s);
break;
case EVENT_PURSUE:
Talk(FLAME_LEVIATHAN_SAY_PURSUE);
me->CastSpell(me, SPELL_PURSUED, false);
@@ -577,7 +568,6 @@ void boss_flame_leviathan::ScheduleEvents()
events.RescheduleEvent(EVENT_VENT, 20s);
events.RescheduleEvent(EVENT_SPEED, 15s);
events.RescheduleEvent(EVENT_SOUND_BEGINNING, 10s);
events.RescheduleEvent(EVENT_POSITION_CHECK, 5s);
events.RescheduleEvent(EVENT_PURSUE, 0ms);
}
@@ -164,6 +164,11 @@ ObjectData const gameobjectData[] =
{ 0, 0 }
};
BossBoundaryData const boundaries =
{
{ BOSS_LEVIATHAN, new RectangleBoundary(130.0f, 450.0f, -170.0f, 110.0f) },
};
class instance_ulduar : public InstanceMapScript
{
public:
@@ -183,6 +188,7 @@ public:
SetPersistentDataCount(MAX_PERSISTENT_DATA);
LoadDoorData(doorData);
LoadObjectData(creatureData, gameobjectData);
LoadBossBoundaries(boundaries);
Initialize();
};