diff --git a/Content.Shared/Anomaly/SharedAnomalySystem.cs b/Content.Shared/Anomaly/SharedAnomalySystem.cs index 3ff305f7fe92..1ca13acc9642 100644 --- a/Content.Shared/Anomaly/SharedAnomalySystem.cs +++ b/Content.Shared/Anomaly/SharedAnomalySystem.cs @@ -24,6 +24,8 @@ public abstract class SharedAnomalySystem : EntitySystem [Dependency] protected readonly SharedAppearanceSystem Appearance = default!; [Dependency] protected readonly SharedPopupSystem Popup = default!; + private ISawmill _sawmill = default!; + public override void Initialize() { base.Initialize(); @@ -38,6 +40,8 @@ public override void Initialize() SubscribeLocalEvent(OnAnomalyUnpause); SubscribeLocalEvent(OnPulsingUnpause); SubscribeLocalEvent(OnSupercriticalUnpause); + + _sawmill = Logger.GetSawmill("anomaly"); } private void OnAnomalyGetState(EntityUid uid, AnomalyComponent component, ref ComponentGetState args) @@ -126,6 +130,8 @@ public void DoAnomalyPulse(EntityUid uid, AnomalyComponent? component = null) var variation = Random.NextFloat(-component.PulseVariation, component.PulseVariation) + 1; component.NextPulseTime = Timing.CurTime + GetPulseLength(component) * variation; + _sawmill.Info($"Performing anomaly pulse. Entity: {ToPrettyString(uid)}"); + // if we are above the growth threshold, then grow before the pulse if (component.Stability > component.GrowthThreshold) { @@ -158,6 +164,7 @@ public void StartSupercriticalEvent(EntityUid uid) return; Log.Add(LogType.Anomaly, LogImpact.High, $"Anomaly {ToPrettyString(uid)} began to go supercritical."); + _sawmill.Info($"Anomaly is going supercritical. Entity: {ToPrettyString(uid)}"); var super = EnsureComp(uid); super.EndTime = Timing.CurTime + super.SupercriticalDuration; @@ -182,6 +189,7 @@ public void DoAnomalySupercriticalEvent(EntityUid uid, AnomalyComponent? compone Audio.PlayPvs(component.SupercriticalSound, uid); + _sawmill.Info($"Raising supercritical event. Entity: {ToPrettyString(uid)}"); var ev = new AnomalySupercriticalEvent(); RaiseLocalEvent(uid, ref ev); @@ -196,14 +204,16 @@ public void DoAnomalySupercriticalEvent(EntityUid uid, AnomalyComponent? compone /// Whether or not the anomaly ended via supercritical event public void EndAnomaly(EntityUid uid, AnomalyComponent? component = null, bool supercritical = false) { + // Logging before resolve, in case the anomaly has deleted itself. + _sawmill.Info($"Ending anomaly. Entity: {ToPrettyString(uid)}"); + Log.Add(LogType.Anomaly, LogImpact.Extreme, $"Anomaly {ToPrettyString(uid)} went supercritical."); + if (!Resolve(uid, ref component)) return; var ev = new AnomalyShutdownEvent(uid, supercritical); RaiseLocalEvent(uid, ref ev, true); - Log.Add(LogType.Anomaly, LogImpact.Extreme, $"Anomaly {ToPrettyString(uid)} went supercritical."); - if (Terminating(uid) || _net.IsClient) return; Del(uid);