Severely nerf fires and severely buff fire protection (#5396)
* Make fires do less damage * Severely nerf fires and severely buff temperature protection * fuck it, i'll nerf it so hard and we can buff it later if we decide * new scaling func * fix * unused * reviews + balance metabolism heat + reduce atmos air temp transfer efficiency * little more balance * just a wee bit more * slight adjustment
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using Content.Shared.Atmos;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.FixedPoint;
|
||||
using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.Physics;
|
||||
using Robust.Shared.Serialization.Manager.Attributes;
|
||||
@@ -18,22 +19,30 @@ namespace Content.Server.Temperature.Components
|
||||
/// <inheritdoc />
|
||||
public override string Name => "Temperature";
|
||||
|
||||
[DataField("heatDamageThreshold")]
|
||||
private float _heatDamageThreshold = default;
|
||||
[DataField("coldDamageThreshold")]
|
||||
private float _coldDamageThreshold = default;
|
||||
[DataField("tempDamageCoefficient")]
|
||||
private float _tempDamageCoefficient = 1;
|
||||
[DataField("currentTemperature")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float CurrentTemperature { get; set; } = Atmospherics.T20C;
|
||||
[DataField("specificHeat")]
|
||||
private float _specificHeat = Atmospherics.MinimumHeatCapacity;
|
||||
|
||||
[ViewVariables] public float HeatDamageThreshold => _heatDamageThreshold;
|
||||
[ViewVariables] public float ColdDamageThreshold => _coldDamageThreshold;
|
||||
[ViewVariables] public float TempDamageCoefficient => _tempDamageCoefficient;
|
||||
[ViewVariables] public float SpecificHeat => _specificHeat;
|
||||
[ViewVariables] public float HeatCapacity {
|
||||
[DataField("heatDamageThreshold")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float HeatDamageThreshold = 360f;
|
||||
|
||||
[DataField("coldDamageThreshold")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float ColdDamageThreshold = 260f;
|
||||
|
||||
[DataField("specificHeat")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float SpecificHeat = 50f;
|
||||
|
||||
/// <summary>
|
||||
/// How well does the air surrounding you merge into your body temperature?
|
||||
/// </summary>
|
||||
[DataField("atmosTemperatureTransferEfficiency")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public float AtmosTemperatureTransferEfficiency = 0.1f;
|
||||
|
||||
[ViewVariables] public float HeatCapacity
|
||||
{
|
||||
get
|
||||
{
|
||||
if (Owner.TryGetComponent<IPhysBody>(out var physics))
|
||||
@@ -52,5 +61,14 @@ namespace Content.Server.Temperature.Components
|
||||
[DataField("heatDamage", required: true)]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public DamageSpecifier HeatDamage = default!;
|
||||
|
||||
/// <summary>
|
||||
/// Temperature won't do more than this amount of damage per second.
|
||||
///
|
||||
/// Okay it genuinely reaches this basically immediately for a plasma fire.
|
||||
/// </summary>
|
||||
[DataField("damageCap")]
|
||||
[ViewVariables(VVAccess.ReadWrite)]
|
||||
public FixedPoint2 DamageCap = FixedPoint2.New(8);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user