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