diff --git a/Barotrauma/BarotraumaClient/LinuxClient.csproj b/Barotrauma/BarotraumaClient/LinuxClient.csproj
index aa20c1261..348eb1f8f 100644
--- a/Barotrauma/BarotraumaClient/LinuxClient.csproj
+++ b/Barotrauma/BarotraumaClient/LinuxClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 1.1.14.0
+ 1.1.15.0
Copyright © FakeFish 2018-2023
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaClient/MacClient.csproj b/Barotrauma/BarotraumaClient/MacClient.csproj
index 75a4a7c97..01d8301a5 100644
--- a/Barotrauma/BarotraumaClient/MacClient.csproj
+++ b/Barotrauma/BarotraumaClient/MacClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 1.1.14.0
+ 1.1.15.0
Copyright © FakeFish 2018-2023
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaClient/WindowsClient.csproj b/Barotrauma/BarotraumaClient/WindowsClient.csproj
index 77b4d8ebb..b41d5ab77 100644
--- a/Barotrauma/BarotraumaClient/WindowsClient.csproj
+++ b/Barotrauma/BarotraumaClient/WindowsClient.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma
- 1.1.14.0
+ 1.1.15.0
Copyright © FakeFish 2018-2023
AnyCPU;x64
Barotrauma
diff --git a/Barotrauma/BarotraumaServer/LinuxServer.csproj b/Barotrauma/BarotraumaServer/LinuxServer.csproj
index 5246e818e..7be5d124f 100644
--- a/Barotrauma/BarotraumaServer/LinuxServer.csproj
+++ b/Barotrauma/BarotraumaServer/LinuxServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 1.1.14.0
+ 1.1.15.0
Copyright © FakeFish 2018-2023
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaServer/MacServer.csproj b/Barotrauma/BarotraumaServer/MacServer.csproj
index 1959e3b21..fe58389a0 100644
--- a/Barotrauma/BarotraumaServer/MacServer.csproj
+++ b/Barotrauma/BarotraumaServer/MacServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 1.1.14.0
+ 1.1.15.0
Copyright © FakeFish 2018-2023
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaServer/WindowsServer.csproj b/Barotrauma/BarotraumaServer/WindowsServer.csproj
index 898f1765a..ad41b7b61 100644
--- a/Barotrauma/BarotraumaServer/WindowsServer.csproj
+++ b/Barotrauma/BarotraumaServer/WindowsServer.csproj
@@ -6,7 +6,7 @@
Barotrauma
FakeFish, Undertow Games
Barotrauma Dedicated Server
- 1.1.14.0
+ 1.1.15.0
Copyright © FakeFish 2018-2023
AnyCPU;x64
DedicatedServer
diff --git a/Barotrauma/BarotraumaShared/SharedSource/CircuitBox/CircuitBoxConnection.cs b/Barotrauma/BarotraumaShared/SharedSource/CircuitBox/CircuitBoxConnection.cs
index 54eb1ef7e..cd2b6bdb8 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/CircuitBox/CircuitBoxConnection.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/CircuitBox/CircuitBoxConnection.cs
@@ -25,7 +25,7 @@ namespace Barotrauma
if (connector is CircuitBoxOutputConnection output)
{
output.ReceiveSignal(signal);
- return;
+ continue;
}
Connection.SendSignalIntoConnection(signal, connector.Connection);
}
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/CheckItemAction.cs b/Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/CheckItemAction.cs
index 4d53e6eca..cd0200646 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/CheckItemAction.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Events/EventActions/CheckItemAction.cs
@@ -133,15 +133,13 @@ namespace Barotrauma
tempTargetItems.Clear();
foreach (var target in targets)
{
- if (target is not Item item) { continue; }
- if (itemTags.Any() && itemTags.None(item.HasTag) &&
- itemIdentifierSplit.Any() && !itemIdentifierSplit.Contains(item.Prefab.Identifier))
+ if (target is not Item item) { continue; }
+ if (itemTags.Any(item.HasTag) || itemIdentifierSplit.Contains(item.Prefab.Identifier))
{
- continue;
- }
- if (ConditionalsMatch(item, character: null))
- {
- tempTargetItems.Add(item);
+ if (ConditionalsMatch(item, character: null))
+ {
+ tempTargetItems.Add(item);
+ }
}
}
if (EnoughTargets(targetCount, tempTargetItems.Count))
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Events/MonsterEvent.cs b/Barotrauma/BarotraumaShared/SharedSource/Events/MonsterEvent.cs
index 00572c070..71eebca71 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Events/MonsterEvent.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Events/MonsterEvent.cs
@@ -611,6 +611,8 @@ namespace Barotrauma
{
//round ended before the coroutine finished
if (GameMain.GameSession == null || Level.Loaded == null) { return; }
+
+ if (monster.Removed) { return; }
System.Diagnostics.Debug.Assert(GameMain.NetworkMember == null || GameMain.NetworkMember.IsServer, "Clients should not create monster events.");
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/ElectricalDischarger.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/ElectricalDischarger.cs
index 39fd2ed7f..a1b8e5738 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/ElectricalDischarger.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/ElectricalDischarger.cs
@@ -1,4 +1,5 @@
-using Barotrauma.Networking;
+using Barotrauma.Extensions;
+using Barotrauma.Networking;
using FarseerPhysics;
using Microsoft.Xna.Framework;
using System;
@@ -181,24 +182,20 @@ namespace Barotrauma.Items.Components
if (hasPower)
{
var batteries = GetDirectlyConnectedBatteries().Where(static b => !b.OutputDisabled && b.Charge > 0.0001f && b.MaxOutPut > 0.0001f);
- int batteryCount = batteries.Count();
- if (batteryCount > 0)
+ float neededPower = PowerConsumption;
+ while (neededPower > 0.0001f && batteries.Any())
{
- float neededPower = PowerConsumption;
- while (neededPower > 0.0001f)
+ float takePower = neededPower / batteries.Count();
+ takePower = Math.Min(takePower, batteries.Min(b => Math.Min(b.Charge * 3600.0f, b.MaxOutPut)));
+ foreach (PowerContainer battery in batteries)
{
- float takePower = neededPower / batteryCount;
- takePower = Math.Min(takePower, batteries.Min(b => Math.Min(b.Charge * 3600.0f, b.MaxOutPut)));
- foreach (PowerContainer battery in batteries)
- {
- neededPower -= takePower;
- battery.Charge -= takePower / 3600.0f;
+ neededPower -= takePower;
+ battery.Charge -= takePower / 3600.0f;
#if SERVER
- if (GameMain.Server != null) { battery.Item.CreateServerEvent(battery); }
+ if (GameMain.Server != null) { battery.Item.CreateServerEvent(battery); }
#endif
- }
}
- }
+ }
Discharge();
}
}
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Turret.cs b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Turret.cs
index 9c29503ad..71e414e97 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Turret.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Items/Components/Turret.cs
@@ -773,28 +773,23 @@ namespace Barotrauma.Items.Components
if (!ignorePower)
{
var batteries = GetDirectlyConnectedBatteries().Where(static b => !b.OutputDisabled && b.Charge > 0.0001f && b.MaxOutPut > 0.0001f);
- int batteryCount = batteries.Count();
- if (batteryCount > 0)
+ float neededPower = GetPowerRequiredToShoot();
+ // tinkering is currently not factored into the common method as it is checked only when shooting
+ // but this is a minor issue that causes mostly cosmetic woes. might still be worth refactoring later
+ neededPower /= 1f + (tinkeringStrength * TinkeringPowerCostReduction);
+ while (neededPower > 0.0001f && batteries.Any())
{
- float neededPower = GetPowerRequiredToShoot();
- // tinkering is currently not factored into the common method as it is checked only when shooting
- // but this is a minor issue that causes mostly cosmetic woes. might still be worth refactoring later
- neededPower /= 1f + (tinkeringStrength * TinkeringPowerCostReduction);
- while (neededPower > 0.0001f)
+ float takePower = neededPower / batteries.Count();
+ takePower = Math.Min(takePower, batteries.Min(b => Math.Min(b.Charge * 3600.0f, b.MaxOutPut)));
+ foreach (PowerContainer battery in batteries)
{
- float takePower = neededPower / batteryCount;
- takePower = Math.Min(takePower, batteries.Min(b => Math.Min(b.Charge * 3600.0f, b.MaxOutPut)));
- foreach (PowerContainer battery in batteries)
- {
- neededPower -= takePower;
- battery.Charge -= takePower / 3600.0f;
+ neededPower -= takePower;
+ battery.Charge -= takePower / 3600.0f;
#if SERVER
- battery.Item.CreateServerEvent(battery);
+ battery.Item.CreateServerEvent(battery);
#endif
- }
}
}
-
}
launchedProjectile = projectiles.FirstOrDefault();
diff --git a/Barotrauma/BarotraumaShared/SharedSource/Map/Levels/Level.cs b/Barotrauma/BarotraumaShared/SharedSource/Map/Levels/Level.cs
index a3fa754af..d3efea804 100644
--- a/Barotrauma/BarotraumaShared/SharedSource/Map/Levels/Level.cs
+++ b/Barotrauma/BarotraumaShared/SharedSource/Map/Levels/Level.cs
@@ -1378,6 +1378,9 @@ namespace Barotrauma
{
if (sub.Info.IsOutpost)
{
+#if CLIENT
+ if (GameMain.GameSession.GameMode is TutorialMode) { continue; }
+#endif
OutpostGenerator.PowerUpOutpost(sub);
}
}
diff --git a/Barotrauma/BarotraumaShared/changelog.txt b/Barotrauma/BarotraumaShared/changelog.txt
index 44eaec1b1..4bcd23924 100644
--- a/Barotrauma/BarotraumaShared/changelog.txt
+++ b/Barotrauma/BarotraumaShared/changelog.txt
@@ -1,3 +1,13 @@
+-------------------------------------------------------------------------------------------------------------------------------------------------
+v1.1.15.0
+-------------------------------------------------------------------------------------------------------------------------------------------------
+
+- Fixed console errors when there are swarm feeders (or other monsters that immediately despawn when killed) in an irradiated level.
+- Fixed occasional crashes when firing a turret makes a supercapacitor drop to 0% charge.
+- Fixed circuit box only outputting to one pin when wired directly from input to multiple output pins.
+- Fixed tutorial reactor starting already powered up, making the first engineer tutorial objectives complete immediately.
+- Miscellaneous tutorial fixes.
+
-------------------------------------------------------------------------------------------------------------------------------------------------
v1.1.14.0
-------------------------------------------------------------------------------------------------------------------------------------------------