fix(Scripts/TheEye): boss boundaries and Kael door (#18517)

This commit is contained in:
Dan
2024-03-10 13:26:00 +01:00
committed by GitHub
parent 7b5746da8d
commit 3f700645bd
5 changed files with 29 additions and 16 deletions
@@ -227,11 +227,6 @@ struct boss_high_astromancer_solarian : public BossAI
summon->SetInCombatWithZone(); summon->SetInCombatWithZone();
} }
} }
bool CheckEvadeIfOutOfCombatArea() const override
{
return me->GetDistance2d(432.59f, -371.93f) > 105.0f;
}
}; };
class spell_astromancer_wrath_of_the_astromancer : public AuraScript class spell_astromancer_wrath_of_the_astromancer : public AuraScript
@@ -1014,7 +1014,7 @@ struct npc_thaladred : public ScriptedAI
scheduler.CancelAll(); scheduler.CancelAll();
me->SetReactState(REACT_PASSIVE); me->SetReactState(REACT_PASSIVE);
_hasDied = false; _hasDied = false;
me->SetWalk(true); me->SetWalk(false);
} }
void JustEngagedWith(Unit* /*who*/) override void JustEngagedWith(Unit* /*who*/) override
@@ -1023,6 +1023,7 @@ struct npc_thaladred : public ScriptedAI
{ {
Talk(SAY_THALADRED_AGGRO); Talk(SAY_THALADRED_AGGRO);
} }
me->SetWalk(true);
ScheduleTimedEvent(100ms, [&] ScheduleTimedEvent(100ms, [&]
{ {
DoResetThreatList(); DoResetThreatList();
@@ -1046,7 +1047,7 @@ struct npc_thaladred : public ScriptedAI
{ {
if (victim->IsNonMeleeSpellCast(false, false, true)) if (victim->IsNonMeleeSpellCast(false, false, true))
{ {
DoCastVictim(SPELL_SILENCE); DoCastSelf(SPELL_SILENCE);
} }
} }
}, 3600ms, 15200ms); }, 3600ms, 15200ms);
@@ -107,11 +107,6 @@ struct boss_void_reaver : public BossAI
}); });
} }
bool CheckEvadeIfOutOfCombatArea() const override
{
return me->GetDistance2d(432.59f, 371.93f) > 105.0f;
}
private: private:
bool _recentlySpoken; bool _recentlySpoken;
}; };
@@ -33,7 +33,21 @@ ObjectData const creatureData[] =
ObjectData const gameObjectData[] = ObjectData const gameObjectData[] =
{ {
{ 0, 0 } { 0, 0, }
};
DoorData const doorData[] =
{
{ GO_KAEL_DOOR_1, DATA_KAELTHAS, DOOR_TYPE_ROOM },
{ GO_KAEL_DOOR_2, DATA_KAELTHAS, DOOR_TYPE_ROOM },
{ 0, 0, DOOR_TYPE_ROOM }
};
BossBoundaryData const boundaries =
{
{ DATA_REAVER, new CircleBoundary(Position(432.741809f, 371.859589f), 105.052554f) },
{ DATA_ALAR, new CircleBoundary(Position(331.000000f, -2.38000000f), 108.29246f) },
{ DATA_ASTROMANCER, new CircleBoundary(Position(432.869202f, -374.213806f), 103.74374f) }
}; };
class instance_the_eye : public InstanceMapScript class instance_the_eye : public InstanceMapScript
@@ -46,8 +60,10 @@ public:
instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map) instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map)
{ {
SetHeaders(DataHeader); SetHeaders(DataHeader);
LoadObjectData(creatureData, gameObjectData);
SetBossNumber(MAX_ENCOUNTER); SetBossNumber(MAX_ENCOUNTER);
LoadObjectData(creatureData, gameObjectData);
LoadDoorData(doorData);
LoadBossBoundaries(boundaries);
} }
ObjectGuid ThaladredTheDarkenerGUID; ObjectGuid ThaladredTheDarkenerGUID;
@@ -100,6 +116,7 @@ public:
KaelStateLeftGUID = gobject->GetGUID(); KaelStateLeftGUID = gobject->GetGUID();
break; break;
} }
InstanceScript::OnGameObjectCreate(gobject);
} }
ObjectGuid GetGuidData(uint32 identifier) const override ObjectGuid GetGuidData(uint32 identifier) const override
@@ -39,7 +39,10 @@ enum EyeData
DATA_THALADRED = 10, DATA_THALADRED = 10,
DATA_LORD_SANGUINAR = 11, DATA_LORD_SANGUINAR = 11,
DATA_CAPERNIAN = 12, DATA_CAPERNIAN = 12,
DATA_TELONICUS = 13 DATA_TELONICUS = 13,
DATA_KAEL_DOOR_1 = 14,
DATA_KAEL_DOOR_2 = 15
}; };
enum EyeNPCs enum EyeNPCs
@@ -56,7 +59,9 @@ enum EyeGOs
{ {
GO_BRIDGE_WINDOW = 184069, GO_BRIDGE_WINDOW = 184069,
GO_KAEL_STATUE_RIGHT = 184596, GO_KAEL_STATUE_RIGHT = 184596,
GO_KAEL_STATUE_LEFT = 184597 GO_KAEL_STATUE_LEFT = 184597,
GO_KAEL_DOOR_1 = 184324,
GO_KAEL_DOOR_2 = 184325
}; };
template <class AI, class T> template <class AI, class T>