fix(Core/Raid): Eyes activate when endboss dead in Naxxramas (#2819)
Load correct bossstate of four horseman Added the GUID-catch for the eyes in Naxxramas in the instance-script Added activation of the eyes when an endboss of a quarter is dead
This commit is contained in:
@@ -73,7 +73,11 @@ public:
|
|||||||
_loathebPortalGUID = 0;
|
_loathebPortalGUID = 0;
|
||||||
_maexxnaPortalGUID = 0;
|
_maexxnaPortalGUID = 0;
|
||||||
_thaddiusPortalGUID = 0;
|
_thaddiusPortalGUID = 0;
|
||||||
|
_deathknightEyePortalGUID = 0;
|
||||||
|
_plagueEyePortalGUID = 0;
|
||||||
|
_spiderEyePortalGUID = 0;
|
||||||
|
_abomEyePortalGUID = 0;
|
||||||
|
|
||||||
// NPCs
|
// NPCs
|
||||||
PatchwerkRoomTrash.clear();
|
PatchwerkRoomTrash.clear();
|
||||||
_patchwerkGUID = 0;
|
_patchwerkGUID = 0;
|
||||||
@@ -95,6 +99,7 @@ public:
|
|||||||
_screamTimer = 2 * MINUTE * IN_MILLISECONDS;
|
_screamTimer = 2 * MINUTE * IN_MILLISECONDS;
|
||||||
_hadThaddiusGreet = false;
|
_hadThaddiusGreet = false;
|
||||||
_currentWingTaunt = SAY_FIRST_WING_TAUNT;
|
_currentWingTaunt = SAY_FIRST_WING_TAUNT;
|
||||||
|
_horsemanLoadDoneState = false;
|
||||||
|
|
||||||
// Achievements
|
// Achievements
|
||||||
abominationsKilled = 0;
|
abominationsKilled = 0;
|
||||||
@@ -132,7 +137,11 @@ public:
|
|||||||
uint64 _loathebPortalGUID;
|
uint64 _loathebPortalGUID;
|
||||||
uint64 _maexxnaPortalGUID;
|
uint64 _maexxnaPortalGUID;
|
||||||
uint64 _thaddiusPortalGUID;
|
uint64 _thaddiusPortalGUID;
|
||||||
|
uint64 _deathknightEyePortalGUID;
|
||||||
|
uint64 _plagueEyePortalGUID;
|
||||||
|
uint64 _spiderEyePortalGUID;
|
||||||
|
uint64 _abomEyePortalGUID;
|
||||||
|
|
||||||
// NPCs
|
// NPCs
|
||||||
std::list<uint64> PatchwerkRoomTrash;
|
std::list<uint64> PatchwerkRoomTrash;
|
||||||
uint64 _patchwerkGUID;
|
uint64 _patchwerkGUID;
|
||||||
@@ -155,6 +164,7 @@ public:
|
|||||||
bool _hadThaddiusGreet;
|
bool _hadThaddiusGreet;
|
||||||
EventMap events;
|
EventMap events;
|
||||||
uint8 _currentWingTaunt;
|
uint8 _currentWingTaunt;
|
||||||
|
bool _horsemanLoadDoneState;
|
||||||
|
|
||||||
// Achievements
|
// Achievements
|
||||||
uint8 abominationsKilled;
|
uint8 abominationsKilled;
|
||||||
@@ -338,7 +348,7 @@ public:
|
|||||||
_kelthuzadgateGUID = pGo->GetGUID();
|
_kelthuzadgateGUID = pGo->GetGUID();
|
||||||
if (GetBossState(BOSS_SAPPHIRON) == DONE && _speakTimer==0)
|
if (GetBossState(BOSS_SAPPHIRON) == DONE && _speakTimer==0)
|
||||||
pGo->SetGoState(GO_STATE_ACTIVE);
|
pGo->SetGoState(GO_STATE_ACTIVE);
|
||||||
break;
|
break;
|
||||||
case GO_SAPPHIRON_GATE:
|
case GO_SAPPHIRON_GATE:
|
||||||
_sapphironGateGUID = pGo->GetGUID();
|
_sapphironGateGUID = pGo->GetGUID();
|
||||||
if (GetBossState(BOSS_SAPPHIRON) == DONE)
|
if (GetBossState(BOSS_SAPPHIRON) == DONE)
|
||||||
@@ -347,22 +357,42 @@ public:
|
|||||||
case GO_DEATHKNIGHT_WING:
|
case GO_DEATHKNIGHT_WING:
|
||||||
_loathebPortalGUID = pGo->GetGUID();
|
_loathebPortalGUID = pGo->GetGUID();
|
||||||
if (GetBossState(BOSS_LOATHEB) == DONE)
|
if (GetBossState(BOSS_LOATHEB) == DONE)
|
||||||
pGo->SetPhaseMask(1, true);
|
pGo->SetPhaseMask(1, true);
|
||||||
break;
|
break;
|
||||||
case GO_THADDIUS_PORTAL:
|
case GO_THADDIUS_PORTAL:
|
||||||
_thaddiusPortalGUID = pGo->GetGUID();
|
_thaddiusPortalGUID = pGo->GetGUID();
|
||||||
if (GetBossState(BOSS_THADDIUS) == DONE)
|
if (GetBossState(BOSS_THADDIUS) == DONE)
|
||||||
pGo->SetPhaseMask(1, true);
|
pGo->SetPhaseMask(1, true);
|
||||||
break;
|
break;
|
||||||
case GO_MAEXXNA_PORTAL:
|
case GO_MAEXXNA_PORTAL:
|
||||||
_maexxnaPortalGUID = pGo->GetGUID();
|
_maexxnaPortalGUID = pGo->GetGUID();
|
||||||
if (GetBossState(BOSS_MAEXXNA) == DONE)
|
if (GetBossState(BOSS_MAEXXNA) == DONE)
|
||||||
pGo->SetPhaseMask(1, true);
|
pGo->SetPhaseMask(1, true);
|
||||||
break;
|
break;
|
||||||
case GO_HORSEMAN_PORTAL:
|
case GO_HORSEMAN_PORTAL:
|
||||||
_horsemanPortalGUID = pGo->GetGUID();
|
_horsemanPortalGUID = pGo->GetGUID();
|
||||||
if (GetBossState(BOSS_HORSEMAN) == DONE)
|
if (GetBossState(BOSS_HORSEMAN) == DONE)
|
||||||
pGo->SetPhaseMask(1, true);
|
pGo->SetPhaseMask(1, true);
|
||||||
|
break;
|
||||||
|
case GO_DEATHKNIGHT_EYE_PORTAL:
|
||||||
|
_deathknightEyePortalGUID = pGo->GetGUID();
|
||||||
|
if (GetBossState(BOSS_HORSEMAN) == DONE)
|
||||||
|
pGo->SetGoState(GO_STATE_ACTIVE);
|
||||||
|
break;
|
||||||
|
case GO_PLAGUE_EYE_PORTAL:
|
||||||
|
_plagueEyePortalGUID = pGo->GetGUID();
|
||||||
|
if (GetBossState(BOSS_LOATHEB) == DONE)
|
||||||
|
pGo->SetGoState(GO_STATE_ACTIVE);
|
||||||
|
break;
|
||||||
|
case GO_SPIDER_EYE_PORTAL:
|
||||||
|
_spiderEyePortalGUID = pGo->GetGUID();
|
||||||
|
if (GetBossState(BOSS_MAEXXNA) == DONE)
|
||||||
|
pGo->SetGoState(GO_STATE_ACTIVE);
|
||||||
|
break;
|
||||||
|
case GO_ABOM_EYE_PORTAL:
|
||||||
|
_abomEyePortalGUID = pGo->GetGUID();
|
||||||
|
if (GetBossState(BOSS_THADDIUS) == DONE)
|
||||||
|
pGo->SetGoState(GO_STATE_ACTIVE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -497,7 +527,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Horseman handling
|
// Horseman handling
|
||||||
if (bossId == BOSS_HORSEMAN)
|
if (bossId == BOSS_HORSEMAN && _horsemanLoadDoneState == false)
|
||||||
{
|
{
|
||||||
if (state == DONE)
|
if (state == DONE)
|
||||||
{
|
{
|
||||||
@@ -634,6 +664,8 @@ public:
|
|||||||
go->SetGoState(GO_STATE_ACTIVE);
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
if (GameObject* go = instance->GetGameObject(_loathebPortalGUID))
|
if (GameObject* go = instance->GetGameObject(_loathebPortalGUID))
|
||||||
go->SetPhaseMask(1, true);
|
go->SetPhaseMask(1, true);
|
||||||
|
if (GameObject* go = instance->GetGameObject(_plagueEyePortalGUID))
|
||||||
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
||||||
break;
|
break;
|
||||||
case BOSS_ANUB:
|
case BOSS_ANUB:
|
||||||
@@ -653,6 +685,8 @@ public:
|
|||||||
go->SetGoState(GO_STATE_ACTIVE);
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
if (GameObject* go = instance->GetGameObject(_maexxnaPortalGUID))
|
if (GameObject* go = instance->GetGameObject(_maexxnaPortalGUID))
|
||||||
go->SetPhaseMask(1, true);
|
go->SetPhaseMask(1, true);
|
||||||
|
if (GameObject* go = instance->GetGameObject(_spiderEyePortalGUID))
|
||||||
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
||||||
break;
|
break;
|
||||||
case BOSS_GOTHIK:
|
case BOSS_GOTHIK:
|
||||||
@@ -670,11 +704,15 @@ public:
|
|||||||
case BOSS_THADDIUS:
|
case BOSS_THADDIUS:
|
||||||
if (GameObject* go = instance->GetGameObject(_thaddiusPortalGUID))
|
if (GameObject* go = instance->GetGameObject(_thaddiusPortalGUID))
|
||||||
go->SetPhaseMask(1, true);
|
go->SetPhaseMask(1, true);
|
||||||
|
if (GameObject* go = instance->GetGameObject(_abomEyePortalGUID))
|
||||||
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
||||||
break;
|
break;
|
||||||
case BOSS_HORSEMAN:
|
case BOSS_HORSEMAN:
|
||||||
if (GameObject* go = instance->GetGameObject(_horsemanPortalGUID))
|
if (GameObject* go = instance->GetGameObject(_horsemanPortalGUID))
|
||||||
go->SetPhaseMask(1, true);
|
go->SetPhaseMask(1, true);
|
||||||
|
if (GameObject* go = instance->GetGameObject(_deathknightEyePortalGUID))
|
||||||
|
go->SetGoState(GO_STATE_ACTIVE);
|
||||||
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -830,7 +868,8 @@ public:
|
|||||||
loadStream >> tmpState;
|
loadStream >> tmpState;
|
||||||
if (tmpState == IN_PROGRESS)
|
if (tmpState == IN_PROGRESS)
|
||||||
tmpState = NOT_STARTED;
|
tmpState = NOT_STARTED;
|
||||||
|
if (i == BOSS_HORSEMAN && tmpState == DONE)
|
||||||
|
_horsemanLoadDoneState = true;
|
||||||
SetBossState(i, EncounterState(tmpState));
|
SetBossState(i, EncounterState(tmpState));
|
||||||
}
|
}
|
||||||
loadStream >> immortalAchievement;
|
loadStream >> immortalAchievement;
|
||||||
|
|||||||
@@ -84,6 +84,11 @@ enum NXGOs
|
|||||||
GO_MAEXXNA_PORTAL = 181575, //Maexxna portal
|
GO_MAEXXNA_PORTAL = 181575, //Maexxna portal
|
||||||
GO_HORSEMAN_PORTAL = 181578, //Four Horseman portal
|
GO_HORSEMAN_PORTAL = 181578, //Four Horseman portal
|
||||||
|
|
||||||
|
GO_DEATHKNIGHT_EYE_PORTAL = 181210,
|
||||||
|
GO_PLAGUE_EYE_PORTAL = 181211,
|
||||||
|
GO_SPIDER_EYE_PORTAL = 181212,
|
||||||
|
GO_ABOM_EYE_PORTAL = 181213,
|
||||||
|
|
||||||
GO_CONS_NOX_TESLA_STALAGG = 268049,
|
GO_CONS_NOX_TESLA_STALAGG = 268049,
|
||||||
GO_CONS_NOX_TESLA_FEUGEN = 268050
|
GO_CONS_NOX_TESLA_FEUGEN = 268050
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user