Files
tbd-station-14/Content.Shared/_Offbrand/Wounds/CryostasisFactorSystem.cs
Janet Blackquill d1d939a898 rebase
2025-11-21 00:32:28 -05:00

35 lines
1.2 KiB
C#

using Content.Shared._Offbrand.Wounds;
using Content.Shared.Body.Events;
using Content.Shared.Body.Systems;
using Content.Shared.Medical.Cryogenics;
using Content.Shared.Temperature.Components;
using Content.Shared.Temperature;
namespace Content.Server._Offbrand.Wounds;
public sealed class CryostasisFactorSystem : EntitySystem
{
[Dependency] protected readonly SharedMetabolizerSystem _metabolizer = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CryostasisFactorComponent, OnTemperatureChangeEvent>(OnTemperatureChange);
SubscribeLocalEvent<CryostasisFactorComponent, GetMetabolicMultiplierEvent>(OnGetMetabolicMultiplier);
}
private void OnTemperatureChange(Entity<CryostasisFactorComponent> ent, ref OnTemperatureChangeEvent args)
{
_metabolizer.UpdateMetabolicMultiplier(ent);
}
private void OnGetMetabolicMultiplier(Entity<CryostasisFactorComponent> ent, ref GetMetabolicMultiplierEvent args)
{
if (!TryComp<TemperatureComponent>(ent, out var temp))
return;
args.Multiplier *= Math.Max(ent.Comp.TemperatureCoefficient * temp.CurrentTemperature + ent.Comp.TemperatureConstant, 1);
}
}