From bf88ce8e5530668edad59d6883a91ecd978c821d Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Mon, 3 Feb 2020 23:27:07 +0100 Subject: [PATCH] Fixes straightjackets to buckle you forever --- code/modules/mob/living/carbon/carbon.dm | 10 ++++++---- code/modules/mob/living/carbon/human/human.dm | 11 ++++------- code/modules/mob/update_status.dm | 5 ++++- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index af6bdb26af5..bc167910747 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -615,10 +615,12 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, return TRUE /mob/living/carbon/restrained() - if(handcuffed) + if(get_retraining_item()) return TRUE - return + return FALSE +/mob/living/carbon/get_retraining_item() + return handcuffed /mob/living/carbon/unEquip(obj/item/I, force) //THIS PROC DID NOT CALL ..() . = ..() //Sets the default return value to what the parent returns. @@ -773,8 +775,8 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump, /mob/living/carbon/resist_buckle() spawn(0) resist_muzzle() - if(restrained()) - var/obj/item/I = handcuffed + var/obj/item/I + if((I = get_retraining_item())) // If there is nothing to restrain him then he is not restrained var/breakouttime = I.breakouttime var/displaytime = breakouttime / 10 changeNext_move(CLICK_CD_BREAKOUT) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index fd4c9f0116e..fef44d69e9d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -312,13 +312,10 @@ return 0 ..() -/mob/living/carbon/human/restrained() - if(handcuffed) - return 1 - if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) - return 1 - return 0 - +/mob/living/carbon/human/get_retraining_item() + . = ..() + if(!. && istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) + . = wear_suit /mob/living/carbon/human/var/temperature_resistance = T0C+75 diff --git a/code/modules/mob/update_status.dm b/code/modules/mob/update_status.dm index 29bcced144a..555486ebf10 100644 --- a/code/modules/mob/update_status.dm +++ b/code/modules/mob/update_status.dm @@ -48,7 +48,10 @@ /mob/proc/restrained(ignore_grab) // All are created free - return 0 + return FALSE + +/mob/proc/get_retraining_item() + return null // Procs that update other things about the mob