[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
🆑 Rhials
qol: The freedom implant has received minor feedback and other minor
usage improvements.
/🆑

* Freedom Implant Feedback and Facelift

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-09-28 20:03:34 -04:00
committed by GitHub
co-authored by Rhials
parent 97690053b7
commit cf9a082ee7
3 changed files with 36 additions and 23 deletions
@@ -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 = {"
<b>Implant Specifications:</b><BR>
<b>Name:</b> Freedom Beacon<BR>
<b>Life:</b> optimum 5 uses<BR>
<b>Important Notes:</b> <font color='red'>Illegal</font><BR>
<HR>
<b>Implant Details:</b> <BR>
<b>Function:</b> Transmits a specialized cluster of signals to override handcuff locking
mechanisms<BR>
<b>Special Features:</b><BR>
<i>Neuro-Scan</i>- Analyzes certain shadow signals in the nervous system<BR>
<HR>
No Implant Specifics"}
<b>Implant Specifications:</b><BR>
<b>Name:</b> Freedom Beacon<BR>
<b>Life:</b> Optimum [initial(uses)] uses<BR>
<b>Important Notes:</b> <font color='red'>Illegal</font><BR>
<HR>
<b>Implant Details:</b> <BR>
<b>Function:</b> Transmits a specialized cluster of signals to override handcuff locking
mechanisms. These signals will release any bindings on both the arms and legs.<BR>
<b>Disclaimer:</b> Heavy-duty restraints such as straightjackets are deemed "too complex" to release from.
"}
return dat
/obj/item/implanter/freedom
name = "implanter" // Skyrat edit , was implanter (freedom)
imp_type = /obj/item/implant/freedom