From be5d16f44d2eabe52dc69cd38d00b95bc1e207ae Mon Sep 17 00:00:00 2001 From: John Doe Date: Tue, 26 Sep 2023 21:07:50 -0700 Subject: [PATCH] fixes bracer nodrop --- code/modules/cm_preds/yaut_bracers.dm | 31 +++++++++++++++++---------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/code/modules/cm_preds/yaut_bracers.dm b/code/modules/cm_preds/yaut_bracers.dm index 4e5dcb8c6386..785378b04388 100644 --- a/code/modules/cm_preds/yaut_bracers.dm +++ b/code/modules/cm_preds/yaut_bracers.dm @@ -71,6 +71,7 @@ flags_item = initial(flags_item) UnregisterSignal(user, list(COMSIG_MOB_STAT_SET_ALIVE, COMSIG_MOB_DEATH)) SSminimaps.remove_marker(user) + unlock_bracer() // So as to prevent the bracer being stuck with nodrop if the pred gets gibbed/arm removed/etc. ..() /obj/item/clothing/gloves/yautja/pickup(mob/living/user) @@ -1164,18 +1165,26 @@ /// The actual unlock/lock function. /obj/item/clothing/gloves/yautja/proc/toggle_lock_internal(mob/wearer, force_lock) if(((flags_item & NODROP) || (flags_inventory & CANTSTRIP)) && !force_lock) - flags_item &= ~NODROP - flags_inventory &= ~CANTSTRIP - if(!isyautja(wearer)) - to_chat(wearer, SPAN_WARNING("The bracer beeps pleasantly, releasing it's grip on your forearm.")) - else - to_chat(wearer, SPAN_WARNING("With an angry blare the bracer releases your forearm.")) - return TRUE + return unlock_bracer() + return lock_bracer() + +/obj/item/clothing/gloves/yautja/proc/lock_bracer(mob/wearer) flags_item |= NODROP flags_inventory |= CANTSTRIP - if(isyautja(wearer)) - to_chat(wearer, SPAN_WARNING("The bracer clamps securely around your forearm and beeps in a comfortable, familiar way.")) - else - to_chat(wearer, SPAN_WARNING("The bracer clamps painfully around your forearm and beeps angrily. It won't come off!")) + if(wearer) + if(isyautja(wearer)) + to_chat(wearer, SPAN_WARNING("The bracer clamps securely around your forearm and beeps in a comfortable, familiar way.")) + else + to_chat(wearer, SPAN_WARNING("The bracer clamps painfully around your forearm and beeps angrily. It won't come off!")) + return TRUE + +/obj/item/clothing/gloves/yautja/proc/unlock_bracer(mob/wearer) + flags_item &= ~NODROP + flags_inventory &= ~CANTSTRIP + if(wearer) + if(!isyautja(wearer)) + to_chat(wearer, SPAN_WARNING("The bracer beeps pleasantly, releasing its grip on your forearm.")) + else + to_chat(wearer, SPAN_WARNING("With an angry blare, the bracer releases your forearm.")) return TRUE