Streamlines the ghost-to-player creation process

Also refactors ERT equipment to be actual outfits instead of hardcoded
This commit is contained in:
Crazylemon64
2017-03-08 05:49:49 -08:00
parent 57a0a6290c
commit 869c9b76c4
9 changed files with 499 additions and 335 deletions
@@ -23,6 +23,9 @@
var/created_window = /obj/structure/window/basic
var/full_window = /obj/structure/window/full/basic
/obj/item/stack/sheet/glass/fifty
amount = 50
/obj/item/stack/sheet/glass/cyborg
materials = list()
@@ -98,14 +98,17 @@ var/global/list/datum/stack_recipe/metal_recipes = list(
flags = CONDUCT
origin_tech = "materials=1"
/obj/item/stack/sheet/metal/cyborg
materials = list()
/obj/item/stack/sheet/metal/fifty
amount = 50
/obj/item/stack/sheet/metal/narsie_act()
if(prob(20))
new /obj/item/stack/sheet/runed_metal(loc, amount)
qdel(src)
/obj/item/stack/sheet/metal/cyborg
materials = list()
/obj/item/stack/sheet/metal/New(var/loc, var/amount=null)
recipes = metal_recipes
return ..()
@@ -285,4 +288,4 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
w_class = 3
throw_speed = 1
throw_range = 3
origin_tech = "materials=2;biotech=2"
origin_tech = "materials=2;biotech=2"
+3
View File
@@ -376,6 +376,9 @@ RCD
explosion(src, 0, 0, 3, 1, flame_range = 1)
qdel(src)
/obj/item/weapon/rcd/preloaded
matter = 100
/obj/item/weapon/rcd/combat
name = "combat RCD"
max_matter = 500
@@ -715,6 +715,18 @@
desc = "A modified ID card given only to those people who have devoted their lives to the better interests of Nanotrasen. It sparkles blue."
icon_state = "lifetimeid"
/obj/item/weapon/card/id/ert
name = "ERT ID"
icon_state = "ERT_empty"
/obj/item/weapon/card/id/ert/commander
icon_state = "ERT_leader"
/obj/item/weapon/card/id/ert/security
icon_state = "ERT_security"
/obj/item/weapon/card/id/ert/engineering
icon_state = "ERT_engineering"
/obj/item/weapon/card/id/ert/medic
icon_state = "ERT_medical"
// Decals
/obj/item/weapon/id_decal
name = "identification card decal"
+43 -1
View File
@@ -72,4 +72,46 @@
user.forceMove(get_turf(src))
log_admin("[key_name(user)] was incarnated by a respawner machine.")
message_admins("[key_name_admin(user)] was incarnated by a respawner machine.")
user.incarnate_ghost()
user.incarnate_ghost()
/obj/structure/ghost_beacon
name = "ethereal beacon"
desc = "A structure that draws ethereal attention when active. Use an empty hand to activate."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "anomaly_crystal"
anchored = 1
density = 1
var/active = FALSE
var/ghost_alert_delay = 30 SECONDS
var/last_ghost_alert
/obj/structure/ghost_beacon/initialize()
. = ..()
last_ghost_alert = world.time
if(active)
processing_objects.Add(src)
/obj/structure/ghost_beacon/Destroy()
if(active)
processing_objects.Remove(src)
. = ..()
/obj/structure/ghost_beacon/attack_ghost(mob/dead/observer/user)
if(user.can_advanced_admin_interact())
attack_hand(user)
/obj/structure/ghost_beacon/attack_hand(mob/user)
if(!is_admin(user))
return
to_chat(user, "<span class='notice'>You [active ? "disable" : "enable"] \the [src].</span>")
if(active)
processing_objects.Remove(src)
else
processing_objects.Add(src)
active = !active
/obj/structure/ghost_beacon/process()
if(last_ghost_alert + ghost_alert_delay < world.time)
notify_ghosts("[src] active in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src)
last_ghost_alert = world.time