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, CurrentPvpSeasonId = 3191,
PreviousPvpSeasonId = 3901, PreviousPvpSeasonId = 3901,
TeamInInstanceAlliance = 4485,
TeamInInstanceHorde = 4486,
BattlefieldWgVehicleH = 3490, BattlefieldWgVehicleH = 3490,
BattlefieldWgMaxVehicleH = 3491, BattlefieldWgMaxVehicleH = 3491,
BattlefieldWgVehicleA = 3680, 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) 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 //lets initialize visibility distance for dungeons
InitVisibilityDistance(); InitVisibilityDistance();
// the timer is started by default, and stopped when the first player joins // 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 // this make sure it gets unloaded if for some reason no player joins
m_unloadTimer = (uint)Math.Max(WorldConfig.GetIntValue(WorldCfg.InstanceUnloadDelay), 1); 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() public override void InitVisibilityDistance()
@@ -5179,9 +5180,16 @@ namespace Game.Maps
return mapDiff != null ? mapDiff.GetRaidDuration() : 0; return mapDiff != null ? mapDiff.GetRaidDuration() : 0;
} }
public int GetTeamIdInInstance() { return scriptTeam; } public int GetTeamIdInInstance()
{
public Team GetTeamInInstance() { return scriptTeam == TeamId.Alliance ? Team.Alliance : Team.Horde; } 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() public uint GetScriptId()
{ {
@@ -5203,7 +5211,6 @@ namespace Game.Maps
InstanceScript i_data; InstanceScript i_data;
uint i_script_id; uint i_script_id;
int scriptTeam;
InstanceScenario i_scenario; InstanceScenario i_scenario;
bool m_resetAfterUnload; bool m_resetAfterUnload;
bool m_unloadWhenEmpty; bool m_unloadWhenEmpty;