Skip to content

Commit

Permalink
biosignaler for shield, captain`s centcom mindshield
Browse files Browse the repository at this point in the history
  • Loading branch information
MrCastmer committed Aug 17, 2024
1 parent c962ab4 commit ea7b769
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
/obj/item/implant/death_alarm
name = "nanotrasen command biosignaller implant"
desc = "An alarm which monitors host vital signs and transmits a radio message upon death. Usually implanted into command staff."
actions_types = null
verb_say = "broadcasts"
var/obj/item/radio/radio
var/static/list/stealth_areas = typecacheof(list(/area/yogs/infiltrator_base, /area/centcom/syndicate_mothership, /area/shuttle/yogs/stealthcruiser, /area/ruin/syndicate_icemoon, /area/ruin/powered/syndicate_lava_base, /area/ruin/space/has_grav/listeningstation, /area/ruin/space/has_grav/syndiederelict))

/obj/item/implant/death_alarm/Initialize(mapload)
. = ..()
radio = new(src)
radio.keyslot = new/obj/item/encryptionkey/headset_cent // Should broadcast both on the secure centcom and common channels to notify both all station and central command dudes.
radio.listening = FALSE
radio.recalculateChannels()

/obj/item/implant/death_alarm/activate(cause)
if(!imp_in)
return FALSE

// Location.
var/area/turf = get_area(imp_in)
// Name of implant user.
var/mobname = imp_in.name
// What is to be said.
var/message = "[station_name()] COMMAND TEAM ALERT: [mobname]'s lifesig//N&#@$¤#§>..." // Default message for unexpected causes.

switch(cause)
if("death")
if(!is_type_in_typecache(turf, stealth_areas)) //give the syndies a bit of stealth
message = "[station_name()] COMMAND TEAM ALERT: [mobname]'s lifesigns ceased in [turf.name]!"
if("emp")
if(prob(70)) //30% chance to give give gib message
var/empname = prob(50) ? turf.name : pick(GLOB.teleportlocs)
message = "[station_name()] COMMAND TEAM ALERT: [mobname]'s lifesigns ceased in [empname]!" //eh, sorry, implant fried themselves.


name = "[mobname]'s Biosignaller"
radio.talk_into(src, message, RADIO_CHANNEL_CENTCOM)
radio.talk_into(src, message, RADIO_CHANNEL_COMMON)
qdel(src)

/obj/item/implant/death_alarm/emp_act(severity)
activate("emp")

/obj/item/implant/death_alarm/on_mob_death(mob/living/L, gibbed)
if(gibbed)
activate("gibbed") // Will use default message.
else
activate("death")

/obj/item/implant/death_alarm/get_data()
. = {"<b>Implant Specifications:</b><BR>
<b>Name:</b>Nanotrasen \"Profit Margin\" Class Employee Biosignaller Implant<BR>
<b>Life:</b>Until activation<BR>
<b>Important Notes:</b>Broadcasts a message over an encrypted channel.<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b>Contains a miniature radio connected to a bioscanner. Broadcasts the death and last known position of the user both over an encrypted radio channel and all stationary.<BR>"
<b>Integrity:</b> Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}

/obj/item/implanter/death_alarm
name = "implanter"
imp_type = /obj/item/implant/death_alarm

/obj/item/implantcase/death_alarm
name = "implant case - 'Standart Biosignal NT'"
imp_type = /obj/item/implant/death_alarm
10 changes: 10 additions & 0 deletions modular_dripstation/code/game/objects/items/storage/boxes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,16 @@
new /obj/item/badge/security/cadet(src)
new /obj/item/badge/security/cadet(src)

/obj/item/storage/box/security/biosig_nt
name = "biosignaller implant box"
desc = "A box claiming to contain 'Nanotrasen \"Profit Margin\" Class Employee Biosignaller' implants."
illustration = "implant"

/obj/item/storage/box/security/biosig_nt/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/implantcase/death_alarm(src)
new /obj/item/implanter/death_alarm(src)

// Syndie kit
/obj/item/storage/box/donkdrip
illustration = null
Expand Down
3 changes: 2 additions & 1 deletion modular_dripstation/code/modules/job/job_types/captain.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
glasses = /obj/item/clothing/glasses/sunglasses
gloves = /obj/item/clothing/gloves/color/white
shoes = /obj/item/clothing/shoes/laceup
box = /obj/item/storage/box/captain
box = /obj/item/storage/box/captain
implants = list(/obj/item/implant/mindshield/centcom)
1 change: 1 addition & 0 deletions modular_dripstation/includes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@
#include "code\game\objects\items\handcuffs.dm"
#include "code\game\objects\items\holotool.dm"
#include "code\game\objects\items\holy_weapons.dm"
#include "code\game\objects\items\implants\death_alarm.dm"
#include "code\game\objects\items\implants\implant_misc.dm"
#include "code\game\objects\items\implants\implant.dm"
#include "code\game\objects\items\implants\implanter.dm"
Expand Down

0 comments on commit ea7b769

Please sign in to comment.