diff --git a/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterInfo.cs b/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterInfo.cs
index f4820eec0..9a8d2b202 100644
--- a/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterInfo.cs
+++ b/Barotrauma/BarotraumaClient/ClientSource/Characters/CharacterInfo.cs
@@ -312,7 +312,7 @@ namespace Barotrauma
public void DrawForeground(SpriteBatch spriteBatch)
{
- if (Character is null || GameMain.IsSingleplayer) { return; }
+ if (Character is null || !(GameMain.GameSession?.Campaign is MultiPlayerCampaign)) { return; }
const int million = 1000000;
int xfraction = (int)(HUDLayoutSettings.BottomRightInfoArea.Width * 0.2f);
int yoffset = GUI.IntScale(6);
diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj
index 523bd2c3e..282a4c509 100644
--- a/Barotrauma/BarotraumaClient/LinuxClient.csproj
+++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 0.17.10.0
+ 0.17.11.0
Copyright © FakeFish 2018-2022
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaClient/MacClient.csproj b/Barotrauma/BarotraumaClient/MacClient.csproj
index 0c1d3dde5..b56e2e44a 100644
--- a/Barotrauma/BarotraumaClient/MacClient.csproj
+++ b/Barotrauma/BarotraumaClient/MacClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 0.17.10.0
+ 0.17.11.0
Copyright © FakeFish 2018-2022
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaClient/WindowsClient.csproj b/Barotrauma/BarotraumaClient/WindowsClient.csproj
index 2e906345e..57df967fe 100644
--- a/Barotrauma/BarotraumaClient/WindowsClient.csproj
+++ b/Barotrauma/BarotraumaClient/WindowsClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 0.17.10.0
+ 0.17.11.0
Copyright © FakeFish 2018-2022
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaServer/LinuxServer.csproj b/Barotrauma/BarotraumaServer/LinuxServer.csproj
index 07a3db04d..241b95b0d 100644
--- a/Barotrauma/BarotraumaServer/LinuxServer.csproj
+++ b/Barotrauma/BarotraumaServer/LinuxServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 0.17.10.0
+ 0.17.11.0
Copyright © FakeFish 2018-2022
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaServer/MacServer.csproj b/Barotrauma/BarotraumaServer/MacServer.csproj
index 793bbd80c..b53b27bf5 100644
--- a/Barotrauma/BarotraumaServer/MacServer.csproj
+++ b/Barotrauma/BarotraumaServer/MacServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 0.17.10.0
+ 0.17.11.0
Copyright © FakeFish 2018-2022
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaServer/WindowsServer.csproj b/Barotrauma/BarotraumaServer/WindowsServer.csproj
index 0e383375c..62d9404a5 100644
--- a/Barotrauma/BarotraumaServer/WindowsServer.csproj
+++ b/Barotrauma/BarotraumaServer/WindowsServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 0.17.10.0
+ 0.17.11.0
Copyright © FakeFish 2018-2022
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/CampaignMode.cs b/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/CampaignMode.cs
index 5dbf55fa0..fa1aeaf55 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/CampaignMode.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/GameSession/GameModes/CampaignMode.cs
@@ -341,7 +341,7 @@ namespace Barotrauma
if (levelData.HasBeaconStation && !levelData.IsBeaconActive)
{
- var beaconMissionPrefabs = MissionPrefab.Prefabs.Where(m => m.Tags.Any(t => t.Equals("beaconnoreward", StringComparison.OrdinalIgnoreCase)));
+ var beaconMissionPrefabs = MissionPrefab.Prefabs.Where(m => m.Tags.Any(t => t.Equals("beaconnoreward", StringComparison.OrdinalIgnoreCase))).OrderBy(m => m.UintIdentifier);
if (beaconMissionPrefabs.Any())
{
Random rand = new MTRandom(ToolBox.StringToInt(levelData.Seed));
@@ -354,7 +354,7 @@ namespace Barotrauma
}
if (levelData.HasHuntingGrounds)
{
- var huntingGroundsMissionPrefabs = MissionPrefab.Prefabs.Where(m => m.Tags.Any(t => t.Equals("huntinggrounds", StringComparison.OrdinalIgnoreCase)));
+ var huntingGroundsMissionPrefabs = MissionPrefab.Prefabs.Where(m => m.Tags.Any(t => t.Equals("huntinggrounds", StringComparison.OrdinalIgnoreCase))).OrderBy(m => m.UintIdentifier);
if (!huntingGroundsMissionPrefabs.Any())
{
DebugConsole.AddWarning("Could not find a hunting grounds mission for the level. No mission with the tag \"huntinggrounds\" found.");
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Power/Powered.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Power/Powered.cs
index 91768fd93..b6d481651 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Power/Powered.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Power/Powered.cs
@@ -397,11 +397,6 @@ namespace Barotrauma.Items.Components
//Only add valid connections
if (otherC.Grid != grid && (otherC.Grid == null || !Grids.ContainsKey(otherC.Grid.ID)) && ValidPowerConnection(c, otherC))
{
- if (otherC.Item.Condition <= 0.0f)
- {
- continue;
- }
-
otherC.Grid = grid; //Assigning ID early prevents unncessary adding to stack
probeStack.Push(otherC);
}
@@ -665,7 +660,10 @@ namespace Barotrauma.Items.Components
public static bool ValidPowerConnection(Connection conn1, Connection conn2)
{
- return conn1.IsPower && conn2.IsPower && (conn1.Item.HasTag("junctionbox") || conn2.Item.HasTag("junctionbox") || conn1.Item.HasTag("dock") || conn2.Item.HasTag("dock") || conn1.IsOutput != conn2.IsOutput);
+ return
+ conn1.IsPower && conn2.IsPower &&
+ conn1.Item.Condition > 0.0f && conn2.Item.Condition > 0.0f &&
+ (conn1.Item.HasTag("junctionbox") || conn2.Item.HasTag("junctionbox") || conn1.Item.HasTag("dock") || conn2.Item.HasTag("dock") || conn1.IsOutput != conn2.IsOutput);
}
///
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/RelayComponent.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/RelayComponent.cs
index ab0034584..0a0a3e691 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/RelayComponent.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Signal/RelayComponent.cs
@@ -141,7 +141,7 @@ namespace Barotrauma.Items.Components
ApplyStatusEffects(ActionType.OnActive, deltaTime, null);
- if (Voltage > OverloadVoltage && CanBeOverloaded)
+ if (Voltage > OverloadVoltage && CanBeOverloaded && item.Repairables.Any())
{
item.Condition = 0.0f;
}
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/ItemPrefab.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/ItemPrefab.cs
index 453f2a412..74532ffa6 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/ItemPrefab.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/ItemPrefab.cs
@@ -957,7 +957,18 @@ namespace Barotrauma
public PriceInfo GetPriceInfo(Location.StoreInfo store)
{
- if (!store.Identifier.IsEmpty && StorePrices != null && StorePrices.TryGetValue(store.Identifier, out var storePriceInfo))
+ if (store == null)
+ {
+ string message = $"Tried to get price info for \"{Identifier}\" with a null store parameter!\n{Environment.StackTrace.CleanupStackTrace()}";
+#if DEBUG
+ DebugConsole.ShowError(message);
+#else
+ DebugConsole.AddWarning(message);
+ GameAnalyticsManager.AddErrorEventOnce("ItemPrefab.GetPriceInfo:StoreParameterNull", GameAnalyticsManager.ErrorSeverity.Error, message);
+#endif
+ return null;
+ }
+ else if (!store.Identifier.IsEmpty && StorePrices != null && StorePrices.TryGetValue(store.Identifier, out var storePriceInfo))
{
return storePriceInfo;
}
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Map/StructurePrefab.cs b/Barotrauma/BarotraumaShared/SharedSource/Map/StructurePrefab.cs
index 0a1356efd..30c8ae40b 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Map/StructurePrefab.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Map/StructurePrefab.cs
@@ -153,7 +153,10 @@ namespace Barotrauma
{
Name = TextManager.GetWithVariable("wreckeditemformat", "[name]", Name);
}
- Name = Name.Fallback(OriginalName);
+ if (!string.IsNullOrEmpty(OriginalName))
+ {
+ Name = Name.Fallback(OriginalName);
+ }
var tags = new HashSet();
string joinedTags = element.GetAttributeString("tags", "");
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Map/Submarine.cs b/Barotrauma/BarotraumaShared/SharedSource/Map/Submarine.cs
index ec08d2c38..a046b1098 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Map/Submarine.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Map/Submarine.cs
@@ -1229,6 +1229,7 @@ namespace Barotrauma
{
if (!connectedSubs.Contains(item.Submarine)) { continue; }
if (!item.HasTag("cargocontainer")) { continue; }
+ if (item.NonInteractable || item.HiddenInGame) { continue; }
var itemContainer = item.GetComponent();
if (itemContainer == null) { continue; }
int emptySlots = 0;
diff --git a/Barotrauma/BarotraumaShared/changelog.txt b/Barotrauma/BarotraumaShared/changelog.txt
index 0187318b1..3572e4841 100644
--- a/Barotrauma/BarotraumaShared/changelog.txt
+++ b/Barotrauma/BarotraumaShared/changelog.txt
@@ -1,3 +1,15 @@
+---------------------------------------------------------------------------------------------------------
+v0.17.11.0
+---------------------------------------------------------------------------------------------------------
+
+Fixes:
+- Fixed occasional crash when talking to an outpost merchant.
+- Fixed cargo missions putting cargo in non-interactable and hidden-in-game containers.
+- Don't show wallet info on character portrait in other multiplayer game modes than the campaign.
+- Fixed certainstructure names not showing up properly in the submarine editor in languages other than English.
+- Fixed relays that have "can be overloaded" set to true breaking when overloaded (should never happen because relays can't be repaired).
+- Fixed occasional mission mismatch errors in multiplayer when there's a hunting grounds or beacon mission in the level.
+
---------------------------------------------------------------------------------------------------------
v0.17.10.0
---------------------------------------------------------------------------------------------------------