diff --git a/code/game/gamemodes/changeling/powers/biodegrade.dm b/code/game/gamemodes/changeling/powers/biodegrade.dm index 4a34de151e..dbb0e3a88a 100644 --- a/code/game/gamemodes/changeling/powers/biodegrade.dm +++ b/code/game/gamemodes/changeling/powers/biodegrade.dm @@ -55,14 +55,12 @@ /obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_handcuffs(mob/living/carbon/human/user, obj/O) if(O && user.handcuffed == O) user.visible_message("[O] dissolve[O.gender==PLURAL?"":"s"] into a puddle of sizzling goop.") - user.uncuff() new /obj/effect/decal/cleanable/greenglow(O.drop_location()) qdel(O) /obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_straightjacket(mob/living/carbon/human/user, obj/S) if(S && user.wear_suit == S) user.visible_message("[S] dissolves into a puddle of sizzling goop.") - user.uncuff() new /obj/effect/decal/cleanable/greenglow(S.drop_location()) qdel(S) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 1dd2b1b1de..7cfc4e220e 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -1,6 +1,19 @@ /obj/item/restraints breakouttime = 600 +/obj/item/restraints/Destroy() + if(iscarbon(loc)) + var/mob/living/carbon/M = loc + if(M.handcuffed == src) + M.handcuffed = null + M.update_handcuffed() + if(M.buckled && M.buckled.buckle_requires_restraints) + M.buckled.unbuckle_mob(M) + if(M.legcuffed == src) + M.legcuffed = null + M.update_inv_legcuffed() + return ..() + //Handcuffs /obj/item/restraints/handcuffs diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index c03469164e..285d776240 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -32,10 +32,6 @@ if(istype(C) && C.handcuffed && istype(C.handcuffed, /obj/item/restraints/handcuffs/cable)) user.visible_message("[user] cuts [C]'s restraints with [src]!") qdel(C.handcuffed) - C.handcuffed = null - if(C.buckled && C.buckled.buckle_requires_restraints) - C.buckled.unbuckle_mob(C) - C.update_handcuffed() return else ..() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 23decdd59f..8b1b47612b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -365,16 +365,9 @@ to_chat(src, "You successfully [cuff_break ? "break" : "remove"] [I].") if(cuff_break) + . = !((I == handcuffed) || (I == legcuffed)) qdel(I) - if(I == handcuffed) - handcuffed = null - update_handcuffed() - return - else if(I == legcuffed) - legcuffed = null - update_inv_legcuffed() - return - return TRUE + return else if(I == handcuffed)