Release v0.15.12.0

This commit is contained in:
Joonas Rikkonen
2021-10-27 18:50:57 +03:00
parent bf95e82d80
commit 234fb6bc06
450 changed files with 26042 additions and 10457 deletions
@@ -22,6 +22,7 @@ namespace Barotrauma
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
ushort targetItemCount = msg.ReadUInt16();
for (int i = 0; i < targetItemCount; i++)
{
@@ -0,0 +1,32 @@
using Barotrauma.Networking;
namespace Barotrauma
{
partial class AlienRuinMission : Mission
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
existingTargets.Clear();
spawnedTargets.Clear();
allTargets.Clear();
ushort existingTargetsCount = msg.ReadUInt16();
for (int i = 0; i < existingTargetsCount; i++)
{
ushort targetId = msg.ReadUInt16();
if (targetId == Entity.NullEntityID) { continue; }
Entity target = Entity.FindEntityByID(targetId);
if (target == null) { continue; }
existingTargets.Add(target);
allTargets.Add(target);
}
ushort spawnedTargetsCount = msg.ReadUInt16();
for (int i = 0; i < spawnedTargetsCount; i++)
{
var enemy = Character.ReadSpawnData(msg);
existingTargets.Add(enemy);
allTargets.Add(enemy);
}
}
}
}
@@ -1,12 +0,0 @@
using Barotrauma.Networking;
namespace Barotrauma
{
partial class BeaconMission : Mission
{
public override void ClientReadInitial(IReadMessage msg)
{
return;
}
}
}
@@ -25,6 +25,7 @@ namespace Barotrauma
}
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
items.Clear();
ushort itemCount = msg.ReadUInt16();
for (int i = 0; i < itemCount; i++)
@@ -20,10 +20,5 @@ namespace Barotrauma
return descriptions[GameMain.Client.Character.TeamID == CharacterTeamType.Team1 ? 1 : 2];
}
}
public override void ClientReadInitial(IReadMessage msg)
{
//do nothing
}
}
}
@@ -6,6 +6,8 @@ namespace Barotrauma
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
byte characterCount = msg.ReadByte();
for (int i = 0; i < characterCount; i++)
@@ -12,6 +12,7 @@ namespace Barotrauma
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
byte caveCount = msg.ReadByte();
for (int i = 0; i < caveCount; i++)
{
@@ -29,7 +30,7 @@ namespace Barotrauma
}
}
for (int i = 0; i < ResourceClusters.Count; i++)
for (int i = 0; i < resourceClusters.Count; i++)
{
var amount = msg.ReadByte();
var rotation = msg.ReadSingle();
@@ -41,20 +42,20 @@ namespace Barotrauma
h.AttachToWall();
item.Rotation = rotation;
}
if (SpawnedResources.TryGetValue(item.Prefab.Identifier, out var resources))
if (spawnedResources.TryGetValue(item.Prefab.Identifier, out var resources))
{
resources.Add(item);
}
else
{
SpawnedResources.Add(item.Prefab.Identifier, new List<Item>() { item });
spawnedResources.Add(item.Prefab.Identifier, new List<Item>() { item });
}
}
}
CalculateMissionClusterPositions();
for(int i = 0; i < ResourceClusters.Count; i++)
for(int i = 0; i < resourceClusters.Count; i++)
{
var identifier = msg.ReadString();
var count = msg.ReadByte();
@@ -66,7 +67,7 @@ namespace Barotrauma
if (!(entity is Item item)) { continue; }
resources[j] = item;
}
RelevantLevelResources.Add(identifier, resources);
relevantLevelResources.Add(identifier, resources);
}
}
}
@@ -3,6 +3,7 @@ using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace Barotrauma
{
@@ -14,6 +15,10 @@ namespace Barotrauma
get { return shownMessages; }
}
public bool DisplayTargetHudIcons => Prefab.DisplayTargetHudIcons;
public virtual IEnumerable<Entity> HudIconTargets => Enumerable.Empty<Entity>();
public Color GetDifficultyColor()
{
int v = Difficulty ?? MissionPrefab.MinDifficulty;
@@ -92,11 +97,14 @@ namespace Barotrauma
};
}
public void ClientRead(IReadMessage msg)
public virtual void ClientRead(IReadMessage msg)
{
State = msg.ReadInt16();
}
public abstract void ClientReadInitial(IReadMessage msg);
public virtual void ClientReadInitial(IReadMessage msg)
{
state = msg.ReadInt16();
}
}
}
@@ -18,13 +18,54 @@ namespace Barotrauma
private set;
}
public bool DisplayTargetHudIcons
{
get;
private set;
}
public float HudIconMaxDistance
{
get;
private set;
}
public Sprite HudIcon
{
get
{
return hudIcon ?? Icon;
}
}
public Color HudIconColor
{
get
{
return hudIconColor ?? IconColor;
}
}
private Sprite hudIcon;
private Color? hudIconColor;
partial void InitProjSpecific(XElement element)
{
DisplayTargetHudIcons = element.GetAttributeBool("displaytargethudicons", false);
HudIconMaxDistance = element.GetAttributeFloat("hudiconmaxdistance", 1000.0f);
foreach (XElement subElement in element.Elements())
{
if (!subElement.Name.ToString().Equals("icon", StringComparison.OrdinalIgnoreCase)) { continue; }
Icon = new Sprite(subElement);
IconColor = subElement.GetAttributeColor("color", Color.White);
string name = subElement.Name.ToString();
if (name.Equals("icon", StringComparison.OrdinalIgnoreCase))
{
Icon = new Sprite(subElement);
IconColor = subElement.GetAttributeColor("color", Color.White);
}
else if (name.Equals("hudicon", StringComparison.OrdinalIgnoreCase))
{
hudIcon = new Sprite(subElement);
hudIconColor = subElement.GetAttributeColor("color");
}
}
}
}
@@ -6,6 +6,7 @@ namespace Barotrauma
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
byte monsterCount = msg.ReadByte();
for (int i = 0; i < monsterCount; i++)
{
@@ -8,6 +8,7 @@ namespace Barotrauma
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
byte selectedCaveIndex = msg.ReadByte();
nestPosition = new Vector2(
msg.ReadSingle(),
@@ -6,6 +6,7 @@ namespace Barotrauma
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
// duplicate code from escortmission, should possibly be combined, though additional loot items might be added so maybe not
byte characterCount = msg.ReadByte();
@@ -7,6 +7,7 @@ namespace Barotrauma
{
public override void ClientReadInitial(IReadMessage msg)
{
base.ClientReadInitial(msg);
bool usedExistingItem = msg.ReadBoolean();
if (usedExistingItem)
{
@@ -0,0 +1,67 @@
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)
{
base.ClientReadInitial(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);
}
}
}
}