fix(Scripts/ObsidianSanctum): remove Sartharion's boss boundary (#24703)

This commit is contained in:
sogladev
2026-02-13 18:16:37 +01:00
committed by GitHub
parent 24f5f289f0
commit 301b19c0f1
2 changed files with 1 additions and 45 deletions

View File

@@ -145,7 +145,6 @@ enum Misc
MAX_AREA_TRIGGER_COUNT = 2,
MAX_CYCLONE_COUNT = 5,
MAX_TENEBORN_EGGS_SUMMONS = 6,
MAX_BOUNDARY_POSITIONS = 4,
};
enum Events
@@ -173,7 +172,6 @@ enum Events
EVENT_SARTHARION_CALL_SHADRON = 31,
EVENT_SARTHARION_CALL_VESPERON = 32,
EVENT_SARTHARION_BOUNDARY = 33,
EVENT_MINIDRAKE_SPEECH = 34,
};
@@ -224,14 +222,6 @@ const Position AreaTriggerSummonPos[MAX_AREA_TRIGGER_COUNT] =
{ 3242.84f, 553.979f, 58.8272f, 0.0f },
};
float const SartharionBoundary[MAX_BOUNDARY_POSITIONS] =
{
3218.86f, // South X
3275.69f, // North X
484.68f, // East Y
572.4f // West Y
};
float const FlameTsunamiLeftOffsets[MAX_LEFT_LAVA_TSUNAMIS] =
{
476.0f, 484.0f, 492.0f,
@@ -282,14 +272,8 @@ struct boss_sartharion : public BossAI
DoCastSelf(SPELL_SARTHARION_TWILIGHT_REVENGE, true);
}
void JustEngagedWith(Unit* who) override
void JustEngagedWith(Unit* /*who*/) override
{
if (who && !IsTargetInBounds(who))
{
EnterEvadeMode();
return;
}
_JustEngagedWith();
DoCastSelf(SPELL_SARTHARION_PYROBUFFET, true);
Talk(SAY_SARTHARION_AGGRO);
@@ -303,7 +287,6 @@ struct boss_sartharion : public BossAI
extraEvents.ScheduleEvent(EVENT_SARTHARION_SUMMON_LAVA, 20s);
extraEvents.ScheduleEvent(EVENT_SARTHARION_LAVA_STRIKE, 5s);
extraEvents.ScheduleEvent(EVENT_SARTHARION_BERSERK, 15min);
extraEvents.ScheduleEvent(EVENT_SARTHARION_BOUNDARY, 250ms);
// Store dragons
for (uint8 i = 0; i < MAX_DRAGONS; ++i)
@@ -449,14 +432,6 @@ struct boss_sartharion : public BossAI
{
switch (eventId)
{
case EVENT_SARTHARION_BOUNDARY:
{
if (!IsTargetInBounds(me->GetVictim()))
EnterEvadeMode();
else
extraEvents.Repeat(250ms);
break;
}
case EVENT_SARTHARION_SUMMON_LAVA:
{
if (!urand(0, 3))
@@ -662,18 +637,6 @@ private:
dragonsCount = 0;
}
bool IsTargetInBounds(Unit const* victim) const
{
if (!victim || victim->GetPositionX() < SartharionBoundary[0] || victim->GetPositionX() > SartharionBoundary[1] || victim->GetPositionY() > SartharionBoundary[3])
return false;
// Big island handling
if (victim->GetPositionY() < SartharionBoundary[2])
return victim->GetDistance(bigIslandMiddlePos) <= 6.0f;
return true;
}
EventMap extraEvents;
std::list<uint32> volcanoBlows;
uint8 dragonsCount;

View File

@@ -15,18 +15,12 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "AreaBoundary.h"
#include "CreatureAIImpl.h"
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "obsidian_sanctum.h"
BossBoundaryData const boundaries =
{
{ DATA_SARTHARION, new RectangleBoundary(3218.86f, 3275.69f, 484.68f, 572.4f) }
};
class instance_obsidian_sanctum : public InstanceMapScript
{
public:
@@ -43,7 +37,6 @@ public:
{
SetHeaders(DataHeader);
SetBossNumber(MAX_ENCOUNTERS);
LoadBossBoundaries(boundaries);
}
void OnCreatureCreate(Creature* pCreature) override