From 83447c88114177eb9354b649ab709c967c59c21d Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Thu, 24 Jul 2025 00:37:54 -0700 Subject: [PATCH] [MIRROR] Containment field exploit fix (#11228) Co-authored-by: SatinIsle <98125273+SatinIsle@users.noreply.github.com> --- .../modules/power/singularity/containment_field.dm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 09defd2d1a..ec4a573578 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -47,10 +47,18 @@ /obj/machinery/containment_field/ex_act(severity) return 0 -/obj/machinery/containment_field/Crossed(mob/living/L) - if(!istype(L) || L.is_incorporeal()) +/obj/machinery/containment_field/Crossed(atom/A) + if(!istype(A) || A.is_incorporeal()) return - shock(L) + if(isliving(A)) + var/mob/living/L = A + shock(L) + return + if(A.density) + if(istype(A,/obj/machinery/containment_field) || istype(A,/obj/effect) || istype(A,/obj/singularity)) + return + else + Destroy() /obj/machinery/containment_field/HasProximity(turf/T, datum/weakref/WF, old_loc) if(isnull(WF))