diff --git a/Subsurface/Source/Events/Missions/CombatMission.cs b/Subsurface/Source/Events/Missions/CombatMission.cs index 08360dd2a..a010effed 100644 --- a/Subsurface/Source/Events/Missions/CombatMission.cs +++ b/Subsurface/Source/Events/Missions/CombatMission.cs @@ -90,7 +90,7 @@ namespace Barotrauma return teamNames[teamID]; } - public override bool AssignTeamIDs(List clients, out int hostTeam) + public override bool AssignTeamIDs(List clients, out byte hostTeam) { List randList = new List(clients); for (int i = 0; i < randList.Count; i++) @@ -115,7 +115,7 @@ namespace Barotrauma } if (halfPlayers * 2 == randList.Count) { - hostTeam = Rand.Range(1, 2); + hostTeam = (byte)Rand.Range(1, 2); } else if (halfPlayers * 2 < randList.Count) { diff --git a/Subsurface/Source/Events/Missions/Mission.cs b/Subsurface/Source/Events/Missions/Mission.cs index 119957f6a..fe90876ea 100644 --- a/Subsurface/Source/Events/Missions/Mission.cs +++ b/Subsurface/Source/Events/Missions/Mission.cs @@ -230,7 +230,7 @@ namespace Barotrauma public virtual void Update(float deltaTime) { } - public virtual bool AssignTeamIDs(List clients, out int hostTeam) + public virtual bool AssignTeamIDs(List clients, out byte hostTeam) { clients.ForEach(c => c.TeamID = 1); hostTeam = 1; diff --git a/Subsurface/Source/Networking/GameServer.cs b/Subsurface/Source/Networking/GameServer.cs index 46dc35c43..88131ded2 100644 --- a/Subsurface/Source/Networking/GameServer.cs +++ b/Subsurface/Source/Networking/GameServer.cs @@ -914,7 +914,7 @@ namespace Barotrauma.Networking if (outmsg.LengthBytes > config.MaximumTransmissionUnit) { - DebugConsole.ThrowError("Maximum packet size exceeded (" + outmsg.LengthBytes + " > " + config.MaximumTransmissionUnit); + DebugConsole.ThrowError("Maximum packet size exceeded (" + outmsg.LengthBytes + " > " + config.MaximumTransmissionUnit + ")"); } server.SendMessage(outmsg, c.Connection, NetDeliveryMethod.Unreliable); @@ -989,7 +989,7 @@ namespace Barotrauma.Networking if (outmsg.LengthBytes > config.MaximumTransmissionUnit) { - DebugConsole.ThrowError("Maximum packet size exceeded (" + outmsg.LengthBytes + " > " + config.MaximumTransmissionUnit); + DebugConsole.ThrowError("Maximum packet size exceeded (" + outmsg.LengthBytes + " > " + config.MaximumTransmissionUnit + ")"); } server.SendMessage(outmsg, c.Connection, NetDeliveryMethod.Unreliable); @@ -1103,15 +1103,19 @@ namespace Barotrauma.Networking Rand.SetSyncedSeed(roundStartSeed); int teamCount = 1; - int hostTeam = 1; + byte hostTeam = 1; GameMain.GameSession = new GameSession(selectedSub, "", selectedMode, Mission.MissionTypes[GameMain.NetLobbyScreen.MissionTypeIndex]); - if (GameMain.GameSession.gameMode.Mission != null && - GameMain.GameSession.gameMode.Mission.AssignTeamIDs(connectedClients,out hostTeam)) + if (GameMain.GameSession.gameMode.Mission != null && + GameMain.GameSession.gameMode.Mission.AssignTeamIDs(connectedClients, out hostTeam)) { teamCount = 2; } + else + { + connectedClients.ForEach(c => c.TeamID = hostTeam); + } GameMain.GameSession.StartShift(GameMain.NetLobbyScreen.LevelSeed, teamCount > 1); diff --git a/Subsurface/Source/Networking/RespawnManager.cs b/Subsurface/Source/Networking/RespawnManager.cs index cfeeecf75..8758fa84c 100644 --- a/Subsurface/Source/Networking/RespawnManager.cs +++ b/Subsurface/Source/Networking/RespawnManager.cs @@ -392,10 +392,14 @@ namespace Barotrauma.Networking { var server = networkMember as GameServer; if (server == null) return; + var clients = GetClientsToRespawn(); foreach (Client c in clients) { + //all characters are in Team 1 in game modes/missions with only one team. + //if at some point we add a game mode with multiple teams where respawning is possible, this needs to be reworked + c.TeamID = 1; if (c.characterInfo == null) c.characterInfo = new CharacterInfo(Character.HumanConfigFile, c.name); }