Core/WorldStates: Allow setting "hidden" field of SMSG_UPDATE_WORLD_STATE
This commit is contained in:
1 parent
12b60099f8
commit
0a5de93e82
24 files changed
+127
-125
No files matched your search
@@ -578,7 +578,7 @@ void InstanceScript::DoRespawnGameObject(ObjectGuid guid, uint32 timeToDespawn /
|
||||
|
||||
void InstanceScript::DoUpdateWorldState(int32 worldStateId, int32 value)
|
||||
{
|
||||
sWorldStateMgr->SetValue(worldStateId, value, instance);
|
||||
sWorldStateMgr->SetValue(worldStateId, value, false, instance);
|
||||
}
|
||||
|
||||
// Send Notify to all players in instance
|
||||
|
||||
@@ -3532,7 +3532,7 @@ int32 Map::GetWorldStateValue(int32 worldStateId) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Map::SetWorldStateValue(int32 worldStateId, int32 value)
|
||||
void Map::SetWorldStateValue(int32 worldStateId, int32 value, bool hidden)
|
||||
{
|
||||
auto itr = _worldStateValues.try_emplace(worldStateId, 0).first;
|
||||
int32 oldValue = itr->second;
|
||||
@@ -3546,6 +3546,7 @@ void Map::SetWorldStateValue(int32 worldStateId, int32 value)
|
||||
WorldPackets::WorldState::UpdateWorldState updateWorldState;
|
||||
updateWorldState.VariableID = worldStateId;
|
||||
updateWorldState.Value = value;
|
||||
updateWorldState.Hidden = hidden;
|
||||
updateWorldState.Write();
|
||||
|
||||
for (MapReference const& mapReference : m_mapRefManager)
|
||||
|
||||
@@ -742,7 +742,7 @@ class TC_GAME_API Map : public GridRefManager<NGridType>
|
||||
/*********************************************************/
|
||||
public:
|
||||
int32 GetWorldStateValue(int32 worldStateId) const;
|
||||
void SetWorldStateValue(int32 worldStateId, int32 value);
|
||||
void SetWorldStateValue(int32 worldStateId, int32 value, bool hidden);
|
||||
WorldStateValueContainer const& GetWorldStateValues() const { return _worldStateValues; }
|
||||
|
||||
private:
|
||||
|
||||
@@ -162,7 +162,7 @@ int32 WorldStateMgr::GetValue(int32 worldStateId, Map const* map) const
|
||||
return map->GetWorldStateValue(worldStateId);
|
||||
}
|
||||
|
||||
void WorldStateMgr::SetValue(int32 worldStateId, int32 value, Map* map)
|
||||
void WorldStateMgr::SetValue(int32 worldStateId, int32 value, bool hidden, Map* map)
|
||||
{
|
||||
WorldStateTemplate const* worldStateTemplate = GetWorldStateTemplate(worldStateId);
|
||||
if (!worldStateTemplate || worldStateTemplate->MapIds.empty())
|
||||
@@ -178,6 +178,7 @@ void WorldStateMgr::SetValue(int32 worldStateId, int32 value, Map* map)
|
||||
WorldPackets::WorldState::UpdateWorldState updateWorldState;
|
||||
updateWorldState.VariableID = worldStateId;
|
||||
updateWorldState.Value = value;
|
||||
updateWorldState.Hidden = hidden;
|
||||
sWorld->SendGlobalMessage(updateWorldState.Write());
|
||||
return;
|
||||
}
|
||||
@@ -185,7 +186,7 @@ void WorldStateMgr::SetValue(int32 worldStateId, int32 value, Map* map)
|
||||
if (worldStateTemplate->MapIds.find(map->GetId()) == worldStateTemplate->MapIds.end())
|
||||
return;
|
||||
|
||||
map->SetWorldStateValue(worldStateId, value);
|
||||
map->SetWorldStateValue(worldStateId, value, hidden);
|
||||
}
|
||||
|
||||
WorldStateValueContainer WorldStateMgr::GetInitialWorldStatesForMap(Map const* map) const
|
||||
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
WorldStateTemplate const* GetWorldStateTemplate(int32 worldStateId) const;
|
||||
|
||||
int32 GetValue(int32 worldStateId, Map const* map) const;
|
||||
void SetValue(int32 worldStateId, int32 value, Map* map);
|
||||
void SetValue(int32 worldStateId, int32 value, bool hidden, Map* map);
|
||||
|
||||
WorldStateValueContainer GetInitialWorldStatesForMap(Map const* map) const;
|
||||
|
||||
|
||||
@@ -315,14 +315,14 @@ bool BattlefieldTB::SetupBattlefield()
|
||||
// Set defender team
|
||||
SetDefenderTeam(TeamId(sWorld->getWorldState(WS_BATTLEFIELD_TB_FACTION_CONTROLLING) - 1));
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, GetDefenderTeam() + 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_ALLIANCE, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_HORDE, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, GetDefenderTeam() + 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_ALLIANCE, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_HORDE, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, false, m_Map);
|
||||
|
||||
SaveWorldStateValues();
|
||||
|
||||
@@ -473,7 +473,7 @@ void BattlefieldTB::OnStartGrouping()
|
||||
{
|
||||
UpdateNPCsAndGameObjects();
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, 1, false, m_Map);
|
||||
|
||||
// Teleport players out of questing area
|
||||
for (uint8 team = 0; team < BG_TEAMS_COUNT; ++team)
|
||||
@@ -491,35 +491,35 @@ void BattlefieldTB::OnBattleStart()
|
||||
|
||||
UpdateNPCsAndGameObjects();
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW, 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, GetAttackerTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, GetAttackerTeam() == TEAM_HORDE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, GetAttackerTeam() == TEAM_ALLIANCE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, GetAttackerTeam() == TEAM_HORDE ? 1 : 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW, 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_BATTLE, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_PREPARATIONS, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_BATTLE, 1, false, m_Map);
|
||||
|
||||
// Towers/spires
|
||||
for (uint8 i = 0; i < TB_TOWERS_COUNT; i++)
|
||||
{
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsIntact[GetDefenderTeam()], 1, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsDamaged[GetDefenderTeam()], 0, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsDestroyed, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsDamaged[GetAttackerTeam()], 0, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsIntact[GetAttackerTeam()], 0, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsIntact[GetDefenderTeam()], 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsDamaged[GetDefenderTeam()], 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsDestroyed, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsDamaged[GetAttackerTeam()], 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[i].wsIntact[GetAttackerTeam()], 0, false, m_Map);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -557,24 +557,24 @@ void BattlefieldTB::OnBattleEnd(bool endByTimer)
|
||||
warnedTwoMinutes = false;
|
||||
warnedOneMinute = false;
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END_SHOW, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, GameTime::GetGameTime() + m_NoWarBattleTime / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE_SHOW, 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_NEXT_BATTLE, GameTime::GetGameTime() + m_NoWarBattleTime / IN_MILLISECONDS, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_ATTACKING_SHOW, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_ATTACKING_SHOW, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, GetDefenderTeam() + 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_ALLIANCE, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_HORDE, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_FACTION_CONTROLLING, GetDefenderTeam() + 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_ALLIANCE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_HORDE_CONTROLS_SHOW, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_ALLIANCE, GetDefenderTeam() == TEAM_ALLIANCE ? 1 : 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_KEEP_HORDE, GetDefenderTeam() == TEAM_HORDE ? 1 : 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED_SHOW, 0, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_BATTLE, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_STATE_BATTLE, 0, false, m_Map);
|
||||
}
|
||||
|
||||
void BattlefieldTB::UpdateNPCsAndGameObjects()
|
||||
@@ -852,8 +852,8 @@ void BattlefieldTB::TowerDamaged(TBTowerId tbTowerId)
|
||||
|
||||
SetData(BATTLEFIELD_TB_DATA_TOWERS_INTACT, GetData(BATTLEFIELD_TB_DATA_TOWERS_INTACT) - 1);
|
||||
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsIntact[GetDefenderTeam()], 0, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()], 1, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsIntact[GetDefenderTeam()], 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()], 1, false, m_Map);
|
||||
|
||||
TeamCastSpell(GetAttackerTeam(), SPELL_REWARD_TOWER_DAMAGED);
|
||||
}
|
||||
@@ -865,16 +865,16 @@ void BattlefieldTB::TowerDestroyed(TBTowerId tbTowerId)
|
||||
|
||||
// Add 5 minute bonus time
|
||||
m_Timer += m_BonusTime;
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TIME_BATTLE_END, GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
|
||||
SendWarning(TBTowers[tbTowerId].textDestroyed);
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW, 1, m_Map);
|
||||
int32 towersDestroyed = sWorldStateMgr->GetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, m_Map) + 1;
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, towersDestroyed, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED_SHOW, 1, false, m_Map);
|
||||
int32 towersDestroyed = sWorldStateMgr->GetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED,m_Map) + 1;
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_TOWERS_DESTROYED, towersDestroyed, false, m_Map);
|
||||
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()], 0, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDestroyed, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDamaged[GetDefenderTeam()], 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(TBTowers[tbTowerId].wsDestroyed, 1, false, m_Map);
|
||||
|
||||
// Attack bonus buff
|
||||
for (ObjectGuid const& guid : m_PlayersInWar[GetAttackerTeam()])
|
||||
@@ -893,7 +893,7 @@ void BattlefieldTB::UpdateCapturedBaseCount()
|
||||
if (itr->second->GetTeamId() == GetAttackerTeam())
|
||||
numCapturedBases += 1;
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, numCapturedBases, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_TB_BUILDINGS_CAPTURED, numCapturedBases, false, m_Map);
|
||||
|
||||
// Check if attackers won
|
||||
if (numCapturedBases == TB_BASE_COUNT)
|
||||
@@ -948,15 +948,15 @@ void TolBaradCapturePoint::SendChangePhase()
|
||||
{
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE:
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE:
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsControlled[GetTeamId()], 0, m_Bf->GetMap());
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsControlled[GetTeamId()], 0, false, m_Bf->GetMap());
|
||||
break;
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], 0, m_Bf->GetMap());
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], 0, false, m_Bf->GetMap());
|
||||
break;
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], 0, m_Bf->GetMap());
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], 0, false, m_Bf->GetMap());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -968,21 +968,21 @@ void TolBaradCapturePoint::SendChangePhase()
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE:
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE:
|
||||
m_Bf->SendWarning(TBCapturePoints[iBase].textGained[GetTeamId()]);
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsControlled[GetTeamId()], 1, m_Bf->GetMap());
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsControlled[GetTeamId()], 1, false, m_Bf->GetMap());
|
||||
GetCapturePointGo()->SetGoArtKit(GetTeamId() == TEAM_ALLIANCE ? TB_GO_ARTKIT_FLAG_ALLIANCE : TB_GO_ARTKIT_FLAG_HORDE);
|
||||
break;
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
|
||||
m_Bf->SendWarning(TBCapturePoints[iBase].textLost[TEAM_HORDE]);
|
||||
[[fallthrough]];
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], 1, m_Bf->GetMap());
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_ALLIANCE], 1, false, m_Bf->GetMap());
|
||||
GetCapturePointGo()->SetGoArtKit(TB_GO_ARTKIT_FLAG_NONE);
|
||||
break;
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
|
||||
m_Bf->SendWarning(TBCapturePoints[iBase].textLost[TEAM_ALLIANCE]);
|
||||
[[fallthrough]];
|
||||
case BF_CAPTUREPOINT_OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], 1, m_Bf->GetMap());
|
||||
sWorldStateMgr->SetValue(TBCapturePoints[iBase].wsCapturing[TEAM_HORDE], 1, false, m_Bf->GetMap());
|
||||
GetCapturePointGo()->SetGoArtKit(TB_GO_ARTKIT_FLAG_NONE);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -466,14 +466,14 @@ bool BattlefieldWG::SetupBattlefield()
|
||||
|
||||
auto loadSavedWorldState = [&](int32 id)
|
||||
{
|
||||
sWorldStateMgr->SetValue(id, sWorld->getWorldState(id), m_Map);
|
||||
sWorldStateMgr->SetValue(id, sWorld->getWorldState(id), false, m_Map);
|
||||
};
|
||||
|
||||
loadSavedWorldState(WS_BATTLEFIELD_WG_SHOW_TIME_NEXT_BATTLE);
|
||||
loadSavedWorldState(WS_BATTLEFIELD_WG_DEFENDER);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_ATTACKER, GetAttackerTeam(), m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[0], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[1], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_ATTACKER, GetAttackerTeam(), false, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[0], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[1], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
loadSavedWorldState(WS_BATTLEFIELD_WG_ATTACKED_A);
|
||||
loadSavedWorldState(WS_BATTLEFIELD_WG_DEFENDED_A);
|
||||
loadSavedWorldState(WS_BATTLEFIELD_WG_ATTACKED_H);
|
||||
@@ -593,11 +593,11 @@ void BattlefieldWG::OnBattleStart()
|
||||
else
|
||||
TC_LOG_ERROR("bg.battlefield", "WG: Failed to spawn titan relic.");
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_ATTACKER, GetAttackerTeam(), m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_DEFENDER, GetDefenderTeam(), m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_NEXT_BATTLE, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_BATTLE_END, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[0], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_ATTACKER, GetAttackerTeam(), false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_DEFENDER, GetDefenderTeam(), false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_NEXT_BATTLE, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_BATTLE_END, 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[0], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
|
||||
// Update tower visibility and update faction
|
||||
for (auto itr = CanonList.begin(); itr != CanonList.end(); ++itr)
|
||||
@@ -685,12 +685,12 @@ void BattlefieldWG::OnBattleEnd(bool endByTimer)
|
||||
else
|
||||
worldStateId = GetDefenderTeam() == TEAM_HORDE ? WS_BATTLEFIELD_WG_ATTACKED_H : WS_BATTLEFIELD_WG_ATTACKED_A;
|
||||
|
||||
sWorldStateMgr->SetValue(worldStateId, sWorldStateMgr->GetValue(worldStateId, m_Map) + 1, m_Map);
|
||||
sWorldStateMgr->SetValue(worldStateId, sWorldStateMgr->GetValue(worldStateId, m_Map) + 1, false, m_Map);
|
||||
}
|
||||
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_NEXT_BATTLE, 1, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_BATTLE_END, 0, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[1], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_NEXT_BATTLE, 1, false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_SHOW_TIME_BATTLE_END, 0, false, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[1], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
|
||||
// Remove turret
|
||||
for (auto itr = CanonList.begin(); itr != CanonList.end(); ++itr)
|
||||
@@ -1214,7 +1214,7 @@ void BattlefieldWG::UpdatedDestroyedTowerCount(TeamId team)
|
||||
m_Timer = 0;
|
||||
else
|
||||
m_Timer -= 600000;
|
||||
sWorldStateMgr->SetValue(ClockWorldState[0], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, m_Map);
|
||||
sWorldStateMgr->SetValue(ClockWorldState[0], GameTime::GetGameTime() + m_Timer / IN_MILLISECONDS, false, m_Map);
|
||||
}
|
||||
}
|
||||
else // Keep tower
|
||||
@@ -1272,10 +1272,10 @@ void BattlefieldWG::UpdateDamagedTowerCount(TeamId team)
|
||||
// Update vehicle count WorldState to player
|
||||
void BattlefieldWG::UpdateVehicleCountWG()
|
||||
{
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H), m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H), m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A), m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A), m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_VEHICLE_H), false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_MAX_VEHICLE_H, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_H), false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_VEHICLE_A), false, m_Map);
|
||||
sWorldStateMgr->SetValue(WS_BATTLEFIELD_WG_MAX_VEHICLE_A, GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A), false, m_Map);
|
||||
}
|
||||
|
||||
void BattlefieldWG::UpdateTenacity()
|
||||
@@ -1411,7 +1411,7 @@ void BfWGGameObjectBuilding::Rebuild()
|
||||
|
||||
// Update worldstate
|
||||
_state = WintergraspGameObjectState(BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT - (_teamControl * 3));
|
||||
sWorldStateMgr->SetValue(_worldState, _state, _wg->GetMap());
|
||||
sWorldStateMgr->SetValue(_worldState, _state, false, _wg->GetMap());
|
||||
}
|
||||
UpdateCreatureAndGo();
|
||||
build->SetFaction(WintergraspFaction[_teamControl]);
|
||||
@@ -1422,7 +1422,7 @@ void BfWGGameObjectBuilding::Damaged()
|
||||
{
|
||||
// Update worldstate
|
||||
_state = WintergraspGameObjectState(BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DAMAGE - (_teamControl * 3));
|
||||
sWorldStateMgr->SetValue(_worldState, _state, _wg->GetMap());
|
||||
sWorldStateMgr->SetValue(_worldState, _state, false, _wg->GetMap());
|
||||
|
||||
// Send warning message
|
||||
if (_staticTowerInfo)
|
||||
@@ -1446,7 +1446,7 @@ void BfWGGameObjectBuilding::Destroyed()
|
||||
{
|
||||
// Update worldstate
|
||||
_state = WintergraspGameObjectState(BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_DESTROY - (_teamControl * 3));
|
||||
sWorldStateMgr->SetValue(_worldState, _state, _wg->GetMap());
|
||||
sWorldStateMgr->SetValue(_worldState, _state, false, _wg->GetMap());
|
||||
|
||||
// Warn players
|
||||
if (_staticTowerInfo)
|
||||
@@ -1501,7 +1501,7 @@ void BfWGGameObjectBuilding::Init(GameObject* go)
|
||||
}
|
||||
|
||||
_state = WintergraspGameObjectState(sWorld->getWorldState(_worldState));
|
||||
sWorldStateMgr->SetValue(_worldState, _state, _wg->GetMap());
|
||||
sWorldStateMgr->SetValue(_worldState, _state, false, _wg->GetMap());
|
||||
switch (_state)
|
||||
{
|
||||
case BATTLEFIELD_WG_OBJECTSTATE_NEUTRAL_INTACT:
|
||||
@@ -1754,7 +1754,7 @@ void WintergraspWorkshop::GiveControlTo(TeamId teamId, bool init /*= false*/)
|
||||
{
|
||||
// Updating worldstate
|
||||
_state = BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT;
|
||||
sWorldStateMgr->SetValue(_staticInfo->WorldStateId, _state, _wg->GetMap());
|
||||
sWorldStateMgr->SetValue(_staticInfo->WorldStateId, _state, false, _wg->GetMap());
|
||||
|
||||
// Warning message
|
||||
if (!init)
|
||||
@@ -1772,7 +1772,7 @@ void WintergraspWorkshop::GiveControlTo(TeamId teamId, bool init /*= false*/)
|
||||
{
|
||||
// Update worldstate
|
||||
_state = BATTLEFIELD_WG_OBJECTSTATE_HORDE_INTACT;
|
||||
sWorldStateMgr->SetValue(_staticInfo->WorldStateId, _state, _wg->GetMap());
|
||||
sWorldStateMgr->SetValue(_staticInfo->WorldStateId, _state, false, _wg->GetMap());
|
||||
|
||||
// Warning message
|
||||
if (!init)
|
||||
|
||||
@@ -333,7 +333,7 @@ struct boss_ascendant_council_controller final : public BossAI
|
||||
break;
|
||||
|
||||
instance->SetBossState(DATA_ASCENDANT_COUNCIL, IN_PROGRESS);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_ELEMENTARY, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_ELEMENTARY, 0);
|
||||
|
||||
if (Creature* feludius = instance->GetCreature(DATA_FELUDIUS))
|
||||
{
|
||||
@@ -1325,7 +1325,7 @@ struct npc_elementium_monstrosity final : public ScriptedAI
|
||||
{
|
||||
++_liquidIceCount;
|
||||
if (_liquidIceCount == 2)
|
||||
_instance->instance->SetWorldStateValue(WORLD_STATE_ID_ELEMENTARY, 1);
|
||||
_instance->DoUpdateWorldState(WORLD_STATE_ID_ELEMENTARY, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ namespace CorruptionHandler
|
||||
if (power > CORRUPTION_ACHIEVEMENT_CAP)
|
||||
if (InstanceScript* instance = target->GetInstanceScript())
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_THE_ABYSS_WILL_GAZE_BACK_INTO_YOU))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_THE_ABYSS_WILL_GAZE_BACK_INTO_YOU, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_THE_ABYSS_WILL_GAZE_BACK_INTO_YOU, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,7 +299,7 @@ struct boss_chogall final : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_THE_ABYSS_WILL_GAZE_BACK_INTO_YOU, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_THE_ABYSS_WILL_GAZE_BACK_INTO_YOU, 0);
|
||||
DoCastSelf(SPELL_CORRUPTED_BLOOD);
|
||||
events.SetPhase(PHASE_1);
|
||||
events.ScheduleEvent(EVENT_FURY_OF_CHOGALL, 33s);
|
||||
|
||||
@@ -170,7 +170,7 @@ struct boss_halfus_wyrmbreaker final : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_THE_ONLY_ESCAPE, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_THE_ONLY_ESCAPE, 0);
|
||||
events.ScheduleEvent(EVENT_BERSERK, 10min);
|
||||
|
||||
if (Creature* protoBehemoth = instance->GetCreature(DATA_PROTO_BEHEMOTH))
|
||||
@@ -237,13 +237,13 @@ struct boss_halfus_wyrmbreaker final : public BossAI
|
||||
if (_theOnlyEscapeAchievementState == NOT_STARTED)
|
||||
{
|
||||
_theOnlyEscapeAchievementState = IN_PROGRESS;
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_THE_ONLY_ESCAPE, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_THE_ONLY_ESCAPE, 1);
|
||||
events.ScheduleEvent(EVENT_RESET_ACHIEVEMT, Seconds(10));
|
||||
}
|
||||
else if (_theOnlyEscapeAchievementState == IN_PROGRESS)
|
||||
{
|
||||
_theOnlyEscapeAchievementState = DONE;
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_THE_ONLY_ESCAPE, 2);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_THE_ONLY_ESCAPE, 2);
|
||||
events.CancelEvent(EVENT_RESET_ACHIEVEMT);
|
||||
}
|
||||
break;
|
||||
|
||||
+2
-2
@@ -109,7 +109,7 @@ struct boss_ascendant_lord_obsidius : public BossAI
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_ASCENDANT_DESCENDING, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_ASCENDANT_DESCENDING, 0);
|
||||
Talk(SAY_AGGRO);
|
||||
events.ScheduleEvent(EVENT_STONE_BLOW, 8s);
|
||||
events.ScheduleEvent(EVENT_TWILIGHT_CORRUPTION, 12s);
|
||||
@@ -321,7 +321,7 @@ class spell_obsidius_crepuscular_veil : public SpellScript
|
||||
if (aura->GetStackAmount() == GetSpellInfo()->StackAmount)
|
||||
if (InstanceScript* instance = target->GetInstanceScript())
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_ASCENDANT_DESCENDING))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_ASCENDANT_DESCENDING, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_ASCENDANT_DESCENDING, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
+2
-2
@@ -205,7 +205,7 @@ struct boss_atramedes : public BossAI
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_SILENCE_IS_GOLDEN, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_SILENCE_IS_GOLDEN, 0);
|
||||
Talk(SAY_AGGRO);
|
||||
DoCastSelf(SPELL_DEVASTATION_TRIGGER);
|
||||
DoCastSelf(SPELL_SOUND_BAR);
|
||||
@@ -915,7 +915,7 @@ class spell_atramedes_sound_bar : public AuraScript
|
||||
}
|
||||
else if (target->GetPower(POWER_ALTERNATE_POWER) >= 50)
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_SILENCE_IS_GOLDEN))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_SILENCE_IS_GOLDEN, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_SILENCE_IS_GOLDEN, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
+2
-2
@@ -150,7 +150,7 @@ struct boss_chimaeron : public BossAI
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_FULL_OF_SOUND_AND_FURY, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_FULL_OF_SOUND_AND_FURY, 0);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
events.SetPhase(PHASE_1);
|
||||
events.ScheduleEvent(EVENT_CAUSTIC_SLIME, 5s, 0, PHASE_1);
|
||||
@@ -212,7 +212,7 @@ struct boss_chimaeron : public BossAI
|
||||
{
|
||||
_killedPlayerCount++;
|
||||
if (_killedPlayerCount == 3)
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_FULL_OF_SOUND_AND_FURY, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_FULL_OF_SOUND_AND_FURY, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -235,7 +235,7 @@ struct boss_magmaw : public BossAI
|
||||
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, FRAME_PRIORITY_MAGMAW);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_PARASITE_EVENING, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_PARASITE_EVENING, 0);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
|
||||
events.SetPhase(PHASE_COMBAT);
|
||||
@@ -702,7 +702,7 @@ struct npc_magmaw_lava_parasite : public ScriptedAI
|
||||
me->SetReactState(REACT_PASSIVE);
|
||||
me->DespawnOrUnsummon(4s);
|
||||
if (!_instance->instance->GetWorldStateValue(WORLD_STATE_ID_PARASITE_EVENING))
|
||||
_instance->instance->SetWorldStateValue(WORLD_STATE_ID_PARASITE_EVENING, 1);
|
||||
_instance->DoUpdateWorldState(WORLD_STATE_ID_PARASITE_EVENING, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -785,7 +785,7 @@ struct boss_nefarians_end : public BossAI
|
||||
break;
|
||||
case EVENT_LAND_PHASE_THREE:
|
||||
if (me->GetHealthPct() > 50.f)
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_KEEPING_IT_IN_THE_FAMILY, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_KEEPING_IT_IN_THE_FAMILY, 0);
|
||||
|
||||
me->RemoveAurasDueToSpell(SPELL_NEFARIAN_PHASE_2_HEALTH_AURA);
|
||||
me->SendSetPlayHoverAnim(true);
|
||||
@@ -930,7 +930,7 @@ struct npc_nefarians_end_onyxia : public ScriptedAI
|
||||
if (_instance->GetBossState(DATA_NEFARIANS_END) != IN_PROGRESS)
|
||||
{
|
||||
_instance->SetBossState(DATA_NEFARIANS_END, IN_PROGRESS);
|
||||
_instance->instance->SetWorldStateValue(WORLD_STATE_ID_KEEPING_IT_IN_THE_FAMILY, 1);
|
||||
_instance->DoUpdateWorldState(WORLD_STATE_ID_KEEPING_IT_IN_THE_FAMILY, 1);
|
||||
}
|
||||
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, FRAME_INDEX_ONYXIA);
|
||||
|
||||
+8
-8
@@ -302,10 +302,10 @@ struct boss_omnotron_defense_system : public BossAI
|
||||
break;
|
||||
case ACTION_START_ENCOUNTER:
|
||||
instance->SetBossState(DATA_OMNOTRON_DEFENSE_SYSTEM, IN_PROGRESS);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_STATIC_SHOCK, 0);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_POISON_BOMB, 0);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_ARCANE_ANNIHILATOR, 0);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_FLAMETHROWER, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_STATIC_SHOCK, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_POISON_BOMB, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_ARCANE_ANNIHILATOR, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_FLAMETHROWER, 0);
|
||||
|
||||
if (IsHeroic())
|
||||
DoSummon(NPC_LORD_VICTOR_NEFARIUS_OMNOTRON, LordVictorNefariusSummonPosition, 0, TEMPSUMMON_MANUAL_DESPAWN);
|
||||
@@ -921,7 +921,7 @@ struct npc_omnotron_arcanotron : public ScriptedAI
|
||||
{
|
||||
if (spell->Id == SPELL_ARCANE_ANNIHILATION)
|
||||
if (!_instance->instance->GetWorldStateValue(WORLD_STATE_ID_ARCANE_ANNIHILATOR))
|
||||
_instance->instance->SetWorldStateValue(WORLD_STATE_ID_ARCANE_ANNIHILATOR, 1);
|
||||
_instance->DoUpdateWorldState(WORLD_STATE_ID_ARCANE_ANNIHILATOR, 1);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -1151,7 +1151,7 @@ struct npc_omnotron_poison_bomb : public ScriptedAI
|
||||
{
|
||||
if (InstanceScript* instance = me->GetInstanceScript())
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_POISON_BOMB))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_POISON_BOMB, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_POISON_BOMB, 1);
|
||||
|
||||
DoCastSelf(SPELL_POISON_BOMB_DAMAGE, true);
|
||||
DoCastSelf(SPELL_POISON_BOMB_SUMMON_PUDDLE, true);
|
||||
@@ -1372,7 +1372,7 @@ class spell_omnotron_unstable_shield : public AuraScript
|
||||
|
||||
if (InstanceScript* instance = caster->GetInstanceScript())
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_STATIC_SHOCK))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_STATIC_SHOCK, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_STATIC_SHOCK, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -1549,7 +1549,7 @@ class spell_omnotron_flamethrower : public SpellScript
|
||||
if (targets.size() >= 2)
|
||||
if (InstanceScript* instance = GetCaster()->GetInstanceScript())
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_FLAMETHROWER))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_FLAMETHROWER, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_FLAMETHROWER, 1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -141,7 +141,7 @@ struct boss_erudax : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_DONT_NEED_TO_BREAK_EGGS, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_DONT_NEED_TO_BREAK_EGGS, 0);
|
||||
events.ScheduleEvent(EVENT_BINDING_SHADOWS, 10s + 500ms);
|
||||
events.ScheduleEvent(EVENT_ENFEEBLING_BLOW, 19s);
|
||||
events.ScheduleEvent(EVENT_SHADOW_GALE, 26s);
|
||||
@@ -367,7 +367,7 @@ struct npc_erudax_faceless_corruptor : public ScriptedAI
|
||||
break;
|
||||
case EVENT_TWILIGHT_CORRUPTION:
|
||||
// Fail achievement by setting the required world state to 1 (0 is required for successful achievement)
|
||||
_instance->instance->SetWorldStateValue(WORLD_STATE_ID_DONT_NEED_TO_BREAK_EGGS, 1);
|
||||
_instance->DoUpdateWorldState(WORLD_STATE_ID_DONT_NEED_TO_BREAK_EGGS, 1);
|
||||
DoCastAOE(SPELL_TWILIGHT_CORRUPTION);
|
||||
break;
|
||||
case EVENT_UMBRAL_MENDING:
|
||||
|
||||
@@ -86,7 +86,7 @@ struct boss_baron_ashbury : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_PARDON_DENIED, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_PARDON_DENIED, 0);
|
||||
|
||||
events.ScheduleEvent(EVENT_ASPHYXIATE, IsHeroic() ? 20s + 500ms : 15s + 500ms);
|
||||
events.ScheduleEvent(EVENT_PAIN_AND_SUFFERING, 6s);
|
||||
@@ -115,7 +115,7 @@ struct boss_baron_ashbury : public BossAI
|
||||
return;
|
||||
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_PARDON_DENIED))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_PARDON_DENIED, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_PARDON_DENIED, 1);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*attacker*/, uint32& damage) override
|
||||
|
||||
@@ -510,7 +510,7 @@ public:
|
||||
|
||||
if (InstanceScript* instance = target->GetInstanceScript())
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_TO_THE_GROUND))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_TO_THE_GROUND, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_TO_THE_GROUND, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ public:
|
||||
case MAP_EVENT_AZURE_DRAGONSHRINE_ENTERED:
|
||||
if (GetBossState(DATA_ECHO_OF_JAINA) == DONE)
|
||||
break;
|
||||
instance->SetWorldStateValue(WORLD_STATE_ID_SHOW_COLLECTED_STAVE_FRAGMENTS, 1);
|
||||
DoUpdateWorldState(WORLD_STATE_ID_SHOW_COLLECTED_STAVE_FRAGMENTS, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -198,7 +198,7 @@ public:
|
||||
case DATA_ECHO_OF_JAINA:
|
||||
if (state == IN_PROGRESS)
|
||||
{
|
||||
instance->SetWorldStateValue(WORLD_STATE_ID_SHOW_COLLECTED_STAVE_FRAGMENTS, 0);
|
||||
DoUpdateWorldState(WORLD_STATE_ID_SHOW_COLLECTED_STAVE_FRAGMENTS, 0);
|
||||
if (Creature* circle = GetCreature(DATA_ARCANE_CIRCLE))
|
||||
circle->DespawnOrUnsummon();
|
||||
}
|
||||
@@ -219,7 +219,7 @@ public:
|
||||
break;
|
||||
|
||||
++_collectedStaffFragments;
|
||||
instance->SetWorldStateValue(WORLD_STATE_ID_COLLECTED_STAVE_FRAGMENTS, _collectedStaffFragments);
|
||||
DoUpdateWorldState(WORLD_STATE_ID_COLLECTED_STAVE_FRAGMENTS, _collectedStaffFragments);
|
||||
|
||||
if (_collectedStaffFragments < 16)
|
||||
{
|
||||
|
||||
@@ -243,7 +243,7 @@ struct boss_lord_rhyolith : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_ENGAGE, who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
|
||||
me->GetMap()->SetWorldStateValue(WORLD_STATE_ID_NOT_AN_AMBI_TURNER, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_NOT_AN_AMBI_TURNER, 0);
|
||||
|
||||
uint8 frameIndex = 2;
|
||||
for (uint32 type : { DATA_LEFT_FOOT, DATA_RIGHT_FOOT })
|
||||
@@ -536,7 +536,7 @@ struct boss_lord_rhyolith : public BossAI
|
||||
|
||||
if (!_achievementFailed && _currentBalance < CENTER_BALANCE)
|
||||
{
|
||||
me->GetMap()->SetWorldStateValue(WORLD_STATE_ID_NOT_AN_AMBI_TURNER, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_NOT_AN_AMBI_TURNER, 1);
|
||||
_achievementFailed = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@ struct boss_rajh : public BossAI
|
||||
BossAI::JustEngagedWith(who);
|
||||
Talk(SAY_AGGRO);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_SUN_OF_A, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_SUN_OF_A, 0);
|
||||
me->SetReactState(REACT_AGGRESSIVE);
|
||||
_randomTimerCase = RAND(0, 1);
|
||||
events.ScheduleEvent(EVENT_SOLAR_WINDS, 5s);
|
||||
@@ -226,7 +226,7 @@ struct boss_rajh : public BossAI
|
||||
break;
|
||||
case EVENT_REENGAGE:
|
||||
if (!instance->instance->GetWorldStateValue(WORLD_STATE_ID_SUN_OF_A))
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_SUN_OF_A, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_SUN_OF_A, 1);
|
||||
_energized = true;
|
||||
_randomTimerCase = RAND(0, 1);
|
||||
events.ScheduleEvent(EVENT_SOLAR_WINDS, 5s);
|
||||
|
||||
@@ -105,7 +105,7 @@ struct boss_temple_guardian_anhuur : public BossAI
|
||||
{
|
||||
BossAI::JustEngagedWith(who);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_I_HATE_THAT_SONG, 0);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_I_HATE_THAT_SONG, 0);
|
||||
Talk(SAY_AGGRO);
|
||||
events.SetPhase(PHASE_FIGHT);
|
||||
events.ScheduleEvent(EVENT_DIVINE_RECKONING, 10s, 0, PHASE_FIGHT);
|
||||
@@ -235,7 +235,7 @@ struct boss_temple_guardian_anhuur : public BossAI
|
||||
instance->SetData(DATA_HANDLE_BEAM_OF_LIGHT, IN_PROGRESS);
|
||||
break;
|
||||
case EVENT_ACHIEVEMENT_FAILED:
|
||||
instance->instance->SetWorldStateValue(WORLD_STATE_ID_I_HATE_THAT_SONG, 1);
|
||||
instance->DoUpdateWorldState(WORLD_STATE_ID_I_HATE_THAT_SONG, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -470,7 +470,7 @@ class instance_halls_of_origination : public InstanceMapScript
|
||||
anraphet->AI()->DoAction(ACTION_ANRAPHET_INTRO);
|
||||
break;
|
||||
case EVENT_FAIL_VAULTS_OF_LIGHT_ACHIEVEMENT:
|
||||
instance->SetWorldStateValue(WORLD_STATE_ID_FASTER_THAN_THE_SPEED_OF_LIGHT, 1);
|
||||
DoUpdateWorldState(WORLD_STATE_ID_FASTER_THAN_THE_SPEED_OF_LIGHT, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in new issue
Block a user