From e01728c0ab6c11ebb7517f8f1f745a25cfe9c2b3 Mon Sep 17 00:00:00 2001 From: Kara Date: Tue, 21 Jun 2022 09:44:02 -0700 Subject: [PATCH] Disallow bible healing if target is dead (#8999) --- Content.Server/Bible/BibleSystem.cs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Content.Server/Bible/BibleSystem.cs b/Content.Server/Bible/BibleSystem.cs index fcb07be9b6..a31f7198a1 100644 --- a/Content.Server/Bible/BibleSystem.cs +++ b/Content.Server/Bible/BibleSystem.cs @@ -92,7 +92,9 @@ namespace Content.Server.Bible { return; } - if (args.Target == null || args.Target == args.User || !HasComp(args.Target)) + + if (args.Target == null || args.Target == args.User || !TryComp(args.Target, out var mobState) + || mobState.IsDead()) { return; } @@ -112,19 +114,19 @@ namespace Content.Server.Bible } // This only has a chance to fail if the target is not wearing anything on their head and is not a familiar. - if (!_invSystem.TryGetSlotEntity(args.Target.Value, "head", out var entityUid) && !HasComp(args.Target.Value)) + if (!_invSystem.TryGetSlotEntity(args.Target.Value, "head", out var _) && !HasComp(args.Target.Value)) { if (_random.Prob(component.FailChance)) { - var othersFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-others", ("user", args.User),("target", args.Target),("bible", uid)); - _popupSystem.PopupEntity(othersFailMessage, args.User, Filter.Pvs(args.User).RemoveWhereAttachedEntity(puid => puid == args.User)); + var othersFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-others", ("user", args.User),("target", args.Target),("bible", uid)); + _popupSystem.PopupEntity(othersFailMessage, args.User, Filter.Pvs(args.User).RemoveWhereAttachedEntity(puid => puid == args.User)); - var selfFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-self", ("target", args.Target),("bible", uid)); - _popupSystem.PopupEntity(selfFailMessage, args.User, Filter.Entities(args.User)); + var selfFailMessage = Loc.GetString(component.LocPrefix + "-heal-fail-self", ("target", args.Target),("bible", uid)); + _popupSystem.PopupEntity(selfFailMessage, args.User, Filter.Entities(args.User)); - SoundSystem.Play("/Audio/Effects/hit_kick.ogg", Filter.Pvs(args.Target.Value), args.User); - _damageableSystem.TryChangeDamage(args.Target.Value, component.DamageOnFail, true); - return; + SoundSystem.Play("/Audio/Effects/hit_kick.ogg", Filter.Pvs(args.Target.Value), args.User); + _damageableSystem.TryChangeDamage(args.Target.Value, component.DamageOnFail, true); + return; } }