aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp81
-rw-r--r--src/server/game/Instances/InstanceScript.cpp8
-rw-r--r--src/server/game/Instances/InstanceScript.h11
-rw-r--r--src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp9
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp76
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp17
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp8
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp42
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h5
-rw-r--r--src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp7
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp10
-rw-r--r--src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp15
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp86
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp25
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h17
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp8
17 files changed, 53 insertions, 374 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index e4dc5573c5c..ad76fa5779e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -9205,7 +9205,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
uint32 mapId = GetMapId();
Battleground* battleground = GetBattleground();
OutdoorPvP* outdoorPvP = sOutdoorPvPMgr->GetOutdoorPvPToZoneId(zoneId);
- InstanceScript* instance = GetInstanceScript();
TC_LOG_DEBUG("network", "Player::SendInitWorldStates: Sending SMSG_INIT_WORLD_STATES for Map: %u, Zone: %u", mapId, zoneId);
@@ -9687,86 +9686,6 @@ void Player::SendInitWorldStates(uint32 zoneId, uint32 areaId)
packet.Worldstates.emplace_back(4345, 1); // unk
}
break;
- case 4987: // The Ruby Sanctum
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(5049, 50); // WORLDSTATE_CORPOREALITY_MATERIAL
- packet.Worldstates.emplace_back(5050, 50); // WORLDSTATE_CORPOREALITY_TWILIGHT
- packet.Worldstates.emplace_back(5051, 0); // WORLDSTATE_CORPOREALITY_TOGGLE
- }
- break;
- case 4812: // Icecrown Citadel
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(4903, 0); // WORLDSTATE_SHOW_TIMER (Blood Quickening weekly)
- packet.Worldstates.emplace_back(4904, 30); // WORLDSTATE_EXECUTION_TIME
- packet.Worldstates.emplace_back(4940, 0); // WORLDSTATE_SHOW_ATTEMPTS
- packet.Worldstates.emplace_back(4941, 50); // WORLDSTATE_ATTEMPTS_REMAINING
- packet.Worldstates.emplace_back(4942, 50); // WORLDSTATE_ATTEMPTS_MAX
- }
- break;
- case 4100: // The Culling of Stratholme
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(3479, 0); // WORLDSTATE_SHOW_CRATES
- packet.Worldstates.emplace_back(3480, 0); // WORLDSTATE_CRATES_REVEALED
- packet.Worldstates.emplace_back(3504, 0); // WORLDSTATE_WAVE_COUNT
- packet.Worldstates.emplace_back(3931, 25); // WORLDSTATE_TIME_GUARDIAN
- packet.Worldstates.emplace_back(3932, 0); // WORLDSTATE_TIME_GUARDIAN_SHOW
- }
- break;
- case 4228: // The Oculus
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(3524, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW
- packet.Worldstates.emplace_back(3486, 0); // WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT
- }
- break;
- case 4273: // Ulduar
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(4132, 0); // WORLDSTATE_ALGALON_TIMER_ENABLED
- packet.Worldstates.emplace_back(4131, 0); // WORLDSTATE_ALGALON_DESPAWN_TIMER
- }
- break;
- case 4415: // Violet Hold
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(3816, 0); // WORLD_STATE_VH_SHOW
- packet.Worldstates.emplace_back(3815, 100); // WORLD_STATE_VH_PRISON_STATE
- packet.Worldstates.emplace_back(3810, 0); // WORLD_STATE_VH_WAVE_COUNT
- }
- break;
- case 4820: // Halls of Refection
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(4884, 0); // WORLD_STATE_HOR_WAVES_ENABLED
- packet.Worldstates.emplace_back(4882, 0); // WORLD_STATE_HOR_WAVE_COUNT
- }
- break;
- case 3805: // Zul Aman
- if (instance)
- instance->FillInitialWorldStates(packet);
- else
- {
- packet.Worldstates.emplace_back(3104, 0); // WORLD_STATE_ZULAMAN_TIMER_ENABLED
- packet.Worldstates.emplace_back(3106, 0); // WORLD_STATE_ZULAMAN_TIMER
- }
- break;
case 5031: // Twin Peaks
if (battleground && battleground->GetTypeID(true) == BATTLEGROUND_TP)
battleground->FillInitialWorldStates(packet);
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 215411c528a..67b73ffc33a 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -37,6 +37,7 @@
#include "SpellMgr.h"
#include "World.h"
#include "WorldSession.h"
+#include "WorldStateMgr.h"
#include <sstream>
#include <cstdarg>
@@ -608,12 +609,9 @@ void InstanceScript::DoRespawnGameObject(ObjectGuid guid, Seconds timeToDespawn
TC_LOG_DEBUG("scripts", "InstanceScript: DoRespawnGameObject failed");
}
-void InstanceScript::DoUpdateWorldState(uint32 uiStateId, uint32 uiStateData)
+void InstanceScript::DoUpdateWorldState(int32 worldStateId, int32 value)
{
- instance->DoOnPlayers([uiStateId, uiStateData](Player const* player)
- {
- player->SendUpdateWorldState(uiStateId, uiStateData);
- });
+ sWorldStateMgr->SetValue(worldStateId, value, instance);
}
// Send Notify to all players in instance
diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h
index 353f363174c..e3076222d21 100644
--- a/src/server/game/Instances/InstanceScript.h
+++ b/src/server/game/Instances/InstanceScript.h
@@ -42,13 +42,6 @@ struct InstanceSpawnGroupInfo;
enum class CriteriaType : uint8;
enum class CriteriaStartEvent : uint8;
enum EncounterCreditType : uint8;
-namespace WorldPackets
-{
- namespace WorldState
- {
- class InitWorldStates;
- }
-}
enum EncounterFrameType
{
@@ -216,7 +209,7 @@ class TC_GAME_API InstanceScript : public ZoneScript
void DoRespawnGameObject(ObjectGuid guid, Seconds timeToDespawn = 1min);
// Sends world state update to all players in instance
- void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue);
+ void DoUpdateWorldState(int32 worldStateId, int32 value);
// Send Notify to all players in instance
void DoSendNotifyToInstance(char const* format, ...);
@@ -257,8 +250,6 @@ class TC_GAME_API InstanceScript : public ZoneScript
// Returns completed encounters mask for packets
uint32 GetCompletedEncounterMask() const { return completedEncounters; }
- virtual void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& /*packet*/) { }
-
uint32 GetEncounterCount() const { return uint32(bosses.size()); }
// Sets the entrance location (WorldSafeLoc) id
diff --git a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
index 563200cbbbf..3ce83c5867e 100644
--- a/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
+++ b/src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
@@ -21,7 +21,6 @@
#include "InstanceScript.h"
#include "Map.h"
#include "ScriptedCreature.h"
-#include "WorldStatePackets.h"
#include "zulaman.h"
#include <sstream>
@@ -37,17 +36,11 @@ class instance_zulaman : public InstanceMapScript
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
- SpeedRunTimer = 16;
+ SpeedRunTimer = 15;
ZulAmanState = NOT_STARTED;
ZulAmanBossCount = 0;
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_ZULAMAN_TIMER_ENABLED), int32(ZulAmanState ? 1 : 0));
- packet.Worldstates.emplace_back(uint32(WORLD_STATE_ZULAMAN_TIMER), int32(SpeedRunTimer));
- }
-
void OnCreatureCreate(Creature* creature) override
{
switch (creature->GetEntry())
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
index 77b7d9d049a..7b504ed8375 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp
@@ -27,7 +27,6 @@
#include "Player.h"
#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "WorldStatePackets.h"
#include <array>
#include <sstream>
#include <unordered_map>
@@ -273,16 +272,9 @@ class instance_culling_of_stratholme : public InstanceMapScript
LoadDoorData(doorData);
_currentWorldStates[WORLDSTATE_SHOW_CRATES] = _currentWorldStates[WORLDSTATE_CRATES_REVEALED] = _currentWorldStates[WORLDSTATE_WAVE_COUNT] = _currentWorldStates[WORLDSTATE_TIME_GUARDIAN_SHOW] = _currentWorldStates[WORLDSTATE_TIME_GUARDIAN] = 0;
- _sentWorldStates = _currentWorldStates;
_plagueCrates.reserve(NUM_PLAGUE_CRATES);
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- for (WorldStateMap::const_iterator itr = _sentWorldStates.begin(); itr != _sentWorldStates.end(); ++itr)
- packet.Worldstates.emplace_back(itr->first, itr->second);
- }
-
void WriteSaveDataMore(std::ostringstream& data) override
{
data << _currentState << ' ' << _infiniteGuardianTimeout;
@@ -330,7 +322,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
break;
case DATA_CRATE_REVEALED:
if (uint32 missingCrates = MissingPlagueCrates())
- SetWorldState(WORLDSTATE_CRATES_REVEALED, NUM_PLAGUE_CRATES - missingCrates);
+ DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, NUM_PLAGUE_CRATES - missingCrates);
else
SetInstanceProgress(CRATES_DONE, false);
break;
@@ -390,8 +382,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
// clear existing world markers
for (uint32 marker = WAVE_MARKER_MIN; marker <= WAVE_MARKER_MAX; ++marker)
- SetWorldState(COSWorldStates(marker), 0, false);
- PropagateWorldStateUpdate();
+ DoUpdateWorldState(COSWorldStates(marker), 0);
// schedule next wave if applicable
if (_waveCount < NUM_SCOURGE_WAVES)
@@ -459,8 +450,8 @@ class instance_culling_of_stratholme : public InstanceMapScript
if (type == DATA_INFINITE_CORRUPTOR && state == DONE)
{
events.CancelEvent(EVENT_GUARDIAN_TICK);
- SetWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0, false);
- SetWorldState(WORLDSTATE_TIME_GUARDIAN, 0);
+ DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0);
+ DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, 0);
}
if (!InstanceScript::SetBossState(type, state))
@@ -485,8 +476,8 @@ class instance_culling_of_stratholme : public InstanceMapScript
if (secondsToGuardianDeath <= 0)
{
_infiniteGuardianTimeout = 0;
- SetWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0, false);
- SetWorldState(WORLDSTATE_TIME_GUARDIAN, 0);
+ DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 0);
+ DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, 0);
if (Creature* corruptor = instance->GetCreature(_corruptorGUID))
{
@@ -513,8 +504,8 @@ class instance_culling_of_stratholme : public InstanceMapScript
chromie->AI()->Talk(CHROMIE_WHISPER_GUARDIAN_3);
// update the timer state
- SetWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 1, false);
- SetWorldState(WORLDSTATE_TIME_GUARDIAN, minutes + 1);
+ DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN_SHOW, 1);
+ DoUpdateWorldState(WORLDSTATE_TIME_GUARDIAN, minutes + 1);
if (minutes == 4 && seconds > 30)
events.Repeat(Seconds(seconds - 30));
else
@@ -538,7 +529,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
break;
++_waveCount;
- SetWorldState(WORLDSTATE_WAVE_COUNT, _waveCount);
+ DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, _waveCount);
uint8 spawnLoc = urand(WAVE_LOC_MIN, WAVE_LOC_MAX);
while (spawnLoc == _currentSpawnLoc) // don't allow repeats
@@ -573,8 +564,8 @@ class instance_culling_of_stratholme : public InstanceMapScript
}
for (uint32 marker = WAVE_MARKER_MIN; marker <= WAVE_MARKER_MAX; ++marker)
- SetWorldState(COSWorldStates(marker), 0, false);
- SetWorldState(spawnLocation.WorldState, 1);
+ DoUpdateWorldState(COSWorldStates(marker), 0);
+ DoUpdateWorldState(spawnLocation.WorldState, 1);
events.RescheduleEvent(EVENT_CRIER_ANNOUNCE_WAVE, 2s);
_currentSpawnLoc = spawnLoc;
@@ -689,26 +680,24 @@ class instance_culling_of_stratholme : public InstanceMapScript
// Plague crates
if (state == CRATES_IN_PROGRESS)
{
- SetWorldState(WORLDSTATE_SHOW_CRATES, 1, false);
- SetWorldState(WORLDSTATE_CRATES_REVEALED, 0, false);
+ DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, 1);
+ DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, 0);
}
else if (state == CRATES_DONE)
{
- SetWorldState(WORLDSTATE_SHOW_CRATES, 1, false);
- SetWorldState(WORLDSTATE_CRATES_REVEALED, NUM_PLAGUE_CRATES, false);
+ DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, 1);
+ DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, NUM_PLAGUE_CRATES);
}
else
{
- SetWorldState(WORLDSTATE_SHOW_CRATES, 0, false);
- SetWorldState(WORLDSTATE_CRATES_REVEALED, state == JUST_STARTED ? 0 : NUM_PLAGUE_CRATES, false);
+ DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, 0);
+ DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, state == JUST_STARTED ? 0 : NUM_PLAGUE_CRATES);
}
// Scourge wave counter
if (state == WAVES_DONE)
- SetWorldState(WORLDSTATE_WAVE_COUNT, NUM_SCOURGE_WAVES, false);
+ DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, NUM_SCOURGE_WAVES);
else
- SetWorldState(WORLDSTATE_WAVE_COUNT, 0, false);
-
- PropagateWorldStateUpdate();
+ DoUpdateWorldState(WORLDSTATE_WAVE_COUNT, 0);
// Hidden Passage status handling
if (GameObject* passage = instance->GetGameObject(_passageGUID))
@@ -768,7 +757,6 @@ class instance_culling_of_stratholme : public InstanceMapScript
}
private:
- typedef std::unordered_map<uint32, uint32> WorldStateMap;
uint32 MissingPlagueCrates() const
{
@@ -792,29 +780,6 @@ class instance_culling_of_stratholme : public InstanceMapScript
}
}
- void SetWorldState(COSWorldStates state, uint32 value, bool immediate = true)
- {
- TC_LOG_DEBUG("scripts.cos", "instance_culling_of_stratholme::SetWorldState: %u %u", uint32(state), value);
- _currentWorldStates[state] = value;
- if (immediate)
- PropagateWorldStateUpdate();
- }
-
- void PropagateWorldStateUpdate()
- {
- TC_LOG_DEBUG("scripts.cos", "instance_culling_of_stratholme::PropagateWorldStateUpdate: Propagate world states");
- for (WorldStateMap::const_iterator it = _currentWorldStates.begin(); it != _currentWorldStates.end(); ++it)
- {
- uint32& sent = _sentWorldStates[it->first];
- if (sent != it->second)
- {
- TC_LOG_DEBUG("scripts.cos", "instance_culling_of_stratholme::PropagateWorldStateUpdate: Sending world state %u (%u)", it->first, it->second);
- DoUpdateWorldState(it->first, it->second);
- sent = it->second;
- }
- }
- }
-
void SetSpawnGroupState(COSInstanceEntries group, bool state, bool force)
{
if (state)
@@ -827,8 +792,7 @@ class instance_culling_of_stratholme : public InstanceMapScript
EventMap events;
COSProgressStates _currentState;
- WorldStateMap _sentWorldStates;
- WorldStateMap _currentWorldStates;
+ std::unordered_map<uint32, uint32> _currentWorldStates;
time_t _infiniteGuardianTimeout;
// Generic
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
index dd4f5e161f0..0e04032c014 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/TheBlackMorass/instance_the_black_morass.cpp
@@ -108,13 +108,6 @@ public:
_currentRiftId = 0;
}
- void InitWorldState(bool Enable = true)
- {
- DoUpdateWorldState(WORLD_STATE_BM, Enable ? 1 : 0);
- DoUpdateWorldState(WORLD_STATE_BM_SHIELD, 100);
- DoUpdateWorldState(WORLD_STATE_BM_RIFT, 0);
- }
-
bool IsEncounterInProgress() const override
{
if (GetData(TYPE_MEDIVH) == IN_PROGRESS)
@@ -123,14 +116,6 @@ public:
return false;
}
- void OnPlayerEnter(Player* player) override
- {
- if (GetData(TYPE_MEDIVH) == IN_PROGRESS)
- return;
-
- player->SendUpdateWorldState(WORLD_STATE_BM, 0);
- }
-
void OnCreatureCreate(Creature* creature) override
{
if (creature->GetEntry() == NPC_MEDIVH)
@@ -192,7 +177,7 @@ public:
if (data == IN_PROGRESS)
{
TC_LOG_DEBUG("scripts", "Instance The Black Morass: Starting event.");
- InitWorldState();
+ DoUpdateWorldState(WORLD_STATE_BM, 1);
m_auiEncounter[1] = IN_PROGRESS;
ScheduleEventNextPortal(15s);
}
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
index c1be17907d8..0fd569a94f3 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/instance_ruby_sanctum.cpp
@@ -23,7 +23,6 @@
#include "Map.h"
#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "WorldStatePackets.h"
Position const HalionControllerSpawnPos = { 3156.037f, 533.2656f, 72.97205f, 0.0f };
@@ -197,13 +196,6 @@ class instance_ruby_sanctum : public InstanceMapScript
return BaltharusSharedHealth;
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
- packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
- packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
- }
-
protected:
ObjectGuid ZarithrianSpawnStalkerGUID[2];
uint32 BaltharusSharedHealth;
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
index 8caf0140d3a..4a6f285d4ae 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp
@@ -117,22 +117,15 @@ class instance_trial_of_the_crusader : public InstanceMapScript
ResilienceWillFixItTimer = 0;
SnoboldCount = 0;
MistressOfPainCount = 0;
- TributeToImmortalityEligible = true;
+ PlayerDeathCount = 0;
NeedSave = false;
CrusadersSpecialState = false;
TributeToDedicatedInsanity = false; // NYI, set to true when implement it
+ DoUpdateWorldState(UPDATE_STATE_UI_SHOW, instance->IsHeroic() ? 1 : 0);
}
void OnPlayerEnter(Player* player) override
{
- if (instance->IsHeroic())
- {
- player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 1);
- player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, GetData(TYPE_COUNTER));
- }
- else
- player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 0);
-
if (Team == TEAM_OTHER)
Team = player->GetTeam();
@@ -167,8 +160,10 @@ class instance_trial_of_the_crusader : public InstanceMapScript
void OnUnitDeath(Unit* unit) override
{
if (unit->GetTypeId() == TYPEID_PLAYER && IsEncounterInProgress())
- TributeToImmortalityEligible = false;
-
+ {
+ ++PlayerDeathCount;
+ DoUpdateWorldState(WORLD_STATE_PLAYER_DEATHS, PlayerDeathCount);
+ }
}
bool SetBossState(uint32 type, EncounterState state) override
@@ -305,10 +300,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
{
--TrialCounter;
// decrease attempt counter at wipe
- Map::PlayerList const& PlayerList = instance->GetPlayers();
- for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)
- if (Player* player = itr->GetSource())
- player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, TrialCounter);
+ DoUpdateWorldState(UPDATE_STATE_UI_COUNT, TrialCounter);
// if theres no more attemps allowed
if (!TrialCounter)
@@ -581,7 +573,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
saveStream << GetBossState(i) << ' ';
saveStream << TrialCounter << ' '
- << uint32(TributeToImmortalityEligible ? 1 : 0) << ' '
+ << PlayerDeathCount << ' '
<< uint32(TributeToDedicatedInsanity ? 1 : 0);
SaveDataBuffer = saveStream.str();
@@ -617,8 +609,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
}
loadStream >> TrialCounter;
- loadStream >> tmpState;
- TributeToImmortalityEligible = tmpState != 0;
+ loadStream >> PlayerDeathCount;
loadStream >> tmpState;
TributeToDedicatedInsanity = tmpState != 0;
EventStage = 0;
@@ -641,19 +632,6 @@ class instance_trial_of_the_crusader : public InstanceMapScript
case THREE_SIXTY_PAIN_SPIKE_25_PLAYER:
case THREE_SIXTY_PAIN_SPIKE_25_PLAYER_HEROIC:
return MistressOfPainCount >= 2;
- case A_TRIBUTE_TO_SKILL_10_PLAYER:
- case A_TRIBUTE_TO_SKILL_25_PLAYER:
- return TrialCounter >= 25;
- case A_TRIBUTE_TO_MAD_SKILL_10_PLAYER:
- case A_TRIBUTE_TO_MAD_SKILL_25_PLAYER:
- return TrialCounter >= 45;
- case A_TRIBUTE_TO_INSANITY_10_PLAYER:
- case A_TRIBUTE_TO_INSANITY_25_PLAYER:
- case REALM_FIRST_GRAND_CRUSADER:
- return TrialCounter == 50;
- case A_TRIBUTE_TO_IMMORTALITY_HORDE:
- case A_TRIBUTE_TO_IMMORTALITY_ALLIANCE:
- return TrialCounter == 50 && TributeToImmortalityEligible;
case A_TRIBUTE_TO_DEDICATED_INSANITY:
return false/*TrialCounter == 50 && TributeToDedicatedInsanity*/;
default:
@@ -680,7 +658,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript
uint8 SnoboldCount;
uint8 MistressOfPainCount;
uint8 NorthrendBeastsCount;
- bool TributeToImmortalityEligible;
+ int32 PlayerDeathCount;
bool TributeToDedicatedInsanity;
};
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
index 856d3cf061b..593ebc4ba5d 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h
@@ -128,8 +128,9 @@ extern Position const AnubarakLoc[];
enum TCRWorldStateIds
{
- UPDATE_STATE_UI_SHOW = 4390,
- UPDATE_STATE_UI_COUNT = 4389
+ UPDATE_STATE_UI_SHOW = 4390,
+ UPDATE_STATE_UI_COUNT = 4389,
+ WORLD_STATE_PLAYER_DEATHS = 4408
};
enum NorthrendBeasts
diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
index f9deeeaa26b..eb92cff9851 100644
--- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
+++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/instance_halls_of_reflection.cpp
@@ -24,7 +24,6 @@
#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "Transport.h"
-#include "WorldStatePackets.h"
#include <sstream>
Position const JainaSpawnPos = { 5236.659f, 1929.894f, 707.7781f, 0.8726646f }; // Jaina Spawn Position
@@ -294,12 +293,6 @@ class instance_halls_of_reflection : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- packet.Worldstates.emplace_back(WORLD_STATE_HOR_WAVES_ENABLED, (_introState == DONE && GetBossState(DATA_MARWYN) != DONE) ? 1 : 0);
- packet.Worldstates.emplace_back(WORLD_STATE_HOR_WAVE_COUNT, _waveCount);
- }
-
bool SetBossState(uint32 type, EncounterState state) override
{
if (!InstanceScript::SetBossState(type, state))
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 21fb4a3b25c..8bab02e489d 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -29,7 +29,6 @@
#include "TemporarySummon.h"
#include "Transport.h"
#include "TransportMgr.h"
-#include "WorldStatePackets.h"
#include <sstream>
#include <unordered_set>
@@ -177,15 +176,6 @@ class instance_icecrown_citadel : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- packet.Worldstates.emplace_back(WORLDSTATE_SHOW_TIMER, BloodQuickeningState == IN_PROGRESS ? 1 : 0);
- packet.Worldstates.emplace_back(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
- packet.Worldstates.emplace_back(WORLDSTATE_SHOW_ATTEMPTS, instance->IsHeroic() ? 1 : 0);
- packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
- packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_MAX, MaxHeroicAttempts);
- }
-
void OnPlayerEnter(Player* player) override
{
uint8 spawnGroupId = TeamInInstance == ALLIANCE ? SPAWN_GROUP_ALLIANCE_ROS : SPAWN_GROUP_HORDE_ROS;
diff --git a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
index 5d3bd684604..eeff191f6e9 100644
--- a/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
+++ b/src/server/scripts/Northrend/Nexus/Oculus/instance_oculus.cpp
@@ -26,7 +26,6 @@
#include "ScriptMgr.h"
#include "PhasingHandler.h"
#include "TemporarySummon.h"
-#include "WorldStatePackets.h"
DoorData const doorData[] =
{
@@ -152,20 +151,6 @@ class instance_oculus : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- if (GetBossState(DATA_DRAKOS) == DONE && GetBossState(DATA_VAROS) != DONE)
- {
- packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
- packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, CentrifugueConstructCounter);
- }
- else
- {
- packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
- packet.Worldstates.emplace_back(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
- }
- }
-
void ProcessEvent(WorldObject* /*unit*/, uint32 eventId, WorldObject* /*invoker*/) override
{
if (eventId != EVENT_CALL_DRAGON)
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index 0699f4de443..4de37193895 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -143,7 +143,6 @@ enum Vehicles
enum Misc
{
DATA_SHUTOUT = 29112912, // 2911, 2912 are achievement IDs
- DATA_ORBIT_ACHIEVEMENTS = 1,
VEHICLE_SPAWNS = 5,
FREYA_SPAWNS = 4
@@ -351,10 +350,6 @@ class boss_flame_leviathan : public CreatureScript
return Shutout ? 1 : 0;
case DATA_UNBROKEN:
return Unbroken ? 1 : 0;
- case DATA_ORBIT_ACHIEVEMENTS:
- if (ActiveTowers) // Only on HardMode
- return ActiveTowersCount;
- break;
default:
break;
}
@@ -522,6 +517,7 @@ class boss_flame_leviathan : public CreatureScript
{
towerOfStorms = false;
--ActiveTowersCount;
+ instance->DoUpdateWorldState(WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS, 4 - ActiveTowersCount);
}
break;
case ACTION_TOWER_OF_FROST_DESTROYED:
@@ -529,6 +525,7 @@ class boss_flame_leviathan : public CreatureScript
{
towerOfFrost = false;
--ActiveTowersCount;
+ instance->DoUpdateWorldState(WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS, 4 - ActiveTowersCount);
}
break;
case ACTION_TOWER_OF_FLAMES_DESTROYED:
@@ -536,6 +533,7 @@ class boss_flame_leviathan : public CreatureScript
{
towerOfFlames = false;
--ActiveTowersCount;
+ instance->DoUpdateWorldState(WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS, 4 - ActiveTowersCount);
}
break;
case ACTION_TOWER_OF_LIFE_DESTROYED:
@@ -543,9 +541,11 @@ class boss_flame_leviathan : public CreatureScript
{
towerOfLife = false;
--ActiveTowersCount;
+ instance->DoUpdateWorldState(WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS, 4 - ActiveTowersCount);
}
break;
case ACTION_START_HARD_MODE: // Activate hard-mode enable all towers, apply buffs on leviathan
+ instance->DoUpdateWorldState(WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS, 0);
ActiveTowers = true;
towerOfStorms = true;
towerOfLife = true;
@@ -1422,78 +1422,6 @@ class achievement_unbroken : public AchievementCriteriaScript
}
};
-class achievement_orbital_bombardment : public AchievementCriteriaScript
-{
- public:
- achievement_orbital_bombardment() : AchievementCriteriaScript("achievement_orbital_bombardment") { }
-
- bool OnCheck(Player* /*source*/, Unit* target) override
- {
- if (!target)
- return false;
-
- if (Creature* Leviathan = target->ToCreature())
- if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 1)
- return true;
-
- return false;
- }
-};
-
-class achievement_orbital_devastation : public AchievementCriteriaScript
-{
- public:
- achievement_orbital_devastation() : AchievementCriteriaScript("achievement_orbital_devastation") { }
-
- bool OnCheck(Player* /*source*/, Unit* target) override
- {
- if (!target)
- return false;
-
- if (Creature* Leviathan = target->ToCreature())
- if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 2)
- return true;
-
- return false;
- }
-};
-
-class achievement_nuked_from_orbit : public AchievementCriteriaScript
-{
- public:
- achievement_nuked_from_orbit() : AchievementCriteriaScript("achievement_nuked_from_orbit") { }
-
- bool OnCheck(Player* /*source*/, Unit* target) override
- {
- if (!target)
- return false;
-
- if (Creature* Leviathan = target->ToCreature())
- if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) >= 3)
- return true;
-
- return false;
- }
-};
-
-class achievement_orbit_uary : public AchievementCriteriaScript
-{
- public:
- achievement_orbit_uary() : AchievementCriteriaScript("achievement_orbit_uary") { }
-
- bool OnCheck(Player* /*source*/, Unit* target) override
- {
- if (!target)
- return false;
-
- if (Creature* Leviathan = target->ToCreature())
- if (Leviathan->AI()->GetData(DATA_ORBIT_ACHIEVEMENTS) == 4)
- return true;
-
- return false;
- }
-};
-
// 62399 - Overload Circuit
class spell_overload_circuit : public AuraScript
{
@@ -1878,10 +1806,6 @@ void AddSC_boss_flame_leviathan()
new achievement_three_car_garage_siege();
new achievement_shutout();
new achievement_unbroken();
- new achievement_orbital_bombardment();
- new achievement_orbital_devastation();
- new achievement_nuked_from_orbit();
- new achievement_orbit_uary();
RegisterSpellScript(spell_overload_circuit);
RegisterSpellScript(spell_tar_blaze);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
index 2cac4d62bc0..ea4d81f5c97 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
@@ -532,7 +532,7 @@ struct boss_razorscale : public BossAI
void HandleMusic(bool active)
{
- uint32 enabled = active ? 1 : 0;
+ int32 enabled = active ? 1 : 0;
instance->DoUpdateWorldState(WORLD_STATE_RAZORSCALE_MUSIC, enabled);
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index 15ab74477b5..1df315a7cc7 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -27,7 +27,6 @@
#include "ScriptMgr.h"
#include "TemporarySummon.h"
#include "Vehicle.h"
-#include "WorldStatePackets.h"
#include <sstream>
static BossBoundaryData const boundaries =
@@ -226,13 +225,6 @@ class instance_ulduar : public InstanceMapScript
bool Unbroken;
bool IsDriveMeCrazyEligible;
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- packet.Worldstates.emplace_back(WORLD_STATE_YOGG_SARON_KEEPERS, int32(keepersCount));
- packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_TIMER_ENABLED, (_algalonTimer && _algalonTimer <= 60) ? 1 : 0);
- packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_DESPAWN_TIMER, std::min<int32>(_algalonTimer, 60));
- }
-
void OnPlayerEnter(Player* player) override
{
if (!TeamInInstance)
@@ -359,24 +351,28 @@ class instance_ulduar : public InstanceMapScript
_summonYSKeeper[0] = false;
SaveToDB();
++keepersCount;
+ DoUpdateWorldState(WORLD_STATE_YOGG_SARON_KEEPERS, keepersCount);
break;
case NPC_HODIR_YS:
KeeperGUIDs[1] = creature->GetGUID();
_summonYSKeeper[1] = false;
SaveToDB();
++keepersCount;
+ DoUpdateWorldState(WORLD_STATE_YOGG_SARON_KEEPERS, keepersCount);
break;
case NPC_THORIM_YS:
KeeperGUIDs[2] = creature->GetGUID();
_summonYSKeeper[2] = false;
SaveToDB();
++keepersCount;
+ DoUpdateWorldState(WORLD_STATE_YOGG_SARON_KEEPERS, keepersCount);
break;
case NPC_MIMIRON_YS:
KeeperGUIDs[3] = creature->GetGUID();
_summonYSKeeper[3] = false;
SaveToDB();
++keepersCount;
+ DoUpdateWorldState(WORLD_STATE_YOGG_SARON_KEEPERS, keepersCount);
break;
case NPC_SANITY_WELL:
creature->SetReactState(REACT_PASSIVE);
@@ -885,19 +881,6 @@ class instance_ulduar : public InstanceMapScript
case CRITERIA_DRIVE_ME_CRAZY_10:
case CRITERIA_DRIVE_ME_CRAZY_25:
return IsDriveMeCrazyEligible;
- case CRITERIA_THREE_LIGHTS_IN_THE_DARKNESS_10:
- case CRITERIA_THREE_LIGHTS_IN_THE_DARKNESS_25:
- return keepersCount <= 3;
- case CRITERIA_TWO_LIGHTS_IN_THE_DARKNESS_10:
- case CRITERIA_TWO_LIGHTS_IN_THE_DARKNESS_25:
- return keepersCount <= 2;
- case CRITERIA_ONE_LIGHT_IN_THE_DARKNESS_10:
- case CRITERIA_ONE_LIGHT_IN_THE_DARKNESS_25:
- return keepersCount <= 1;
- case CRITERIA_ALONE_IN_THE_DARKNESS_10:
- case CRITERIA_ALONE_IN_THE_DARKNESS_25:
- case REALM_FIRST_DEATHS_DEMISE:
- return keepersCount == 0;
case CRITERIA_C_O_U_LEVIATHAN_10:
case CRITERIA_C_O_U_LEVIATHAN_25:
return (_CoUAchivePlayerDeathMask & (1 << DATA_FLAME_LEVIATHAN)) == 0;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
index 6d966c38e42..2056d438e7d 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h
@@ -357,18 +357,8 @@ enum UlduarAchievementCriteriaIds
CRITERIA_WAITS_DREAMING_ICECROWN_10 = 10326,
CRITERIA_DRIVE_ME_CRAZY_10 = 10185,
CRITERIA_DRIVE_ME_CRAZY_25 = 10296,
- CRITERIA_THREE_LIGHTS_IN_THE_DARKNESS_10 = 10410,
- CRITERIA_THREE_LIGHTS_IN_THE_DARKNESS_25 = 10414,
- CRITERIA_TWO_LIGHTS_IN_THE_DARKNESS_10 = 10388,
- CRITERIA_TWO_LIGHTS_IN_THE_DARKNESS_25 = 10415,
- CRITERIA_ONE_LIGHT_IN_THE_DARKNESS_10 = 10409,
- CRITERIA_ONE_LIGHT_IN_THE_DARKNESS_25 = 10416,
- CRITERIA_ALONE_IN_THE_DARKNESS_10 = 10412,
- CRITERIA_ALONE_IN_THE_DARKNESS_25 = 10417,
CRITERIA_HERALD_OF_TITANS = 10678,
- REALM_FIRST_DEATHS_DEMISE = 10279,
-
// Champion of Ulduar
CRITERIA_C_O_U_LEVIATHAN_10 = 10042,
CRITERIA_C_O_U_IGNIS_10 = 10342,
@@ -477,9 +467,10 @@ enum UlduarData
enum UlduarWorldStates
{
- WORLD_STATE_YOGG_SARON_KEEPERS = 4116,
- WORLD_STATE_ALGALON_DESPAWN_TIMER = 4131,
- WORLD_STATE_ALGALON_TIMER_ENABLED = 4132,
+ WORLD_STATE_FLAME_LEVIATHAN_DESTROYED_TOWERS = 4129,
+ WORLD_STATE_YOGG_SARON_KEEPERS = 4116,
+ WORLD_STATE_ALGALON_DESPAWN_TIMER = 4131,
+ WORLD_STATE_ALGALON_TIMER_ENABLED = 5636,
};
enum UlduarAchievementData
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index 8f1416766e9..58723958ed4 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -26,7 +26,6 @@
#include "TaskScheduler.h"
#include "ScriptMgr.h"
#include "TemporarySummon.h"
-#include "WorldStatePackets.h"
#include <sstream>
/*
@@ -293,13 +292,6 @@ class instance_violet_hold : public InstanceMapScript
}
}
- void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
- {
- packet.Worldstates.emplace_back(WORLD_STATE_VH_SHOW, EventState == IN_PROGRESS ? 1 : 0);
- packet.Worldstates.emplace_back(WORLD_STATE_VH_PRISON_STATE, DoorIntegrity);
- packet.Worldstates.emplace_back(WORLD_STATE_VH_WAVE_COUNT, WaveCount);
- }
-
bool CheckRequiredBosses(uint32 bossId, Player const* player = nullptr) const override
{
if (_SkipCheckRequiredBosses(player))