From cf9a082ee7306850ef484b8f2b22de74a65dec13 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 29 Sep 2023 02:03:34 +0200
Subject: [PATCH] [MIRROR] Freedom Implant Feedback and Facelift [MDB IGNORE]
(#23992)
* Freedom Implant Feedback and Facelift (#78486)
## About The Pull Request
This aims to make the freedom implant a bit less clunky, and a bit more
responsive. No fundamental changes or buffs or anything, just some more
feedback and player-facing clarity on what this thing actually does.
Changes include:
- Freedom implants can no longer be implanted into non-carbon
(uncuffable) mobs.
- The freedom implant will no longer expend charges when used without
active restraints.
- The to_chat has been replaced with a balloon alert (displayed to the
user only, of course).
- The implant throws a balloon alert shortly after it runs out of
charges, notifying the user that it has degraded and is gone.
- The implant pad readout has been changed to provide a bit more useful
information, and provide a bit less incorrect information.
- No, seriously, what did _"Analyzes certain shadow signals in the
nervous system"_ even mean? Shadowlings??
- The uplink listing now lists the number of uses, and explains that the
implant is useful for more than just handcuffs.
## Why It's Good For The Game
I used this thing once on a nukie round and thought "oh god this needs a
facelift immediately".
Players should be able to know the basic functions of their toys without
having to consult the wiki.
## Changelog
:cl: Rhials
qol: The freedom implant has received minor feedback and other minor
usage improvements.
/:cl:
* Freedom Implant Feedback and Facelift
---------
Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
---
code/__DEFINES/antagonists.dm | 2 +
.../objects/items/implants/implant_freedom.dm | 50 +++++++++++--------
code/modules/uplink/uplink_items/implant.dm | 7 ++-
3 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index 125870797ca..123c60abad2 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -365,3 +365,5 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list(
#define BATON_CUFF 2
#define BATON_PROBE 3
#define BATON_MODES 4
+
+#define FREEDOM_IMPLANT_CHARGES 4
diff --git a/code/game/objects/items/implants/implant_freedom.dm b/code/game/objects/items/implants/implant_freedom.dm
index d010b57e506..1fa61c27510 100644
--- a/code/game/objects/items/implants/implant_freedom.dm
+++ b/code/game/objects/items/implants/implant_freedom.dm
@@ -3,37 +3,45 @@
desc = "Use this to escape from those evil Red Shirts."
icon_state = "freedom"
implant_color = "r"
- uses = 4
+ uses = FREEDOM_IMPLANT_CHARGES
+/obj/item/implant/freedom/implant(mob/living/target, mob/user, silent, force)
+ . = ..()
+ if(!.)
+ return FALSE
+ if(!iscarbon(target)) //This is pretty much useless for anyone else since they can't be cuffed
+ balloon_alert(user, "that would be a waste!")
+ return FALSE
+ return TRUE
/obj/item/implant/freedom/activate()
. = ..()
- uses--
- to_chat(imp_in, span_hear("You feel a faint click."))
- if(iscarbon(imp_in))
- var/mob/living/carbon/C_imp_in = imp_in
- C_imp_in.uncuff()
- if(!uses)
- qdel(src)
+ var/mob/living/carbon/carbon_imp_in = imp_in
+ if(!carbon_imp_in.handcuffed && !carbon_imp_in.legcuffed)
+ balloon_alert(carbon_imp_in, "no restraints!")
+ return
+ uses--
+
+ carbon_imp_in.uncuff()
+ if(!uses)
+ addtimer(CALLBACK(carbon_imp_in, TYPE_PROC_REF(/atom, balloon_alert), carbon_imp_in, "implant degraded!"), 1 SECONDS)
+ qdel(src)
/obj/item/implant/freedom/get_data()
var/dat = {"
-Implant Specifications:
-Name: Freedom Beacon
-Life: optimum 5 uses
-Important Notes: Illegal
-