Release 1.11.5.0 - Winter Update 2025 Hotfix 1
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<Authors>FakeFish, Undertow Games</Authors>
|
<Authors>FakeFish, Undertow Games</Authors>
|
||||||
<Product>Barotrauma</Product>
|
<Product>Barotrauma</Product>
|
||||||
<Version>1.11.4.1</Version>
|
<Version>1.11.5.0</Version>
|
||||||
<Copyright>Copyright © FakeFish 2018-2024</Copyright>
|
<Copyright>Copyright © FakeFish 2018-2024</Copyright>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
<AssemblyName>Barotrauma</AssemblyName>
|
<AssemblyName>Barotrauma</AssemblyName>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<Authors>FakeFish, Undertow Games</Authors>
|
<Authors>FakeFish, Undertow Games</Authors>
|
||||||
<Product>Barotrauma</Product>
|
<Product>Barotrauma</Product>
|
||||||
<Version>1.11.4.1</Version>
|
<Version>1.11.5.0</Version>
|
||||||
<Copyright>Copyright © FakeFish 2018-2024</Copyright>
|
<Copyright>Copyright © FakeFish 2018-2024</Copyright>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
<AssemblyName>Barotrauma</AssemblyName>
|
<AssemblyName>Barotrauma</AssemblyName>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<Authors>FakeFish, Undertow Games</Authors>
|
<Authors>FakeFish, Undertow Games</Authors>
|
||||||
<Product>Barotrauma</Product>
|
<Product>Barotrauma</Product>
|
||||||
<Version>1.11.4.1</Version>
|
<Version>1.11.5.0</Version>
|
||||||
<Copyright>Copyright © FakeFish 2018-2024</Copyright>
|
<Copyright>Copyright © FakeFish 2018-2024</Copyright>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
<AssemblyName>Barotrauma</AssemblyName>
|
<AssemblyName>Barotrauma</AssemblyName>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<Authors>FakeFish, Undertow Games</Authors>
|
<Authors>FakeFish, Undertow Games</Authors>
|
||||||
<Product>Barotrauma Dedicated Server</Product>
|
<Product>Barotrauma Dedicated Server</Product>
|
||||||
<Version>1.11.4.1</Version>
|
<Version>1.11.5.0</Version>
|
||||||
<Copyright>Copyright © FakeFish 2018-2023</Copyright>
|
<Copyright>Copyright © FakeFish 2018-2023</Copyright>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
<AssemblyName>DedicatedServer</AssemblyName>
|
<AssemblyName>DedicatedServer</AssemblyName>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<Authors>FakeFish, Undertow Games</Authors>
|
<Authors>FakeFish, Undertow Games</Authors>
|
||||||
<Product>Barotrauma Dedicated Server</Product>
|
<Product>Barotrauma Dedicated Server</Product>
|
||||||
<Version>1.11.4.1</Version>
|
<Version>1.11.5.0</Version>
|
||||||
<Copyright>Copyright © FakeFish 2018-2023</Copyright>
|
<Copyright>Copyright © FakeFish 2018-2023</Copyright>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
<AssemblyName>DedicatedServer</AssemblyName>
|
<AssemblyName>DedicatedServer</AssemblyName>
|
||||||
|
|||||||
+16
-5
@@ -273,16 +273,27 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
if (characterInfo == null || characterInfo.Discarded) { continue; }
|
if (characterInfo == null || characterInfo.Discarded) { continue; }
|
||||||
//reduce skills if the character has died
|
//reduce skills if the character has died
|
||||||
if (characterInfo.CauseOfDeath != null && characterInfo.CauseOfDeath.Type != CauseOfDeathType.Disconnected)
|
bool diedToDisconnect = characterInfo.CauseOfDeath is { Type: CauseOfDeathType.Disconnected };
|
||||||
|
bool diedForReal = characterInfo.CauseOfDeath != null && !diedToDisconnect;
|
||||||
|
if (diedForReal)
|
||||||
{
|
{
|
||||||
characterInfo.ApplyDeathEffects();
|
characterInfo.ApplyDeathEffects();
|
||||||
}
|
}
|
||||||
c.CharacterInfo = characterInfo;
|
c.CharacterInfo = characterInfo;
|
||||||
|
|
||||||
// Only create new character data if the connected client has an active character (which they might not,
|
//Different scenarios for saving (or not saving) the character:
|
||||||
// eg. if they are in the lobby). Otherwise the CharacterCampaignData constructor would fall back to a new
|
// 1. Client is controlling a character, character is alive
|
||||||
// Character object, overwriting the inventory and wallet with empty values.
|
// -> save normally
|
||||||
if (c.Character != null)
|
// 2. Client is not controlling a character, previous character died
|
||||||
|
// -> save normally (applying skill reduction, getting rid of the items the character had, etc)
|
||||||
|
// 3. Client is not controlling a character, previous character died due to a disconnect (e.g. client left or went to the lobby, and later returned)
|
||||||
|
// -> do not save, the character should retain their skills and items
|
||||||
|
// 4. Client is not controlling a character, and they don't have any previous character data
|
||||||
|
// -> we shouldn't be getting to this point at all, we return earlier if no character info that has spawned is found
|
||||||
|
// 5. Client is not controlling a character, but they have previous character data which has not yet spawned (e.g. they've played on this server on some previous round)
|
||||||
|
// -> we shouldn't be getting to this point at all, we return earlier if no character info that has spawned is found
|
||||||
|
|
||||||
|
if (c.Character != null || diedForReal)
|
||||||
{
|
{
|
||||||
SetClientCharacterData(c);
|
SetClientCharacterData(c);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<RootNamespace>Barotrauma</RootNamespace>
|
<RootNamespace>Barotrauma</RootNamespace>
|
||||||
<Authors>FakeFish, Undertow Games</Authors>
|
<Authors>FakeFish, Undertow Games</Authors>
|
||||||
<Product>Barotrauma Dedicated Server</Product>
|
<Product>Barotrauma Dedicated Server</Product>
|
||||||
<Version>1.11.4.1</Version>
|
<Version>1.11.5.0</Version>
|
||||||
<Copyright>Copyright © FakeFish 2018-2023</Copyright>
|
<Copyright>Copyright © FakeFish 2018-2023</Copyright>
|
||||||
<Platforms>AnyCPU;x64</Platforms>
|
<Platforms>AnyCPU;x64</Platforms>
|
||||||
<AssemblyName>DedicatedServer</AssemblyName>
|
<AssemblyName>DedicatedServer</AssemblyName>
|
||||||
|
|||||||
@@ -441,12 +441,13 @@ namespace Barotrauma
|
|||||||
if (Identifier == Tags.DeconstructThis && item.AllowDeconstruct)
|
if (Identifier == Tags.DeconstructThis && item.AllowDeconstruct)
|
||||||
{
|
{
|
||||||
if (item.AllowDeconstruct && !Item.DeconstructItems.Contains(item) &&
|
if (item.AllowDeconstruct && !Item.DeconstructItems.Contains(item) &&
|
||||||
//only allow deconstructing if there are deconstruction recipes that
|
//only allow deconstructing if there are no deconstruction recipes (= deconstructing yields nothing), or deconstruction recipes that
|
||||||
|
(item.Prefab.DeconstructItems.None() ||
|
||||||
item.Prefab.DeconstructItems.Any(deconstructItem =>
|
item.Prefab.DeconstructItems.Any(deconstructItem =>
|
||||||
//1. don't require any additional items (bots can't handle that)
|
//1. don't require any additional items (bots can't handle that)
|
||||||
deconstructItem.RequiredOtherItem.None() &&
|
deconstructItem.RequiredOtherItem.None() &&
|
||||||
//2. don't require a research station (bots don't know how to use those)
|
//2. don't require a research station (bots don't know how to use those)
|
||||||
(deconstructItem.RequiredDeconstructor.Length == 0 || deconstructItem.RequiredDeconstructor.Any(d => d != Tags.GeneticResearchStation))))
|
(deconstructItem.RequiredDeconstructor.Length == 0 || deconstructItem.RequiredDeconstructor.Any(d => d != Tags.GeneticResearchStation)))))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -624,9 +624,9 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (IsPet)
|
if (IsPet && AIController is EnemyAIController { PetBehavior: { } petBehavior })
|
||||||
{
|
{
|
||||||
string petName = (AIController as EnemyAIController).PetBehavior.GetTagName();
|
string petName = petBehavior.GetTagName();
|
||||||
if (!string.IsNullOrEmpty(petName)) { return petName; }
|
if (!string.IsNullOrEmpty(petName)) { return petName; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -311,7 +311,7 @@ namespace Barotrauma
|
|||||||
if (Character.AnimController.Limbs.None(l => l.HealthIndex == i))
|
if (Character.AnimController.Limbs.None(l => l.HealthIndex == i))
|
||||||
{
|
{
|
||||||
DebugConsole.AddWarning(
|
DebugConsole.AddWarning(
|
||||||
$"Potential error in character {Character.DisplayName}: none of the limbs have been set to use the LimbHealth #{i}, and it will do nothing. "
|
$"Potential error in character \"{Character.Prefab.Identifier}\": none of the limbs have been set to use the LimbHealth #{i}, and it will do nothing. "
|
||||||
+ "Did you forget to set the HealthIndex values of the limbs?", contentPackage: Character.ContentPackage);
|
+ "Did you forget to set the HealthIndex values of the limbs?", contentPackage: Character.ContentPackage);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
|
using System.Linq;
|
||||||
using Barotrauma.Items.Components;
|
using Barotrauma.Items.Components;
|
||||||
using Microsoft.Xna.Framework;
|
using Microsoft.Xna.Framework;
|
||||||
|
|
||||||
@@ -142,7 +143,7 @@ namespace Barotrauma
|
|||||||
Vector2 drawPos = Position;
|
Vector2 drawPos = Position;
|
||||||
drawPos.Y = -drawPos.Y;
|
drawPos.Y = -drawPos.Y;
|
||||||
|
|
||||||
foreach (var c in Connectors)
|
foreach (var c in Connectors.OrderBy(static c => c.Connection.DisplayOrder))
|
||||||
{
|
{
|
||||||
bool isOutput = c.IsOutput;
|
bool isOutput = c.IsOutput;
|
||||||
|
|
||||||
|
|||||||
@@ -462,18 +462,18 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
|
|
||||||
private float impactTolerance;
|
private float impactTolerance;
|
||||||
[Serialize(0.0f, IsPropertySaveable.No), ConditionallyEditable(ConditionallyEditable.ConditionType.ReceivesSubmarineImpacts, MinValueFloat = 0, MaxValueFloat = 100)]
|
[Serialize(0.0f, IsPropertySaveable.Yes), ConditionallyEditable(ConditionallyEditable.ConditionType.ReceivesSubmarineImpacts, MinValueFloat = 0, MaxValueFloat = 100)]
|
||||||
public float ImpactTolerance
|
public float ImpactTolerance
|
||||||
{
|
{
|
||||||
get { return impactTolerance; }
|
get { return impactTolerance; }
|
||||||
set { impactTolerance = Math.Max(value, 0.0f); }
|
set { impactTolerance = Math.Max(value, 0.0f); }
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serialize(0.0f, IsPropertySaveable.No, description: "The amount of damage the item takes from impacts. Acts as a multiplier on the strength of the impact. Note that ImpactTolerance must be set for impacts to register."),
|
[Serialize(0.0f, IsPropertySaveable.Yes, description: "The amount of damage the item takes from impacts. Acts as a multiplier on the strength of the impact. Note that ImpactTolerance must be set for impacts to register."),
|
||||||
ConditionallyEditable(ConditionallyEditable.ConditionType.ReceivesSubmarineImpacts, MinValueFloat = 0, MaxValueFloat = 100)]
|
ConditionallyEditable(ConditionallyEditable.ConditionType.ReceivesSubmarineImpacts, MinValueFloat = 0, MaxValueFloat = 100)]
|
||||||
public float ImpactDamage { get; set; }
|
public float ImpactDamage { get; set; }
|
||||||
|
|
||||||
[Serialize(1.0f, IsPropertySaveable.No, description: "Probability for impacts to register. Defaults to 1. Note that ImpactTolerance must also be set for impacts to register."),
|
[Serialize(1.0f, IsPropertySaveable.Yes, description: "Probability for impacts to register. Defaults to 1. Note that ImpactTolerance must also be set for impacts to register."),
|
||||||
ConditionallyEditable(ConditionallyEditable.ConditionType.ReceivesSubmarineImpacts, MinValueFloat = 0, MaxValueFloat = 1)]
|
ConditionallyEditable(ConditionallyEditable.ConditionType.ReceivesSubmarineImpacts, MinValueFloat = 0, MaxValueFloat = 1)]
|
||||||
public float ImpactDamageProbability { get; set; }
|
public float ImpactDamageProbability { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,14 @@
|
|||||||
-------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
v1.11.5.0 (Winter Update Hotfix 1)
|
||||||
|
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
- Fixed players sometimes retaining their old inventory items if they die and respawn on a later round.
|
||||||
|
- Fixed inability to order bots to deconstruct items that don't yield anything when deconstructed.
|
||||||
|
- Fixed weak points causing the "high pressure" icon to appear in the room, despite the pressure not being high enough to cause damage.
|
||||||
|
- Fixed relay connections being in an incorrect order in circuit boxes.
|
||||||
|
- Fixed ImpactTolerance, ImpactDamage and ImpactDamageProbability resetting back to defaults when saving and reloading a sub.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
v1.11.4.1 (Winter Update 2025)
|
v1.11.4.1 (Winter Update 2025)
|
||||||
-------------------------------------------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user