Unstable 0.1500.5.0 (almost forgor edition 💀)

This commit is contained in:
Markus Isberg
2021-10-01 23:56:14 +09:00
parent 3043a9a7bc
commit 08bdfc6cea
150 changed files with 5669 additions and 4403 deletions
@@ -0,0 +1,66 @@
using Barotrauma.Networking;
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Barotrauma
{
partial class ScanMission : Mission
{
public override IEnumerable<Entity> HudIconTargets
{
get
{
if (State == 0)
{
return scanTargets.Where(kvp => !kvp.Value).Select(kvp => kvp.Key);
}
else
{
return Enumerable.Empty<Entity>();
}
}
}
public override void ClientReadInitial(IReadMessage msg)
{
startingItems.Clear();
ushort itemCount = msg.ReadUInt16();
for (int i = 0; i < itemCount; i++)
{
startingItems.Add(Item.ReadSpawnData(msg));
}
if (startingItems.Contains(null))
{
throw new Exception($"Error in ScanMission.ClientReadInitial: item list contains null (mission: {Prefab.Identifier})");
}
if (startingItems.Count != itemCount)
{
throw new Exception($"Error in ScanMission.ClientReadInitial: item count does not match the server count ({itemCount} != {startingItems.Count}, mission: {Prefab.Identifier})");
}
scanners.Clear();
GetScanners();
ClientReadScanTargetStatus(msg);
}
public override void ClientRead(IReadMessage msg)
{
base.ClientRead(msg);
ClientReadScanTargetStatus(msg);
}
private void ClientReadScanTargetStatus(IReadMessage msg)
{
scanTargets.Clear();
byte targetsToScan = msg.ReadByte();
for (int i = 0; i < targetsToScan; i++)
{
ushort id = msg.ReadUInt16();
bool scanned = msg.ReadBoolean();
Entity entity = Entity.FindEntityByID(id);
scanTargets.Add(entity as WayPoint, scanned);
}
}
}
}