fixing the handling of the RespiratorComponent without checking (#42665)

* the correction itself

* it will be more adequate

* doc

* not log - not debug

* ohhh
This commit is contained in:
Dmitry 2026-01-27 05:17:52 +07:00 committed by Coryler
parent b81a0c7a85
commit 484b4ec42c
2 changed files with 12 additions and 10 deletions

View File

@ -226,10 +226,11 @@ public sealed class NukeOpsTest
Assert.That(total, Is.GreaterThan(3));
// Check the nukie commander passed basic training and figured out how to breathe.
if (entMan.TryGetComponent<RespiratorComponent>(player, out var resp))
{
var totalSeconds = 30;
var totalTicks = (int)Math.Ceiling(totalSeconds / server.Timing.TickPeriod.TotalSeconds);
var increment = 5;
var resp = entMan.GetComponent<RespiratorComponent>(player);
var damage = entMan.GetComponent<DamageableComponent>(player);
for (var tick = 0; tick < totalTicks; tick += increment)
{
@ -237,6 +238,7 @@ public sealed class NukeOpsTest
Assert.That(resp.SuffocationCycles, Is.LessThanOrEqualTo(resp.SuffocationCycleThreshold));
Assert.That(damage.TotalDamage, Is.EqualTo(FixedPoint2.Zero));
}
}
// Check that the round does not end prematurely when agents are deleted in the outpost
var nukies = dummyEnts.Where(entMan.HasComponent<NukeOperativeComponent>).Append(player).ToArray();

View File

@ -219,7 +219,7 @@ public sealed class RespiratorSystem : EntitySystem
/// <returns>Returns true only if the air is not toxic, and it wouldn't suffocate.</returns>
public bool CanMetabolizeInhaledAir(Entity<RespiratorComponent?> ent)
{
if (!Resolve(ent, ref ent.Comp))
if (!Resolve(ent, ref ent.Comp, false))
return false;
// Get the gas at our location but don't actually remove it from the gas mixture.