Core/WorldStates: Add generic worldstates for team in instance

Port From (https://github.com/TrinityCore/TrinityCore/commit/c1eb91c1c174870026cf4750bafc8d04d182ade0)
This commit is contained in:
hondacrx
2022-07-25 22:06:49 -04:00
parent 3a746f931f
commit 45ba780516
2 changed files with 16 additions and 6 deletions
@@ -2994,6 +2994,9 @@ namespace Framework.Constants
CurrentPvpSeasonId = 3191,
PreviousPvpSeasonId = 3901,
TeamInInstanceAlliance = 4485,
TeamInInstanceHorde = 4486,
BattlefieldWgVehicleH = 3490,
BattlefieldWgMaxVehicleH = 3491,
BattlefieldWgVehicleA = 3680,
+13 -6
View File
@@ -4755,14 +4755,15 @@ namespace Game.Maps
{
public InstanceMap(uint id, long expiry, uint InstanceId, Difficulty spawnMode, int instanceTeam) : base(id, expiry, InstanceId, spawnMode)
{
scriptTeam = instanceTeam;
//lets initialize visibility distance for dungeons
InitVisibilityDistance();
// the timer is started by default, and stopped when the first player joins
// this make sure it gets unloaded if for some reason no player joins
m_unloadTimer = (uint)Math.Max(WorldConfig.GetIntValue(WorldCfg.InstanceUnloadDelay), 1);
Global.WorldStateMgr.SetValue(WorldStates.TeamInInstanceAlliance, instanceTeam == TeamId.Alliance ? 1 : 0, false, this);
Global.WorldStateMgr.SetValue(WorldStates.TeamInInstanceHorde, instanceTeam == TeamId.Horde ? 1 : 0, false, this);
}
public override void InitVisibilityDistance()
@@ -5179,9 +5180,16 @@ namespace Game.Maps
return mapDiff != null ? mapDiff.GetRaidDuration() : 0;
}
public int GetTeamIdInInstance() { return scriptTeam; }
public Team GetTeamInInstance() { return scriptTeam == TeamId.Alliance ? Team.Alliance : Team.Horde; }
public int GetTeamIdInInstance()
{
if (Global.WorldStateMgr.GetValue(WorldStates.TeamInInstanceAlliance, this) != 0)
return TeamId.Alliance;
if (Global.WorldStateMgr.GetValue(WorldStates.TeamInInstanceHorde, this) != 0)
return TeamId.Horde;
return TeamId.Neutral;
}
public Team GetTeamInInstance() { return GetTeamIdInInstance() == TeamId.Alliance ? Team.Alliance : Team.Horde; }
public uint GetScriptId()
{
@@ -5203,7 +5211,6 @@ namespace Game.Maps
InstanceScript i_data;
uint i_script_id;
int scriptTeam;
InstanceScenario i_scenario;
bool m_resetAfterUnload;
bool m_unloadWhenEmpty;