Merge remote-tracking branch 'upstream/master' into develop

This commit is contained in:
EvilFactory
2024-12-11 10:44:53 -03:00
257 changed files with 4793 additions and 1653 deletions
@@ -1298,11 +1298,8 @@ namespace Barotrauma.Networking
//check if midround syncing is needed due to missed unique events
if (!midroundSyncingDone) { entityEventManager.InitClientMidRoundSync(c); }
MissionAction.NotifyMissionsUnlockedThisRound(c);
if (GameMain.GameSession.Campaign is MultiPlayerCampaign mpCampaign)
{
mpCampaign.SendCrewState();
}
else if (GameMain.GameSession.GameMode is PvPMode)
if (GameMain.GameSession.GameMode is PvPMode)
{
if (c.TeamID == CharacterTeamType.None)
{
@@ -1311,6 +1308,10 @@ namespace Barotrauma.Networking
}
else
{
if (GameMain.GameSession.Campaign is MultiPlayerCampaign mpCampaign)
{
mpCampaign.SendCrewState();
}
//everyone's in team 1 in non-pvp game modes
c.TeamID = CharacterTeamType.Team1;
}
@@ -2251,12 +2252,13 @@ namespace Barotrauma.Networking
outmsg.WriteUInt16((UInt16)settingsBuf.LengthBytes);
outmsg.WriteBytes(settingsBuf.Buffer, 0, settingsBuf.LengthBytes);
outmsg.WriteBoolean(c.LastRecvLobbyUpdate < 1);
if (c.LastRecvLobbyUpdate < 1)
outmsg.WriteBoolean(!c.InitialLobbyUpdateSent);
if (!c.InitialLobbyUpdateSent)
{
isInitialUpdate = true;
initialUpdateBytes = outmsg.LengthBytes;
ClientWriteInitial(c, outmsg);
c.InitialLobbyUpdateSent = true;
initialUpdateBytes = outmsg.LengthBytes - initialUpdateBytes;
}
outmsg.WriteString(GameMain.NetLobbyScreen.SelectedSub.Name);
@@ -3135,6 +3137,7 @@ namespace Barotrauma.Networking
{
msg.WriteString(levelSeed);
msg.WriteSingle(ServerSettings.SelectedLevelDifficulty);
msg.WriteIdentifier(ServerSettings.Biome == "Random".ToIdentifier() ? Identifier.Empty : ServerSettings.Biome);
msg.WriteString(gameSession.SubmarineInfo.Name);
msg.WriteString(gameSession.SubmarineInfo.MD5Hash.StringRepresentation);
var selectedShuttle = GameStarted && RespawnManager != null && RespawnManager.UsingShuttle ?
@@ -3788,13 +3791,13 @@ namespace Barotrauma.Networking
}
else //msg sent by an AI character
{
senderName = senderCharacter.Name;
senderName = senderCharacter.DisplayName;
}
}
else //msg sent by a client
{
senderCharacter = senderClient.Character;
senderName = senderCharacter == null ? senderClient.Name : senderCharacter.Name;
senderName = senderCharacter == null ? senderClient.Name : senderCharacter.DisplayName;
if (type == ChatMessageType.Private)
{
if (senderCharacter != null && !senderCharacter.IsDead || targetClient.Character != null && !targetClient.Character.IsDead)