diff --git a/Content.Server/Temperature/Components/TemperatureProtectionComponent.cs b/Content.Server/Temperature/Components/TemperatureProtectionComponent.cs
index 437f0f8940..01e46cfc8d 100644
--- a/Content.Server/Temperature/Components/TemperatureProtectionComponent.cs
+++ b/Content.Server/Temperature/Components/TemperatureProtectionComponent.cs
@@ -7,10 +7,16 @@ namespace Content.Server.Temperature.Components;
public sealed partial class TemperatureProtectionComponent : Component
{
///
- /// How much to multiply temperature deltas by.
+ /// Multiplier for the transferred heat when heating up
///
[DataField]
- public float Coefficient = 1.0f;
+ public float HeatingCoefficient = 1.0f;
+
+ ///
+ /// Multiplier for the transferred heat when cooling down
+ ///
+ [DataField]
+ public float CoolingCoefficient = 1.0f;
}
///
diff --git a/Content.Server/Temperature/Systems/TemperatureSystem.cs b/Content.Server/Temperature/Systems/TemperatureSystem.cs
index c6fa213ccb..ccd981bbbc 100644
--- a/Content.Server/Temperature/Systems/TemperatureSystem.cs
+++ b/Content.Server/Temperature/Systems/TemperatureSystem.cs
@@ -299,7 +299,11 @@ public sealed class TemperatureSystem : EntitySystem
private void OnTemperatureChangeAttempt(EntityUid uid, TemperatureProtectionComponent component,
InventoryRelayedEvent args)
{
- var ev = new GetTemperatureProtectionEvent(component.Coefficient);
+ var coefficient = args.Args.TemperatureDelta < 0
+ ? component.CoolingCoefficient
+ : component.HeatingCoefficient;
+
+ var ev = new GetTemperatureProtectionEvent(coefficient);
RaiseLocalEvent(uid, ref ev);
args.Args.TemperatureDelta *= ev.Coefficient;
diff --git a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml
index 66356afacf..e6c8ada7dc 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/base_clothinghead.yml
@@ -126,7 +126,8 @@
highPressureMultiplier: 0.6
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.2
+ heatingCoefficient: 0.2
+ coolingCoefficient: 0.2
- type: IngestionBlocker
- type: Clothing
#Copies ClothingHeadHardsuitBase behavior
@@ -168,7 +169,8 @@
highPressureMultiplier: 0.3
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.1
+ heatingCoefficient: 0.1
+ coolingCoefficient: 0.1
- type: Armor
modifiers:
coefficients:
@@ -258,7 +260,8 @@
quickEquip: false
slots: [ HEAD ]
- type: TemperatureProtection
- coefficient: 0.7
+ heatingCoefficient: 1.05
+ coolingCoefficient: 0.7
- type: GroupExamine
- type: HideLayerClothing
slots:
diff --git a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
index 827d28265a..c38c869f2e 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
@@ -62,7 +62,8 @@
- type: Clothing
sprite: Clothing/Head/Helmets/paramedhelm.rsi
- type: TemperatureProtection
- coefficient: 0.1
+ heatingCoefficient: 0.1
+ coolingCoefficient: 0.1
- type: Armor
modifiers:
coefficients:
diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
index a9785ef928..42075b1cf1 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml
@@ -60,7 +60,8 @@
highPressureMultiplier: 0.08
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.005
+ heatingCoefficient: 0.005
+ coolingCoefficient: 0.005
- type: FireProtection
reduction: 0.2
@@ -407,7 +408,8 @@
highPressureMultiplier: 0.08
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.005
+ heatingCoefficient: 0.005
+ coolingCoefficient: 0.005
- type: FireProtection
reduction: 0.2
- type: Armor
@@ -670,7 +672,8 @@
highPressureMultiplier: 0.08
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.005
+ heatingCoefficient: 0.005
+ coolingCoefficient: 0.005
- type: Armor
modifiers:
coefficients:
diff --git a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml
index e8415c3801..cd9013dfec 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml
@@ -232,7 +232,8 @@
quickEquip: true
- type: IngestionBlocker
- type: TemperatureProtection
- coefficient: 0.005
+ heatingCoefficient: 0.01
+ coolingCoefficient: 0.2
- type: FireProtection
reduction: 0.15 # not fully sealed so less protection
- type: IdentityBlocker
@@ -260,7 +261,8 @@
quickEquip: true
- type: IngestionBlocker
- type: TemperatureProtection
- coefficient: 0.005
+ heatingCoefficient: 0.01
+ coolingCoefficient: 0.2
- type: FireProtection
reduction: 0.2
- type: PressureProtection
diff --git a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml
index 96c4197bdc..82cff81c22 100644
--- a/Resources/Prototypes/Entities/Clothing/Head/hoods.yml
+++ b/Resources/Prototypes/Entities/Clothing/Head/hoods.yml
@@ -220,7 +220,8 @@
highPressureMultiplier: 0.6
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.2
+ heatingCoefficient: 0.2
+ coolingCoefficient: 0.2
- type: BreathMask
# this is on the hood so you only fool the fish if you wear the whole set
# wear carp suit and security helmet, they'll know you are fake
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml
index 5df6adffec..66579f296b 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml
@@ -109,7 +109,8 @@
highPressureMultiplier: 0.3
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.01
+ heatingCoefficient: 0.01
+ coolingCoefficient: 0.01
- type: ClothingSpeedModifier
walkModifier: 0.4
sprintModifier: 0.6
@@ -152,7 +153,8 @@
highPressureMultiplier: 0.6
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.01 # Not complete protection from fire
+ heatingCoefficient: 0.01 # Not complete protection from fire
+ coolingCoefficient: 0.01
- type: ClothingSpeedModifier
walkModifier: 0.8
sprintModifier: 0.8
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
index 532cf93d15..973af52221 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
@@ -124,7 +124,8 @@
- type: Clothing
sprite: Clothing/OuterClothing/Coats/trenchcoat.rsi
- type: TemperatureProtection
- coefficient: 0.1
+ heatingCoefficient: 0.1
+ coolingCoefficient: 0.1
- type: Armor
modifiers:
coefficients:
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
index 314d6b3eae..c6e3383931 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml
@@ -43,7 +43,8 @@
highPressureMultiplier: 0.02
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.001
+ heatingCoefficient: 0.001
+ coolingCoefficient: 0.001
- type: FireProtection
reduction: 0.8
- type: ExplosionResistance
@@ -182,7 +183,8 @@
- type: ExplosionResistance
damageCoefficient: 0.2
- type: TemperatureProtection
- coefficient: 0.001
+ heatingCoefficient: 0.001
+ coolingCoefficient: 0.001
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitMaxim
@@ -543,7 +545,8 @@
highPressureMultiplier: 0.02
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.001
+ heatingCoefficient: 0.001
+ coolingCoefficient: 0.001
- type: ExplosionResistance
damageCoefficient: 0.2
- type: FireProtection
@@ -861,7 +864,8 @@
highPressureMultiplier: 0.02
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.001
+ heatingCoefficient: 0.001
+ coolingCoefficient: 0.001
- type: ExplosionResistance
damageCoefficient: 0.2
- type: FireProtection
@@ -897,7 +901,8 @@
highPressureMultiplier: 0.02
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.001
+ heatingCoefficient: 0.001
+ coolingCoefficient: 0.001
- type: ExplosionResistance
damageCoefficient: 0.7
- type: Armor
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml
index 112637cdd3..c8c83f9db8 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/misc.yml
@@ -300,7 +300,7 @@
- state: equipped-OUTERCLOTHING-lines
color: "#000000"
- type: TemperatureProtection
- coefficient: 0.3
+ coolingCoefficient: 0.3
- type: entity
parent: ClothingOuterBase
@@ -336,7 +336,7 @@
- state: equipped-OUTERCLOTHING-lines
color: "#000000"
- type: TemperatureProtection
- coefficient: 0.3
+ coolingCoefficient: 0.3
- type: entity
parent: ClothingOuterBase
@@ -372,7 +372,7 @@
- state: equipped-OUTERCLOTHING-lines
color: "#000000"
- type: TemperatureProtection
- coefficient: 0.3
+ coolingCoefficient: 0.3
- type: entity
parent: ClothingOuterBase
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml
index 27ee1d5a6a..a60d9bc75c 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/softsuits.yml
@@ -48,7 +48,8 @@
sprintModifier: 0.7
- type: HeldSpeedModifier
- type: TemperatureProtection
- coefficient: 0.5
+ heatingCoefficient: 0.75
+ coolingCoefficient: 0.5
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetEVALarge
slot: head
@@ -109,7 +110,8 @@
sprintModifier: 0.9
- type: HeldSpeedModifier
- type: TemperatureProtection
- coefficient: 0.1
+ heatingCoefficient: 0.1
+ coolingCoefficient: 0.1
- type: Armor
modifiers:
coefficients:
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
index 0f1b9536da..334e87ebf6 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml
@@ -53,7 +53,8 @@
- type: PressureProtection
highPressureMultiplier: 0.04
- type: TemperatureProtection
- coefficient: 0.005
+ heatingCoefficient: 0.005
+ coolingCoefficient: 0.05
- type: FireProtection
reduction: 0.65 # doesnt have a full seal so not as good
- type: Armor
@@ -84,7 +85,8 @@
highPressureMultiplier: 0.02
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.001
+ heatingCoefficient: 0.001
+ coolingCoefficient: 0.05
- type: FireProtection
reduction: 0.8 # atmos firesuit offers best protection, hardsuits are a little vulnerable
- type: Armor
@@ -141,7 +143,8 @@
highPressureMultiplier: 0.6
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.01
+ heatingCoefficient: 0.01
+ coolingCoefficient: 0.01
- type: Armor
modifiers:
coefficients:
@@ -287,6 +290,7 @@
highPressureMultiplier: 0.6
lowPressureMultiplier: 1000
- type: TemperatureProtection
- coefficient: 0.01
+ heatingCoefficient: 0.01
+ coolingCoefficient: 0.01
- type: ToggleableClothing
clothingPrototype: ClothingHeadHelmetHardsuitCarp
diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml
index 378e10d322..ec38b79370 100644
--- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml
+++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml
@@ -9,7 +9,8 @@
- type: Clothing
sprite: Clothing/OuterClothing/WinterCoats/coat.rsi
- type: TemperatureProtection
- coefficient: 0.1
+ heatingCoefficient: 1.1
+ coolingCoefficient: 0.1
- type: Item
size: Normal
- type: Armor
diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml
index d096ee3ff1..e9b8431707 100644
--- a/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml
+++ b/Resources/Prototypes/Entities/Clothing/Shoes/base_clothingshoes.yml
@@ -69,4 +69,5 @@
description: Fluffy boots to help survive even the coldest of winters.
components:
- type: TemperatureProtection
- coefficient: 0.2
+ heatingCoefficient: 1.025
+ coolingCoefficient: 0.5