From f870b66b3173d5fde0a17b3e3f85a285fe7d3729 Mon Sep 17 00:00:00 2001 From: MoreRobustThanYou Date: Tue, 3 Oct 2017 05:39:41 -0400 Subject: [PATCH 1/2] Makes antimatter code less shit (#31219) * Antimatter shielding that can't find a control unit won't delete itself anymore * Update shielding.dm * Update shielding.dm * Update shielding.dm * Update shielding.dm * Update shielding.dm * Update shielding.dm * gthruhru * thanks Antur --- code/modules/power/antimatter/shielding.dm | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index e6814c5c0a..39353737bb 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -32,16 +32,24 @@ . = ..() addtimer(CALLBACK(src, .proc/controllerscan), 10) +/obj/machinery/am_shielding/proc/overheat() + visible_message("[src] melts!") + new /obj/effect/hotspot(loc) + qdel(src) + +/obj/machinery/am_shielding/proc/collapse() + visible_message("[src] collapses back into a container!") + new /obj/item/device/am_shielding_container(drop_location()) + qdel(src) /obj/machinery/am_shielding/proc/controllerscan(priorscan = 0) //Make sure we are the only one here - if(!istype(src.loc, /turf)) - qdel(src) - return + if(!isturf(loc)) + collapse() for(var/obj/machinery/am_shielding/AMS in loc.contents) if(AMS == src) continue - qdel(src) + collapse() return //Search for shielding first @@ -59,7 +67,7 @@ if(!priorscan) addtimer(CALLBACK(src, .proc/controllerscan, 1), 20) return - qdel(src) + collapse() /obj/machinery/am_shielding/Destroy() @@ -67,7 +75,6 @@ control_unit.remove_shielding(src) if(processing) shutdown_core() - visible_message("The [src.name] melts!") //Might want to have it leave a mess on the floor but no sprites for now return ..() @@ -209,7 +216,7 @@ if(injecting_fuel && control_unit) control_unit.exploding = 1 if(src) - qdel(src) + overheat() return