Files
Bubberstation/code/game/objects/items/implants/implant_misc.dm
John Willard fa9a2a701a Implant pad TGUI (#80978)
## About The Pull Request

I was messing a little bit with TGUI stuff and ended up turning the
implant pad TGUI, so why not.
On top of the new UI, I replaced the messages to chat with nice and
consistent balloon alerts which will hopefully make it not seem like an
ancient piece of shit.

Video demonstration


https://github.com/tgstation/tgstation/assets/53777086/a1ebe0d4-005b-4e29-a623-2c1b352cd017

I also removed ``INTERACT_MACHINE_SET_MACHINE`` from the prisoner
console, because it was accidentally left in when the console was moved
to TGUI

## Why It's Good For The Game

I'm still going down the list of things that need to be TGUI, and I
ended up doing this cause I just felt like it while messing with some
other stuff.
Rest of the list is visible here:
https://hackmd.io/@sClqlHM0T4yZfn-qa5KnAg/S152Tl2hh

## Changelog

🆑
refactor: Implant pads now use TGUI
/🆑
2024-01-17 04:37:03 -05:00

89 lines
2.5 KiB
Plaintext

/obj/item/implant/weapons_auth
name = "firearms authentication implant"
desc = "Lets you shoot your guns."
icon_state = "auth"
actions_types = null
/obj/item/implant/weapons_auth/get_data()
return "<b>Implant Specifications:</b><BR> \
<b>Name:</b> Firearms Authentication Implant<BR> \
<b>Life:</b> 4 hours after death of host<BR> \
<b>Implant Details:</b> <BR> \
<b>Function:</b> Allows operation of implant-locked weaponry, preventing equipment from falling into enemy hands."
/obj/item/implant/emp
name = "emp implant"
desc = "Triggers an EMP."
icon_state = "emp"
uses = 3
/obj/item/implant/emp/activate()
. = ..()
uses--
empulse(imp_in, 3, 5)
if(!uses)
qdel(src)
/obj/item/implanter/emp
name = "implanter (EMP)"
imp_type = /obj/item/implant/emp
/obj/item/implant/radio
name = "internal radio implant"
var/obj/item/radio/radio
var/radio_key
var/subspace_transmission = FALSE
icon = 'icons/obj/devices/voice.dmi'
icon_state = "walkietalkie"
/obj/item/implant/radio/activate()
. = ..()
// needs to be GLOB.deep_inventory_state otherwise it won't open
radio.ui_interact(usr, state = GLOB.deep_inventory_state)
/obj/item/implant/radio/Initialize(mapload)
. = ..()
radio = new(src)
// almost like an internal headset, but without the
// "must be in ears to hear" restriction.
radio.name = "internal radio"
radio.subspace_transmission = subspace_transmission
radio.canhear_range = 0
if(radio_key)
radio.keyslot = new radio_key
radio.recalculateChannels()
/obj/item/implant/radio/Destroy()
QDEL_NULL(radio)
return ..()
/obj/item/implant/radio/mining
radio_key = /obj/item/encryptionkey/headset_cargo
/obj/item/implant/radio/syndicate
desc = "Are you there God? It's me, Syndicate Comms Agent."
radio_key = /obj/item/encryptionkey/syndicate
subspace_transmission = TRUE
/obj/item/implant/radio/slime
name = "slime radio"
icon = 'icons/obj/medical/organs/organs.dmi'
icon_state = "adamantine_resonator"
radio_key = /obj/item/encryptionkey/headset_sci
subspace_transmission = TRUE
/obj/item/implant/radio/get_data()
return "<b>Implant Specifications:</b><BR> \
<b>Name:</b> Internal Radio Implant<BR> \
<b>Life:</b> 24 hours<BR> \
<b>Implant Details:</b> Allows user to use an internal radio, useful if user expects equipment loss, or cannot equip conventional radios."
/obj/item/implanter/radio
name = "implanter (internal radio)"
imp_type = /obj/item/implant/radio
/obj/item/implanter/radio/syndicate
name = "implanter (internal syndicate radio)"
imp_type = /obj/item/implant/radio/syndicate