Sartharion Boundary (#1967)
* Sartharion Boundary * Engage with players
This commit is contained in:
@@ -146,6 +146,8 @@ enum Events
|
|||||||
EVENT_SARTHARION_CALL_TENEBRON = 30,
|
EVENT_SARTHARION_CALL_TENEBRON = 30,
|
||||||
EVENT_SARTHARION_CALL_SHADRON = 31,
|
EVENT_SARTHARION_CALL_SHADRON = 31,
|
||||||
EVENT_SARTHARION_CALL_VESPERON = 32,
|
EVENT_SARTHARION_CALL_VESPERON = 32,
|
||||||
|
|
||||||
|
EVENT_SARTHARION_BOUNDARY = 33
|
||||||
};
|
};
|
||||||
|
|
||||||
const Position portalPos[4] =
|
const Position portalPos[4] =
|
||||||
@@ -353,6 +355,7 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_SARTHARION_LAVA_STRIKE, 5000);
|
events.ScheduleEvent(EVENT_SARTHARION_LAVA_STRIKE, 5000);
|
||||||
events.ScheduleEvent(EVENT_SARTHARION_HEALTH_CHECK, 10000);
|
events.ScheduleEvent(EVENT_SARTHARION_HEALTH_CHECK, 10000);
|
||||||
events.ScheduleEvent(EVENT_SARTHARION_BERSERK, 900000);
|
events.ScheduleEvent(EVENT_SARTHARION_BERSERK, 900000);
|
||||||
|
events.ScheduleEvent(EVENT_SARTHARION_BOUNDARY, 1000);
|
||||||
|
|
||||||
StoreDragons();
|
StoreDragons();
|
||||||
me->CallForHelp(500.0f);
|
me->CallForHelp(500.0f);
|
||||||
@@ -422,6 +425,12 @@ public:
|
|||||||
// Special events which needs to be fired immidiately
|
// Special events which needs to be fired immidiately
|
||||||
switch(events.GetEvent())
|
switch(events.GetEvent())
|
||||||
{
|
{
|
||||||
|
case EVENT_SARTHARION_BOUNDARY:
|
||||||
|
if (me->GetPositionX() < 3218.86f || me->GetPositionX() > 3275.69f || me->GetPositionY() < 484.68f || me->GetPositionY() > 572.4f) // https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp#L31
|
||||||
|
EnterEvadeMode();
|
||||||
|
|
||||||
|
events.RepeatEvent(1000);
|
||||||
|
break;
|
||||||
case EVENT_SARTHARION_SUMMON_LAVA:
|
case EVENT_SARTHARION_SUMMON_LAVA:
|
||||||
if (!urand(0,3))
|
if (!urand(0,3))
|
||||||
Talk(SAY_SARTHARION_SPECIAL);
|
Talk(SAY_SARTHARION_SPECIAL);
|
||||||
@@ -659,6 +668,10 @@ public:
|
|||||||
|
|
||||||
if (isSartharion || (pInstance && pInstance->GetData(BOSS_SARTHARION_EVENT) == DONE))
|
if (isSartharion || (pInstance && pInstance->GetData(BOSS_SARTHARION_EVENT) == DONE))
|
||||||
me->SetLootMode(0);
|
me->SetLootMode(0);
|
||||||
|
|
||||||
|
if (isSartharion)
|
||||||
|
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1, 500, true))
|
||||||
|
me->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* )
|
void JustDied(Unit* )
|
||||||
@@ -910,6 +923,10 @@ public:
|
|||||||
|
|
||||||
if (isSartharion || (pInstance && pInstance->GetData(BOSS_SARTHARION_EVENT) == DONE))
|
if (isSartharion || (pInstance && pInstance->GetData(BOSS_SARTHARION_EVENT) == DONE))
|
||||||
me->SetLootMode(0);
|
me->SetLootMode(0);
|
||||||
|
|
||||||
|
if (isSartharion)
|
||||||
|
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1, 500, true))
|
||||||
|
me->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* )
|
void JustDied(Unit* )
|
||||||
@@ -1140,6 +1157,10 @@ public:
|
|||||||
|
|
||||||
if (isSartharion || (pInstance && pInstance->GetData(BOSS_SARTHARION_EVENT) == DONE))
|
if (isSartharion || (pInstance && pInstance->GetData(BOSS_SARTHARION_EVENT) == DONE))
|
||||||
me->SetLootMode(0);
|
me->SetLootMode(0);
|
||||||
|
|
||||||
|
if (isSartharion)
|
||||||
|
if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO, 1, 500, true))
|
||||||
|
me->AI()->AttackStart(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* )
|
void JustDied(Unit* )
|
||||||
|
|||||||
Reference in New Issue
Block a user