diff --git a/Barotrauma/BarotraumaClient/Source/GUI/GUI.cs b/Barotrauma/BarotraumaClient/Source/GUI/GUI.cs
index cbb751f50..ec5b88851 100644
--- a/Barotrauma/BarotraumaClient/Source/GUI/GUI.cs
+++ b/Barotrauma/BarotraumaClient/Source/GUI/GUI.cs
@@ -656,13 +656,6 @@ namespace Barotrauma
msg.Timer -= deltaTime;
msg.Pos += msg.Velocity * deltaTime;
}
-
- foreach (GUIMessage msg in messages)
- {
- if (!msg.WorldSpace) continue;
- msg.Timer -= deltaTime;
- msg.Pos += msg.Velocity * deltaTime;
- }
}
messages.RemoveAll(m => m.Timer <= 0.0f);
diff --git a/Barotrauma/BarotraumaServer/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs b/Barotrauma/BarotraumaServer/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs
index 519d8d800..e2aa51755 100644
--- a/Barotrauma/BarotraumaServer/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs
+++ b/Barotrauma/BarotraumaServer/Source/Networking/NetEntityEvent/ServerEntityEventManager.cs
@@ -352,6 +352,12 @@ namespace Barotrauma.Networking
client.EntityEventLastSent[entityEvent.ID] = NetTime.Now;
}
+ foreach (NetEntityEvent entityEvent in sentEvents)
+ {
+ (entityEvent as ServerEntityEvent).Sent = true;
+ client.EntityEventLastSent[entityEvent.ID] = NetTime.Now;
+ }
+
foreach (NetEntityEvent entityEvent in sentEvents)
{
(entityEvent as ServerEntityEvent).Sent = true;
diff --git a/Barotrauma/BarotraumaShared/SharedContent.projitems b/Barotrauma/BarotraumaShared/SharedContent.projitems
index 85b8d8b4d..3f84508f8 100644
--- a/Barotrauma/BarotraumaShared/SharedContent.projitems
+++ b/Barotrauma/BarotraumaShared/SharedContent.projitems
@@ -2003,6 +2003,9 @@
PreserveNewest
+
+ PreserveNewest
+
@@ -2650,9 +2653,6 @@
PreserveNewest
-
- PreserveNewest
-
PreserveNewest
diff --git a/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs b/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs
index debfb6d73..253fa2c81 100644
--- a/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs
+++ b/Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs
@@ -1104,6 +1104,20 @@ namespace Barotrauma
}
}
else if (targetCharacter.AIController is EnemyAIController enemy)
+ {
+ targetingTag = "dead";
+ if (targetCharacter.Submarine != Character.Submarine)
+ {
+ // In a different sub or the target is outside when we are inside or vice versa -> Ignore the target
+ continue;
+ }
+ else if (targetCharacter.CurrentHull != Character.CurrentHull)
+ {
+ // In the same sub, halve the priority, if not in the same hull.
+ valueModifier = 0.5f;
+ }
+ }
+ else if (targetCharacter.AIController is EnemyAIController enemy)
{
if (enemy.combatStrength > combatStrength)
{
diff --git a/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs b/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs
index 40a8b79b4..1e14647f7 100644
--- a/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs
+++ b/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs
@@ -620,6 +620,39 @@ namespace Barotrauma
AllowedLinks = element.GetAttributeStringArray("allowedlinks", new string[0], convertToLowerInvariant: true).ToList();
+ if (sprite == null)
+ {
+ DebugConsole.ThrowError("Item \"" + Name + "\" has no sprite!");
+#if SERVER
+ sprite = new Sprite("", Vector2.Zero);
+ sprite.SourceRect = new Rectangle(0, 0, 32, 32);
+#else
+ sprite = new Sprite(TextureLoader.PlaceHolderTexture, null, null)
+ {
+ Origin = TextureLoader.PlaceHolderTexture.Bounds.Size.ToVector2() / 2
+ };
+#endif
+ size = sprite.size;
+ sprite.EntityID = identifier;
+ }
+
+ if (!category.HasFlag(MapEntityCategory.Legacy) && string.IsNullOrEmpty(identifier))
+ {
+ DebugConsole.ThrowError(
+ "Item prefab \"" + name + "\" has no identifier. All item prefabs have a unique identifier string that's used to differentiate between items during saving and loading.");
+ }
+ if (!string.IsNullOrEmpty(identifier))
+ {
+ MapEntityPrefab existingPrefab = List.Find(e => e.Identifier == identifier);
+ if (existingPrefab != null)
+ {
+ DebugConsole.ThrowError(
+ "Map entity prefabs \"" + name + "\" and \"" + existingPrefab.Name + "\" have the same identifier!");
+ }
+ }
+
+ AllowedLinks = element.GetAttributeStringArray("allowedlinks", new string[0], convertToLowerInvariant: true).ToList();
+
List.Add(this);
}