Allows admins to save their CC characters (#4717)

* Initial Checkin

- Creates two new admin-only jobs, "Nanotrasen Navy Officer", and
"Special Operations Officer". The former is for IC investigations by
admins of situations on the Cyberiad, and spawns in the admin room. The
latter is for leading/overwatching ERT teams, and spawns at the ERT
office.
- Neither of these jobs are accessible to normal players, either on
join, in preferences, or as a random job.
- When they are spawned, no announcement is made, and they do not show
up on the crew manifest.
- In other news, the "select equipment" debug verb has also been
adjusted so that NT Navy Officers get the same equipment either way.

* Fixes teleporter on admin station so that admins can use it to teleport directly to bridge

* Fixes CC jobs not always displaying CC HUD icon for sechuds

* Adds an implant that dusts someone on their death

* Tweaks

Changes:
- CC officers now spawn with an internals box in their backpacks, like
everyone else.
- CC officers now get dust and death alarm implanters in their backpacks
on spawn, rather than automatically having the implants in their bodies.
This enables admins to test things on admin station without worrying
about dusting or having their deaths broadcast.
- Dust implants no longer provide death alarm functionality.
- Dust implants no longer process().
- Dust implants are now based on explosive implants, and can be manually
activated via deathgasp.
- CC officers now spawn with CC headsets that are named 'centcom
headset'.

* Deletes CC encryption key

* Switches to using imp_in.dust()
This commit is contained in:
Kyep
2016-06-26 10:57:59 -07:00
committed by Fox McCloud
parent 757a5cb23d
commit d28cb5e8bc
17 changed files with 225 additions and 48 deletions
+3
View File
@@ -94,6 +94,9 @@
if("voxstart")
raider_spawn += loc
if("ERT Director")
ertdirector += loc
landmarks_list += src
return 1
@@ -287,6 +287,14 @@
icon_state = "com_headset_alt"
item_state = "com_headset_alt"
/obj/item/device/radio/headset/centcom
name = "\proper centcom officer's bowman headset"
desc = "The headset of final authority. Protects ears from flashbangs."
flags = EARBANGPROTECT
icon_state = "com_headset_alt"
item_state = "com_headset_alt"
ks2type = /obj/item/device/encryptionkey/ert
/obj/item/device/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway.
name = "\improper AI subspace transceiver"
desc = "Integrated AI radio transceiver."
@@ -68,4 +68,4 @@
if(..())
processing_objects.Remove(src)
return 1
return 0
return 0
@@ -125,4 +125,46 @@
/obj/item/weapon/implanter/explosive_macro/New()
imp = new /obj/item/weapon/implant/explosive/macro(src)
..()
// Dust implant, for CC officers. Prevents gear theft if they die.
/obj/item/weapon/implant/dust
name = "duster implant"
desc = "An alarm which monitors host vital signs, transmitting a radio message and dusting the corpse on death."
/obj/item/weapon/implant/dust/get_data()
var/dat = {"<b>Implant Specifications:</b><BR>
<b>Name:</b> Ultraviolet Corp XX-13 Security Implant<BR>
<b>Life:</b> Activates upon death.<BR>
<b>Important Notes:</b> Vaporizes organic matter<BR>
<HR>
<b>Implant Details:</b><BR>
<b>Function:</b> Contains a compact, electrically activated heat source that turns its host to ash upon activation, or their death. <BR>
<b>Special Features:</b> Vaporizes<BR>
"}
return dat
/obj/item/weapon/implant/dust/trigger(emote, mob/source)
if(emote == "deathgasp")
activate("death")
/obj/item/weapon/implant/dust/activate(cause)
if(!cause || !imp_in || cause == "emp")
return 0
if(cause == "action_button" && alert(imp_in, "Are you sure you want to activate your dusting implant? This will turn you to ash!", "Dusting Confirmation", "Yes", "No") != "Yes")
return 0
to_chat(imp_in, "<span class='notice'>Your dusting implant activates!</span>")
imp_in.visible_message("<span class = 'warning'>[imp_in] burns up in a flash!</span>")
imp_in.dust()
/obj/item/weapon/implant/dust/emp_act(severity)
return
/obj/item/weapon/implanter/dust
name = "implanter (Dust-on-death)"
/obj/item/weapon/implanter/dust/New()
imp = new /obj/item/weapon/implant/dust(src)
..()
@@ -82,3 +82,9 @@
imp = new /obj/item/weapon/implant/traitor(src)
..()
/obj/item/weapon/implanter/death_alarm
name = "implanter (Death Alarm)"
/obj/item/weapon/implanter/death_alarm/New()
imp = new /obj/item/weapon/implant/death_alarm(src)
..()