Unstable v0.19.3.0
This commit is contained in:
+18
-18
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user