temperature reset on rejuvenate (#19142)
Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
@@ -6,9 +6,11 @@ using Content.Server.Atmos.Components;
|
|||||||
using Content.Server.Atmos.EntitySystems;
|
using Content.Server.Atmos.EntitySystems;
|
||||||
using Content.Server.Temperature.Components;
|
using Content.Server.Temperature.Components;
|
||||||
using Content.Shared.Alert;
|
using Content.Shared.Alert;
|
||||||
|
using Content.Shared.Atmos;
|
||||||
using Content.Shared.Damage;
|
using Content.Shared.Damage;
|
||||||
using Content.Shared.Database;
|
using Content.Shared.Database;
|
||||||
using Content.Shared.Inventory;
|
using Content.Shared.Inventory;
|
||||||
|
using Content.Shared.Rejuvenate;
|
||||||
using Content.Shared.Temperature;
|
using Content.Shared.Temperature;
|
||||||
using Robust.Server.GameObjects;
|
using Robust.Server.GameObjects;
|
||||||
|
|
||||||
@@ -37,6 +39,7 @@ namespace Content.Server.Temperature.Systems
|
|||||||
{
|
{
|
||||||
SubscribeLocalEvent<TemperatureComponent, OnTemperatureChangeEvent>(EnqueueDamage);
|
SubscribeLocalEvent<TemperatureComponent, OnTemperatureChangeEvent>(EnqueueDamage);
|
||||||
SubscribeLocalEvent<TemperatureComponent, AtmosExposedUpdateEvent>(OnAtmosExposedUpdate);
|
SubscribeLocalEvent<TemperatureComponent, AtmosExposedUpdateEvent>(OnAtmosExposedUpdate);
|
||||||
|
SubscribeLocalEvent<TemperatureComponent, RejuvenateEvent>(OnRejuvenate);
|
||||||
SubscribeLocalEvent<AlertsComponent, OnTemperatureChangeEvent>(ServerAlert);
|
SubscribeLocalEvent<AlertsComponent, OnTemperatureChangeEvent>(ServerAlert);
|
||||||
SubscribeLocalEvent<TemperatureProtectionComponent, InventoryRelayedEvent<ModifyChangedTemperatureEvent>>(
|
SubscribeLocalEvent<TemperatureProtectionComponent, InventoryRelayedEvent<ModifyChangedTemperatureEvent>>(
|
||||||
OnTemperatureChangeAttempt);
|
OnTemperatureChangeAttempt);
|
||||||
@@ -66,10 +69,11 @@ namespace Content.Server.Temperature.Systems
|
|||||||
{
|
{
|
||||||
MetaDataComponent? metaData = null;
|
MetaDataComponent? metaData = null;
|
||||||
|
|
||||||
if (Deleted(comp.Owner, metaData) || Paused(comp.Owner, metaData))
|
var uid = comp.Owner;
|
||||||
|
if (Deleted(uid, metaData) || Paused(uid, metaData))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ChangeDamage(comp.Owner, comp);
|
ChangeDamage(uid, comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
ShouldUpdateDamage.Clear();
|
ShouldUpdateDamage.Clear();
|
||||||
@@ -77,14 +81,14 @@ namespace Content.Server.Temperature.Systems
|
|||||||
|
|
||||||
public void ForceChangeTemperature(EntityUid uid, float temp, TemperatureComponent? temperature = null)
|
public void ForceChangeTemperature(EntityUid uid, float temp, TemperatureComponent? temperature = null)
|
||||||
{
|
{
|
||||||
if (Resolve(uid, ref temperature))
|
if (!Resolve(uid, ref temperature))
|
||||||
{
|
return;
|
||||||
float lastTemp = temperature.CurrentTemperature;
|
|
||||||
float delta = temperature.CurrentTemperature - temp;
|
float lastTemp = temperature.CurrentTemperature;
|
||||||
temperature.CurrentTemperature = temp;
|
float delta = temperature.CurrentTemperature - temp;
|
||||||
RaiseLocalEvent(uid, new OnTemperatureChangeEvent(temperature.CurrentTemperature, lastTemp, delta),
|
temperature.CurrentTemperature = temp;
|
||||||
true);
|
RaiseLocalEvent(uid, new OnTemperatureChangeEvent(temperature.CurrentTemperature, lastTemp, delta),
|
||||||
}
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ChangeHeat(EntityUid uid, float heatAmount, bool ignoreHeatResistance = false,
|
public void ChangeHeat(EntityUid uid, float heatAmount, bool ignoreHeatResistance = false,
|
||||||
@@ -126,6 +130,11 @@ namespace Content.Server.Temperature.Systems
|
|||||||
ChangeHeat(uid, heat * temperature.AtmosTemperatureTransferEfficiency, temperature: temperature);
|
ChangeHeat(uid, heat * temperature.AtmosTemperatureTransferEfficiency, temperature: temperature);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnRejuvenate(EntityUid uid, TemperatureComponent comp, RejuvenateEvent args)
|
||||||
|
{
|
||||||
|
ForceChangeTemperature(uid, Atmospherics.T20C, comp);
|
||||||
|
}
|
||||||
|
|
||||||
private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureChangeEvent args)
|
private void ServerAlert(EntityUid uid, AlertsComponent status, OnTemperatureChangeEvent args)
|
||||||
{
|
{
|
||||||
switch (args.CurrentTemperature)
|
switch (args.CurrentTemperature)
|
||||||
@@ -174,7 +183,7 @@ namespace Content.Server.Temperature.Systems
|
|||||||
|
|
||||||
private void ChangeDamage(EntityUid uid, TemperatureComponent temperature)
|
private void ChangeDamage(EntityUid uid, TemperatureComponent temperature)
|
||||||
{
|
{
|
||||||
if (!EntityManager.HasComponent<DamageableComponent>(uid))
|
if (!HasComp<DamageableComponent>(uid))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// See this link for where the scaling func comes from:
|
// See this link for where the scaling func comes from:
|
||||||
@@ -192,8 +201,7 @@ namespace Content.Server.Temperature.Systems
|
|||||||
{
|
{
|
||||||
if (!temperature.TakingDamage)
|
if (!temperature.TakingDamage)
|
||||||
{
|
{
|
||||||
_adminLogger.Add(LogType.Temperature,
|
_adminLogger.Add(LogType.Temperature, $"{ToPrettyString(uid):entity} started taking high temperature damage");
|
||||||
$"{ToPrettyString(temperature.Owner):entity} started taking high temperature damage");
|
|
||||||
temperature.TakingDamage = true;
|
temperature.TakingDamage = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,8 +213,7 @@ namespace Content.Server.Temperature.Systems
|
|||||||
{
|
{
|
||||||
if (!temperature.TakingDamage)
|
if (!temperature.TakingDamage)
|
||||||
{
|
{
|
||||||
_adminLogger.Add(LogType.Temperature,
|
_adminLogger.Add(LogType.Temperature, $"{ToPrettyString(uid):entity} started taking low temperature damage");
|
||||||
$"{ToPrettyString(temperature.Owner):entity} started taking low temperature damage");
|
|
||||||
temperature.TakingDamage = true;
|
temperature.TakingDamage = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,8 +224,7 @@ namespace Content.Server.Temperature.Systems
|
|||||||
}
|
}
|
||||||
else if (temperature.TakingDamage)
|
else if (temperature.TakingDamage)
|
||||||
{
|
{
|
||||||
_adminLogger.Add(LogType.Temperature,
|
_adminLogger.Add(LogType.Temperature, $"{ToPrettyString(uid):entity} stopped taking temperature damage");
|
||||||
$"{ToPrettyString(temperature.Owner):entity} stopped taking temperature damage");
|
|
||||||
temperature.TakingDamage = false;
|
temperature.TakingDamage = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user