From 56041070c6dd9f64b90a5651b0dd3272ed949450 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Thu, 26 Sep 2024 12:56:36 -0400 Subject: [PATCH 1/2] Update SharedDeadStartupButtonSystem.cs --- .../DeadStartupButton/SharedDeadStartupButtonSystem.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs b/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs index 605ca48e6cb..bd0761f4e11 100644 --- a/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs +++ b/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs @@ -1,4 +1,5 @@ using Content.Shared.DoAfter; +using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; using Content.Shared.Verbs; using Robust.Shared.Audio.Systems; @@ -12,7 +13,7 @@ namespace Content.Shared.Silicon.DeadStartupButton; /// This creates a Button that can be activated after an entity, usually a silicon or an IPC, died. /// This will activate a doAfter and then revive the entity, playing a custom afterward sound. /// -public abstract partial class SharedDeadStartupButtonSystem : EntitySystem +public partial class SharedDeadStartupButtonSystem : EntitySystem { [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; @@ -27,7 +28,8 @@ public override void Initialize() private void AddTurnOnVerb(EntityUid uid, DeadStartupButtonComponent component, GetVerbsEvent args) { - if (!_mobState.IsDead(uid) + if (!TryComp(uid, out var mobState) + || !_mobState.IsDead(uid, mobState) || !args.CanAccess || !args.CanInteract || args.Hands == null) return; From 74b78f3979e66e8af6245e16042723204b1340d3 Mon Sep 17 00:00:00 2001 From: VMSolidus Date: Thu, 26 Sep 2024 13:17:38 -0400 Subject: [PATCH 2/2] Yep this works --- .../Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs | 1 + .../Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs b/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs index 1c43a3cff91..6e516f3011e 100644 --- a/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs +++ b/Content.Server/Silicon/DeadStartupButtonSystem/DeadStartupButtonSystem.cs @@ -28,6 +28,7 @@ public sealed class DeadStartupButtonSystem : SharedDeadStartupButtonSystem /// public override void Initialize() { + base.Initialize(); SubscribeLocalEvent(OnDoAfter); SubscribeLocalEvent(OnElectrocuted); SubscribeLocalEvent(OnMobStateChanged); diff --git a/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs b/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs index bd0761f4e11..ced89e78608 100644 --- a/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs +++ b/Content.Shared/Silicon/DeadStartupButton/SharedDeadStartupButtonSystem.cs @@ -13,7 +13,7 @@ namespace Content.Shared.Silicon.DeadStartupButton; /// This creates a Button that can be activated after an entity, usually a silicon or an IPC, died. /// This will activate a doAfter and then revive the entity, playing a custom afterward sound. /// -public partial class SharedDeadStartupButtonSystem : EntitySystem +public abstract partial class SharedDeadStartupButtonSystem : EntitySystem { [Dependency] private readonly MobStateSystem _mobState = default!; [Dependency] private readonly SharedAudioSystem _audio = default!;