From 969f64af1a9ff2280bf6030b58e761b1d8f197aa Mon Sep 17 00:00:00 2001 From: zerothebigboy Date: Sat, 20 Mar 2021 19:23:55 -0400 Subject: [PATCH] f u c k --- .../changeling/powers/biodegrade.dm | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index db4e47aa78..8b3b1659d1 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -12,24 +12,34 @@ /obj/effect/proc_holder/changeling/biodegrade/sting_action(mob/living/carbon/human/user) var/used = FALSE // only one form of shackles removed per use - if(!user.restrained() && isopenturf(user.loc)) + if(!user.restrained() && !user.legcuffed && isopenturf(user.loc)) to_chat(user, "We are already free!") - return 0 + return FALSE if(user.handcuffed) var/obj/O = user.get_item_by_slot(SLOT_HANDCUFFED) if(!istype(O)) - return 0 + return FALSE user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ "We vomit acidic ooze onto our restraints!") addtimer(CALLBACK(src, .proc/dissolve_handcuffs, user, O), 30) used = TRUE + if(user.legcuffed) + var/obj/O = user.get_item_by_slot(SLOT_LEGCUFFED) + if(!istype(O)) + return FALSE + user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ + "We vomit acidic ooze onto our restraints!") + + addtimer(CALLBACK(src, .proc/dissolve_legcuffs, user, O), 30) + used = TRUE + if(user.wear_suit && user.wear_suit.breakouttime && !used) var/obj/item/clothing/suit/S = user.get_item_by_slot(SLOT_WEAR_SUIT) if(!istype(S)) - return 0 + return FALSE user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ "We vomit acidic ooze onto our straight jacket!") addtimer(CALLBACK(src, .proc/dissolve_straightjacket, user, S), 30) @@ -39,7 +49,7 @@ if(istype(user.loc, /obj/structure/closet) && !used) var/obj/structure/closet/C = user.loc if(!istype(C)) - return 0 + return FALSE C.visible_message("[C]'s hinges suddenly begin to melt and run!") to_chat(user, "We vomit acidic goop onto the interior of [C]!") addtimer(CALLBACK(src, .proc/open_closet, user, C), 70) @@ -48,7 +58,7 @@ if(istype(user.loc, /obj/structure/spider/cocoon) && !used) var/obj/structure/spider/cocoon/C = user.loc if(!istype(C)) - return 0 + return FALSE C.visible_message("[src] shifts and starts to fall apart!") to_chat(user, "We secrete acidic enzymes from our skin and begin melting our cocoon...") addtimer(CALLBACK(src, .proc/dissolve_cocoon, user, C), 25) //Very short because it's just webs @@ -62,6 +72,12 @@ new /obj/effect/decal/cleanable/greenglow(O.drop_location()) qdel(O) +/obj/effect/proc_holder/changeling/biodegrade/proc/dissolve_legcuffs(mob/living/carbon/human/user, obj/O) + if(O && user.legcuffed == O) + user.visible_message("[O] dissolve[O.gender==PLURAL?"":"s"] into a puddle of sizzling goop.") + 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.")