mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-17 02:50:29 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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] =
|
||||
{
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user