From b1e4a9a2dd48f4068f9d896ca8ba3cf7cc77e36d Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Thu, 22 Dec 2016 15:34:00 -0500 Subject: [PATCH] Fixes bombs breaking (#22349) * REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE * FAIR FUCKING WARNING * OOP * Prolly better off here * Less superfluous warning * More passive aggressive * "Strike that! Reverse it." * DRY destruction --- code/game/machinery/syndicatebomb.dm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 835c415fba7580..a144d4fc1f437e 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -30,6 +30,19 @@ var/detonation_timer var/explode_now = FALSE +/obj/machinery/syndicatebomb/proc/try_detonate() + . = (payload in src) && active && !defused + if(.) + payload.detonate() + +/obj/machinery/syndicatebomb/obj_break() + if(!try_detonate()) + ..() + +/obj/machinery/syndicatebomb/obj_destruction() + if(!try_detonate()) + ..() + /obj/machinery/syndicatebomb/process() if(!active) STOP_PROCESSING(SSfastprocess, src) @@ -60,8 +73,7 @@ active = FALSE timer_set = initial(timer_set) update_icon() - if(payload in src) - payload.detonate() + try_detonate() //Counter terrorists win else if(!active || defused) if(defused && payload in src) @@ -166,7 +178,10 @@ new /obj/item/stack/sheet/plasteel( loc, 5) qdel(src) else + var/old_integ = obj_integrity . = ..() + if((old_integ > obj_integrity) && active && !defused && (payload in src)) + user << "That seems like a really bad idea..." /obj/machinery/syndicatebomb/attack_hand(mob/user) interact(user)