refactor(Core/WorldState): Initial addition of world state definition file. (#21875)

Many world states had their enums from script's header and hardcoded values to their respective header file (WorldStateDefines.h)
Co-authored-by: Jelle Meeus <sogladev@gmail.com>
This commit is contained in:
Benjamin Jackson
2025-04-26 14:31:30 -04:00
committed by GitHub
parent d23e61b721
commit da55f05cfc
73 changed files with 1828 additions and 1789 deletions

View File

@@ -26,6 +26,7 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "Vehicle.h"
#include "WorldStateDefines.h"
#include "ruby_sanctum.h"
enum Texts
@@ -715,8 +716,8 @@ public:
break;
}
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, _corporeality * 10);
_instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 100 - _corporeality * 10);
_instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, _corporeality * 10);
_instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 100 - _corporeality * 10);
if (Creature* twilightHalion = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(NPC_TWILIGHT_HALION)))
{
@@ -1272,9 +1273,9 @@ class spell_halion_twilight_division : public SpellScript
if (GameObject* gobject = halion->FindNearestGameObject(GO_HALION_PORTAL_1, 100.0f))
gobject->Delete();
instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 1);
instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
instance->DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 1);
instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 50);
instance->DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 50);
}
void Register() override

View File

@@ -22,6 +22,7 @@
#include "SpellScript.h"
#include "SpellScriptLoader.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "ruby_sanctum.h"
@@ -208,9 +209,9 @@ public:
halionController->AI()->DoAction(ACTION_INTRO_HALION);
break;
case DATA_HALION:
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 0);
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_MATERIAL, 0);
DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 0);
DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 0);
DoUpdateWorldState(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 0);
HandleGameObject(FlameRingGUID, true);
break;
}
@@ -221,9 +222,9 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(3);
packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_MATERIAL, 50);
packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TWILIGHT, 50);
packet.Worldstates.emplace_back(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_MATERIAL, 50);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TWILIGHT, 50);
packet.Worldstates.emplace_back(WORLD_STATE_RUBY_SANCTUM_CORPOREALITY_TOGGLE, 0);
}
protected:

View File

@@ -95,13 +95,6 @@ enum GameObjectsIds
GO_BURNING_TREE_4 = 203037
};
enum WorldStatesRS
{
WORLDSTATE_CORPOREALITY_MATERIAL = 5049,
WORLDSTATE_CORPOREALITY_TWILIGHT = 5050,
WORLDSTATE_CORPOREALITY_TOGGLE = 5051
};
enum InstanceSpell
{
SPELL_BERSERK = 26662,

View File

@@ -20,6 +20,7 @@
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "WorldStateDefines.h"
#include "trial_of_the_crusader.h"
std::map<uint32, bool> validDedicatedInsanityItems;
@@ -283,7 +284,7 @@ public:
Map::PlayerList const& pl = instance->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if (Player* plr = itr->GetSource())
plr->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, AttemptsLeft);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT, AttemptsLeft);
}
InstanceCleanup(true);
SaveToDB();
@@ -1379,11 +1380,11 @@ public:
if (instance->IsHeroic())
{
plr->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 1);
plr->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, AttemptsLeft);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_SHOW, 1);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT, AttemptsLeft);
}
else
plr->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 0);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_SHOW, 0);
if (DoNeedCleanup(plr))
{
@@ -1555,7 +1556,7 @@ public:
Map::PlayerList const& pl = instance->GetPlayers();
for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
if (Player* plr = itr->GetSource())
plr->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, AttemptsLeft);
plr->SendUpdateWorldState(WORLD_STATE_TRIAL_OF_THE_CRUSADER_UI_COUNT, AttemptsLeft);
}
if (instance->IsHeroic() && AttemptsLeft == 0 )

View File

@@ -379,12 +379,6 @@ enum eAchievementCriteria
ACHIEV_CRITERIA_REALM_FIRST_GRAND_CRUSADER = 12350,
};
enum euiWorldStates
{
UPDATE_STATE_UI_SHOW = 4390,
UPDATE_STATE_UI_COUNT = 4389,
};
const uint32 dIIc = 405;
const uint32 dedicatedInsanityItems[405] =
{

View File

@@ -100,12 +100,6 @@ enum GameObjects
GO_PORTAL_TO_DALARAN = 195682,
};
enum HorWorldStates
{
WORLD_STATE_HOR_COUNTER = 4884,
WORLD_STATE_HOR_WAVE_COUNT = 4882,
};
enum BatteredHiltStatusFlags
{
BHSF_NONE = 0,

View File

@@ -20,6 +20,7 @@
#include "InstanceScript.h"
#include "MapMgr.h"
#include "Transport.h"
#include "WorldStateDefines.h"
#include "halls_of_reflection.h"
class UtherBatteredHiltEvent : public BasicEvent
@@ -435,7 +436,7 @@ public:
c->HandleEmoteCommand(EMOTE_ONESHOT_EMERGE);
}
WaveNumber = 0;
DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 0);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 0);
// give quest
Map::PlayerList const& pl = instance->GetPlayers();
@@ -803,8 +804,8 @@ public:
if (WaveNumber >= 6)
bFinished5Waves = true;
DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 1);
DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, WaveNumber);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVE_COUNT, WaveNumber);
HandleGameObject(GO_FrontDoorGUID, false);
// some of them could go back to spawn due to vanish, etc.
@@ -869,8 +870,8 @@ public:
if (!WaveNumber)
return;
DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 0);
DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, 0);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVES_ENABLED, 0);
DoUpdateWorldState(WORLD_STATE_HALLS_OF_REFLECTION_WAVE_COUNT, 0);
HandleGameObject(GO_FrontDoorGUID, true);
TrashCounter = NUM_OF_TRASH;

View File

@@ -557,15 +557,6 @@ enum QuestsICC
QUEST_A_FEAST_OF_SOULS = 24547
};
enum WorldStatesICC
{
WORLDSTATE_SHOW_TIMER = 4903,
WORLDSTATE_EXECUTION_TIME = 4904,
WORLDSTATE_SHOW_ATTEMPTS = 4940,
WORLDSTATE_ATTEMPTS_REMAINING = 4941,
WORLDSTATE_ATTEMPTS_MAX = 4942,
};
enum PutricideEventFlags
{
PUTRICIDE_EVENT_FLAG_FESTERGUT_VALVE = 1,

View File

@@ -27,6 +27,7 @@
#include "Transport.h"
#include "WorldPacket.h"
#include "WorldSession.h"
#include "WorldStateDefines.h"
#include "icecrown_citadel.h"
enum EventIds
@@ -233,11 +234,11 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(5);
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, 1); // instance->IsHeroic() ? 1 : 0
packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
packet.Worldstates.emplace_back(WORLDSTATE_ATTEMPTS_MAX, MaxHeroicAttempts);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, BloodQuickeningState == IN_PROGRESS ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 1); // instance->IsHeroic() ? 1 : 0
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING, HeroicAttempts);
packet.Worldstates.emplace_back(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_MAX, MaxHeroicAttempts);
}
void OnPlayerAreaUpdate(Player* player, uint32 /*oldArea*/, uint32 newArea) override
@@ -252,7 +253,7 @@ public:
}
else
{
player->SendUpdateWorldState(WORLDSTATE_SHOW_ATTEMPTS, 0);
player->SendUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_ATTEMPTS, 0);
}
}
@@ -1021,7 +1022,7 @@ public:
if (drop && HeroicAttempts)
{
--HeroicAttempts;
DoUpdateWorldState(WORLDSTATE_ATTEMPTS_REMAINING, HeroicAttempts);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_ATTEMPTS_REMAINING, HeroicAttempts);
SaveToDB();
}
if (HeroicAttempts)
@@ -1350,13 +1351,13 @@ public:
case IN_PROGRESS:
Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
BloodQuickeningMinutes = 30;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
break;
case DONE:
Events.CancelEvent(EVENT_UPDATE_EXECUTION_TIME);
BloodQuickeningMinutes = 0;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 0);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 0);
break;
default:
break;
@@ -1616,8 +1617,8 @@ public:
if (BloodQuickeningState == IN_PROGRESS)
{
Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
}
data >> WeeklyQuestId10;
@@ -1695,13 +1696,13 @@ public:
if (BloodQuickeningMinutes)
{
Events.ScheduleEvent(EVENT_UPDATE_EXECUTION_TIME, 1min);
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 1);
DoUpdateWorldState(WORLDSTATE_EXECUTION_TIME, BloodQuickeningMinutes);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 1);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_EXECUTION_TIME, BloodQuickeningMinutes);
}
else
{
BloodQuickeningState = DONE;
DoUpdateWorldState(WORLDSTATE_SHOW_TIMER, 0);
DoUpdateWorldState(WORLD_STATE_ICECROWN_CITADEL_SHOW_TIMER, 0);
if (Creature* bq = instance->GetCreature(BloodQueenLanaThelGUID))
bq->AI()->DoAction(ACTION_KILL_MINCHAR);
}

View File

@@ -20,6 +20,7 @@
#include "LFGMgr.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "oculus.h"
@@ -112,13 +113,13 @@ public:
{
if (m_auiEncounter[DATA_DRAKOS] == DONE && m_auiEncounter[DATA_VAROS] != DONE)
{
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 1);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
}
else
{
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
player->SendUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 0);
player->SendUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 0);
}
}
@@ -136,8 +137,8 @@ public:
m_auiEncounter[DATA_DRAKOS] = data;
if (data == DONE)
{
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
if (instance->IsHeroic())
DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_MAKE_IT_COUNT_TIMED_EVENT);
@@ -147,7 +148,7 @@ public:
m_auiEncounter[DATA_VAROS] = data;
if (data == DONE)
{
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_SHOW, 0);
if (Creature* urom = instance->GetCreature(uiUromGUID))
urom->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
@@ -178,7 +179,7 @@ public:
if (CentrifugeCount < 10)
{
++CentrifugeCount;
DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
DoUpdateWorldState(WORLD_STATE_OCULUS_CENTRIFUGE_CONSTRUCT_AMOUNT, 10 - CentrifugeCount);
}
if (CentrifugeCount >= 10)
if (Creature* varos = instance->GetCreature(uiVarosGUID))

View File

@@ -97,12 +97,6 @@ enum AchievData
CRITERIA_RUBY_VOID = 7323,
};
enum OculusWorldStates
{
WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW = 3524,
WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT = 3486
};
enum MISC
{
POINT_MOVE_DRAKES

View File

@@ -22,6 +22,7 @@
#include "ScriptedCreature.h"
#include "Transport.h"
#include "WorldPacket.h"
#include "WorldStateDefines.h"
#include "WorldStatePackets.h"
#include "ulduar.h"
@@ -173,8 +174,8 @@ public:
void FillInitialWorldStates(WorldPackets::WorldState::InitWorldStates& packet) override
{
packet.Worldstates.reserve(2);
packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_TIMER_ENABLED, (m_algalonTimer && m_algalonTimer <= 60) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_ALGALON_DESPAWN_TIMER, std::min<int32>(m_algalonTimer, 60));
packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, (m_algalonTimer && m_algalonTimer <= 60) ? 1 : 0);
packet.Worldstates.emplace_back(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, std::min<int32>(m_algalonTimer, 60));
}
void OnPlayerEnter(Player* player) override
@@ -769,15 +770,15 @@ public:
SaveToDB();
return;
case DATA_DESPAWN_ALGALON:
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, 60);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, 60);
m_algalonTimer = 60;
_events.RescheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 1min);
SaveToDB();
return;
case DATA_ALGALON_SUMMON_STATE:
case DATA_ALGALON_DEFEATED:
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 0);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 0);
m_algalonTimer = (type == DATA_ALGALON_DEFEATED ? TIMER_ALGALON_DEFEATED : TIMER_ALGALON_SUMMONED);
_events.CancelEvent(EVENT_UPDATE_ALGALON_TIMER);
SaveToDB();
@@ -1148,8 +1149,8 @@ public:
if (m_algalonTimer && m_algalonTimer <= 60 && GetData(TYPE_ALGALON) != DONE)
{
DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, m_algalonTimer);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_TIMER_ENABLED, 1);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, m_algalonTimer);
}
data >> C_of_Ulduar_MASK;
@@ -1190,7 +1191,7 @@ public:
}
SaveToDB();
DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, --m_algalonTimer);
DoUpdateWorldState(WORLD_STATE_ULDUAR_ALGALON_DESPAWN_TIMER, --m_algalonTimer);
if (m_algalonTimer)
{
_events.Repeat(1min);

View File

@@ -276,10 +276,6 @@ enum UlduarMisc
ACTION_TOWER_OF_FLAMES_DESTROYED = 3,
ACTION_TOWER_OF_LIFE_DESTROYED = 4,
// Algalon the Observer
WORLD_STATE_ALGALON_DESPAWN_TIMER = 4131,
WORLD_STATE_ALGALON_TIMER_ENABLED = 4132,
EVENT_UPDATE_ALGALON_TIMER = 1,
ACTION_FEEDS_ON_TEARS_FAILED = 0,
ACTION_INIT_ALGALON = 1,

View File

@@ -19,6 +19,7 @@
#include "InstanceMapScript.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "WorldStateDefines.h"
#include "violet_hold.h"
enum vYells
@@ -235,7 +236,7 @@ public:
CLEANED = false;
InstanceCleanup();
}
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, (uint32)GateHealth);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, (uint32)GateHealth);
break;
case DATA_RELEASE_BOSS:
if (WaveCount == 6)
@@ -253,7 +254,7 @@ public:
m_auiEncounter[2] = DONE;
EncounterStatus = DONE;
HandleGameObject(GO_MainGateGUID, true);
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
if (Creature* c = instance->GetCreature(NPC_SinclariGUID))
{
c->AI()->Talk(SAY_SINCLARI_COMPLETE);
@@ -458,9 +459,9 @@ public:
}
GateHealth = 100;
HandleGameObject(GO_MainGateGUID, false);
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, (uint32)GateHealth);
DoUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, (uint32)WaveCount);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 1);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, (uint32)GateHealth);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, (uint32)WaveCount);
for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
if (GameObject* go = instance->GetGameObject(guid))
@@ -473,7 +474,7 @@ public:
break;
case EVENT_SUMMON_PORTAL:
++WaveCount;
DoUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, (uint32)WaveCount);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, (uint32)WaveCount);
SetData(DATA_PORTAL_LOCATION, (GetData(DATA_PORTAL_LOCATION) + urand(1, 5)) % 6);
if (Creature* c = instance->GetCreature(NPC_SinclariGUID))
{
@@ -527,12 +528,12 @@ public:
if (EncounterStatus == IN_PROGRESS)
{
plr->SendUpdateWorldState(WORLD_STATE_VH_SHOW, 1);
plr->SendUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, (uint32)GateHealth);
plr->SendUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, (uint32)WaveCount);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 1);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_PRISON_STATE, (uint32)GateHealth);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_WAVE_COUNT, (uint32)WaveCount);
}
else
plr->SendUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
plr->SendUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
}
@@ -625,7 +626,7 @@ public:
}
// reinitialize variables and events
DoUpdateWorldState(WORLD_STATE_VH_SHOW, 0);
DoUpdateWorldState(WORLD_STATE_VIOLET_HOLD_SHOW, 0);
EncounterStatus = NOT_STARTED;
GateHealth = 100;
WaveCount = 0;

View File

@@ -89,13 +89,6 @@ enum Bosses
BOSS_CYANIGOSA
};
enum VHWorldStates
{
WORLD_STATE_VH_SHOW = 3816,
WORLD_STATE_VH_PRISON_STATE = 3815,
WORLD_STATE_VH_WAVE_COUNT = 3810,
};
enum Spells
{
SPELL_CONTROL_CRYSTAL_ACTIVATION = 57804,

View File

@@ -307,7 +307,7 @@ public:
else
{
uint32 timer = wintergrasp->GetTimer() / 1000;
player->SendUpdateWorldState(4354, GameTime::GetGameTime().count() + timer);
player->SendUpdateWorldState(WORLD_STATE_BATTLEFIELD_WG_CLOCK_TEXTS, GameTime::GetGameTime().count() + timer);
if (timer < 15 * MINUTE)
{
AddGossipItemFor(player, WG_GOSSIP_MENU_QUEUE, 0, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF);