Unstable v0.19.3.0

This commit is contained in:
Juan Pablo Arce
2022-09-02 15:10:56 -03:00
parent 28789616bd
commit 3f2c843247
336 changed files with 7152 additions and 7739 deletions
@@ -115,36 +115,36 @@ namespace Barotrauma
public void ServerWrite(Character speaker, Client client, bool interrupt)
{
IWriteMessage outmsg = new WriteOnlyMessage();
outmsg.Write((byte)ServerPacketHeader.EVENTACTION);
outmsg.Write((byte)EventManager.NetworkEventType.CONVERSATION);
outmsg.Write(Identifier);
outmsg.Write(EventSprite);
outmsg.Write((byte)DialogType);
outmsg.Write(ContinueConversation);
outmsg.WriteByte((byte)ServerPacketHeader.EVENTACTION);
outmsg.WriteByte((byte)EventManager.NetworkEventType.CONVERSATION);
outmsg.WriteUInt16(Identifier);
outmsg.WriteString(EventSprite);
outmsg.WriteByte((byte)DialogType);
outmsg.WriteBoolean(ContinueConversation);
if (interrupt)
{
outmsg.Write(speaker?.ID ?? Entity.NullEntityID);
outmsg.Write(string.Empty);
outmsg.Write(false);
outmsg.Write((byte)0);
outmsg.Write((byte)0);
outmsg.WriteUInt16(speaker?.ID ?? Entity.NullEntityID);
outmsg.WriteString(string.Empty);
outmsg.WriteBoolean(false);
outmsg.WriteByte((byte)0);
outmsg.WriteByte((byte)0);
}
else
{
outmsg.Write(speaker?.ID ?? Entity.NullEntityID);
outmsg.Write(Text ?? string.Empty);
outmsg.Write(FadeToBlack);
outmsg.Write((byte)Options.Count);
outmsg.WriteUInt16(speaker?.ID ?? Entity.NullEntityID);
outmsg.WriteString(Text ?? string.Empty);
outmsg.WriteBoolean(FadeToBlack);
outmsg.WriteByte((byte)Options.Count);
for (int i = 0; i < Options.Count; i++)
{
outmsg.Write(Options[i].Text);
outmsg.WriteString(Options[i].Text);
}
int[] endings = GetEndingOptions();
outmsg.Write((byte)endings.Length);
outmsg.WriteByte((byte)endings.Length);
foreach (var end in endings)
{
outmsg.Write((byte)end);
outmsg.WriteByte((byte)end);
}
}
GameMain.Server?.ServerPeer?.Send(outmsg, client.Connection, DeliveryMethod.Reliable);
@@ -10,14 +10,14 @@ namespace Barotrauma
private void ServerWrite(IEnumerable<Entity> targets)
{
IWriteMessage outmsg = new WriteOnlyMessage();
outmsg.Write((byte)ServerPacketHeader.EVENTACTION);
outmsg.Write((byte)EventManager.NetworkEventType.STATUSEFFECT);
outmsg.Write(ParentEvent.Prefab.Identifier);
outmsg.Write((UInt16)actionIndex);
outmsg.Write((UInt16)targets.Count());
outmsg.WriteByte((byte)ServerPacketHeader.EVENTACTION);
outmsg.WriteByte((byte)EventManager.NetworkEventType.STATUSEFFECT);
outmsg.WriteIdentifier(ParentEvent.Prefab.Identifier);
outmsg.WriteUInt16((UInt16)actionIndex);
outmsg.WriteUInt16((UInt16)targets.Count());
foreach (Entity target in targets)
{
outmsg.Write(target.ID);
outmsg.WriteUInt16(target.ID);
}
foreach (Client c in GameMain.Server.ConnectedClients)
{
@@ -12,19 +12,19 @@ namespace Barotrauma
public override void ServerWriteInitial(IWriteMessage msg, Client c)
{
base.ServerWriteInitial(msg, c);
msg.Write((ushort)spawnedItems.Count);
msg.WriteUInt16((ushort)spawnedItems.Count);
foreach (Item item in spawnedItems)
{
item.WriteSpawnData(msg, item.ID, Entity.NullEntityID, 0, -1);
}
msg.Write((byte)characters.Count);
msg.WriteByte((byte)characters.Count);
foreach (Character character in characters)
{
character.WriteSpawnData(msg, character.ID, restrictMessageSize: false);
msg.Write(requireKill.Contains(character));
msg.Write(requireRescue.Contains(character));
msg.Write((ushort)characterItems[character].Count());
msg.WriteBoolean(requireKill.Contains(character));
msg.WriteBoolean(requireRescue.Contains(character));
msg.WriteUInt16((ushort)characterItems[character].Count());
foreach (Item item in characterItems[character])
{
item.WriteSpawnData(msg, item.ID, item.ParentInventory?.Owner?.ID ?? Entity.NullEntityID, 0, item.ParentInventory?.FindIndex(item) ?? -1);
@@ -7,12 +7,12 @@ namespace Barotrauma
public override void ServerWriteInitial(IWriteMessage msg, Client c)
{
base.ServerWriteInitial(msg, c);
msg.Write((ushort)existingTargets.Count);
msg.WriteUInt16((ushort)existingTargets.Count);
foreach (var t in existingTargets)
{
msg.Write(t != null ? t.ID : Entity.NullEntityID);
msg.WriteUInt16(t != null ? t.ID : Entity.NullEntityID);
}
msg.Write((ushort)spawnedTargets.Count);
msg.WriteUInt16((ushort)spawnedTargets.Count);
foreach (var t in spawnedTargets)
{
t.WriteSpawnData(msg, t.ID, false);
@@ -7,7 +7,7 @@ namespace Barotrauma
public override void ServerWriteInitial(IWriteMessage msg, Client c)
{
base.ServerWriteInitial(msg, c);
msg.Write((ushort)items.Count);
msg.WriteUInt16((ushort)items.Count);
foreach (Item item in items)
{
item.WriteSpawnData(msg,
@@ -5,12 +5,16 @@ namespace Barotrauma
{
partial class CombatMission
{
const float RoundEndDuration = 5.0f;
private readonly bool[] teamDead = new bool[2];
private List<Character>[] crews;
private bool initialized = false;
private float roundEndTimer;
public override LocalizedString Description
{
get
@@ -53,6 +57,7 @@ namespace Barotrauma
{
teamDead[0] = crews[0].All(c => c.IsDead || c.IsIncapacitated);
teamDead[1] = crews[1].All(c => c.IsDead || c.IsIncapacitated);
if (teamDead[0] && teamDead[1]) { state = 1; }
}
if (state == 0)
@@ -66,13 +71,17 @@ namespace Barotrauma
GameMain.GameSession.WinningTeam = i == 0 ? CharacterTeamType.Team1 : CharacterTeamType.Team2;
state = 1;
//state 1 = team 1 won, 2 = team 2 won
State = i + 1;
break;
}
}
}
else
{
roundEndTimer -= deltaTime;
if (roundEndTimer > 0.0f) { return; }
if (teamDead[0] && teamDead[1])
{
GameMain.GameSession.WinningTeam = CharacterTeamType.None;
@@ -81,7 +90,7 @@ namespace Barotrauma
else if (GameMain.GameSession.WinningTeam != CharacterTeamType.None)
{
GameMain.Server.EndGame();
}
}
}
}
}
@@ -16,12 +16,12 @@ namespace Barotrauma
throw new InvalidOperationException("Server attempted to write escort mission data when no characters had been spawned.");
}
msg.Write((byte)characters.Count);
msg.WriteByte((byte)characters.Count);
foreach (Character character in characters)
{
character.WriteSpawnData(msg, character.ID, restrictMessageSize: false);
msg.Write(terroristCharacters.Contains(character));
msg.Write((ushort)characterItems[character].Count());
msg.WriteBoolean(terroristCharacters.Contains(character));
msg.WriteUInt16((ushort)characterItems[character].Count());
foreach (Item item in characterItems[character])
{
item.WriteSpawnData(msg, item.ID, item.ParentInventory?.Owner?.ID ?? Entity.NullEntityID, 0, item.ParentInventory?.FindIndex(item) ?? -1);
@@ -7,17 +7,17 @@ namespace Barotrauma
public override void ServerWriteInitial(IWriteMessage msg, Client c)
{
base.ServerWriteInitial(msg, c);
msg.Write((byte)caves.Count);
msg.WriteByte((byte)caves.Count);
foreach (var cave in caves)
{
msg.Write((byte)(Level.Loaded == null || !Level.Loaded.Caves.Contains(cave) ? 255 : Level.Loaded.Caves.IndexOf(cave)));
msg.WriteByte((byte)(Level.Loaded == null || !Level.Loaded.Caves.Contains(cave) ? 255 : Level.Loaded.Caves.IndexOf(cave)));
}
foreach (var kvp in spawnedResources)
{
msg.Write((byte)kvp.Value.Count);
msg.WriteByte((byte)kvp.Value.Count);
var rotation = resourceClusters[kvp.Key].Rotation;
msg.Write(rotation);
msg.WriteSingle(rotation);
foreach (var r in kvp.Value)
{
r.WriteSpawnData(msg, r.ID, Entity.NullEntityID, 0, -1);
@@ -26,11 +26,11 @@ namespace Barotrauma
foreach (var kvp in relevantLevelResources)
{
msg.Write(kvp.Key);
msg.Write((byte)kvp.Value.Length);
msg.WriteIdentifier(kvp.Key);
msg.WriteByte((byte)kvp.Value.Length);
foreach (var i in kvp.Value)
{
msg.Write(i.ID);
msg.WriteUInt16(i.ID);
}
}
}
@@ -12,18 +12,22 @@ namespace Barotrauma
LocalizedString header = messageIndex < Headers.Length ? Headers[messageIndex] : "";
LocalizedString message = messageIndex < Messages.Length ? Messages[messageIndex] : "";
if (!message.IsNullOrEmpty())
{
message = ModifyMessage(message, color: false);
}
GameServer.Log($"{TextManager.Get("MissionInfo")}: {header} - {message}", ServerLog.MessageType.ServerMessage);
}
public virtual void ServerWriteInitial(IWriteMessage msg, Client c)
{
msg.Write((ushort)State);
msg.WriteUInt16((ushort)State);
}
public virtual void ServerWrite(IWriteMessage msg)
{
msg.Write((ushort)State);
msg.WriteUInt16((ushort)State);
}
}
}
@@ -14,7 +14,7 @@ namespace Barotrauma
throw new InvalidOperationException("Server attempted to write monster mission data when no monsters had been spawned.");
}
msg.Write((byte)monsters.Count);
msg.WriteByte((byte)monsters.Count);
foreach (Character monster in monsters)
{
monster.WriteSpawnData(msg, monster.ID, restrictMessageSize: false);
@@ -9,10 +9,10 @@ namespace Barotrauma
public override void ServerWriteInitial(IWriteMessage msg, Client c)
{
base.ServerWriteInitial(msg, c);
msg.Write((byte)(selectedCave == null || Level.Loaded == null || !Level.Loaded.Caves.Contains(selectedCave) ? 255 : Level.Loaded.Caves.IndexOf(selectedCave)));
msg.Write(nestPosition.X);
msg.Write(nestPosition.Y);
msg.Write((ushort)items.Count);
msg.WriteByte((byte)(selectedCave == null || Level.Loaded == null || !Level.Loaded.Caves.Contains(selectedCave) ? 255 : Level.Loaded.Caves.IndexOf(selectedCave)));
msg.WriteSingle(nestPosition.X);
msg.WriteSingle(nestPosition.Y);
msg.WriteUInt16((ushort)items.Count);
foreach (Item item in items)
{
item.WriteSpawnData(msg, item.ID, Entity.NullEntityID, 0, -1);
@@ -17,11 +17,11 @@ namespace Barotrauma
throw new InvalidOperationException("Server attempted to write escort mission data when no characters had been spawned.");
}
msg.Write((byte)characters.Count);
msg.WriteByte((byte)characters.Count);
foreach (Character character in characters)
{
character.WriteSpawnData(msg, character.ID, restrictMessageSize: false);
msg.Write((ushort)characterItems[character].Count());
msg.WriteUInt16((ushort)characterItems[character].Count());
foreach (Item item in characterItems[character])
{
item.WriteSpawnData(msg, item.ID, item.ParentInventory?.Owner?.ID ?? Entity.NullEntityID, 0, item.ParentInventory?.FindIndex(item) ?? -1);
@@ -18,21 +18,21 @@ namespace Barotrauma
{
base.ServerWriteInitial(msg, c);
msg.Write(usedExistingItem);
msg.WriteBoolean(usedExistingItem);
if (usedExistingItem)
{
msg.Write(item.ID);
msg.WriteUInt16(item.ID);
}
else
{
item.WriteSpawnData(msg, item.ID, originalInventoryID, originalItemContainerIndex, originalSlotIndex);
}
msg.Write((byte)executedEffectIndices.Count);
msg.WriteByte((byte)executedEffectIndices.Count);
foreach (Pair<int, int> effectIndex in executedEffectIndices)
{
msg.Write((byte)effectIndex.First);
msg.Write((byte)effectIndex.Second);
msg.WriteByte((byte)effectIndex.First);
msg.WriteByte((byte)effectIndex.Second);
}
}
}
@@ -7,7 +7,7 @@ namespace Barotrauma
public override void ServerWriteInitial(IWriteMessage msg, Client c)
{
base.ServerWriteInitial(msg, c);
msg.Write((ushort)startingItems.Count);
msg.WriteUInt16((ushort)startingItems.Count);
foreach (var item in startingItems)
{
item.WriteSpawnData(msg,
@@ -27,11 +27,11 @@ namespace Barotrauma
private void ServerWriteScanTargetStatus(IWriteMessage msg)
{
msg.Write((byte)scanTargets.Count);
msg.WriteByte((byte)scanTargets.Count);
foreach (var kvp in scanTargets)
{
msg.Write(kvp.Key != null ? kvp.Key.ID : Entity.NullEntityID);
msg.Write(kvp.Value);
msg.WriteUInt16(kvp.Key != null ? kvp.Key.ID : Entity.NullEntityID);
msg.WriteBoolean(kvp.Value);
}
}
}