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 -------------------------------------------------------------------------------------------------------------------------------------------------