From d5602e1948d64aee23022bdbebeb03ce8bf4c595 Mon Sep 17 00:00:00 2001 From: Dip Date: Tue, 6 Oct 2020 15:46:02 -0300 Subject: [PATCH] Exiles --- _maps/RandomZLevels/snowdin.dmm | 75 +++++++++++++++---- code/game/objects/items/cards_ids.dm | 23 ++++++ .../objects/structures/ghost_role_spawners.dm | 56 ++++++++++++++ 3 files changed, 138 insertions(+), 16 deletions(-) diff --git a/_maps/RandomZLevels/snowdin.dmm b/_maps/RandomZLevels/snowdin.dmm index 085d0a9c..f0be2df8 100644 --- a/_maps/RandomZLevels/snowdin.dmm +++ b/_maps/RandomZLevels/snowdin.dmm @@ -211,22 +211,18 @@ /turf/closed/wall, /area/awaymission/snowdin/post/dorm) "aT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6; - piping_layer = 3; - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/bedsheet/purple, -/turf/open/floor/wood, -/area/awaymission/snowdin/post/dorm) +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/firingpins, +/turf/open/floor/plasteel/dark, +/area/awaymission/snowdin/post/secpost) "aU" = ( -/obj/structure/bed, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ piping_layer = 3; pixel_x = 5; pixel_y = 5 }, +/obj/item/bedsheet/purple, +/obj/effect/mob_spawn/human/exiled, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aV" = ( @@ -250,6 +246,7 @@ pixel_y = 5 }, /obj/effect/landmark/awaystart, +/obj/item/bedsheet/red, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aY" = ( @@ -262,13 +259,13 @@ /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "aZ" = ( -/obj/structure/bed, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ piping_layer = 3; pixel_x = 5; pixel_y = 5 }, /obj/item/bedsheet/orange, +/obj/effect/mob_spawn/human/exiled, /turf/open/floor/wood, /area/awaymission/snowdin/post/dorm) "ba" = ( @@ -1224,6 +1221,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/item/t_scanner/adv_mining_scanner/lesser, /turf/open/floor/plasteel/dark/snowdin, /area/awaymission/snowdin/cave) "cV" = ( @@ -1549,6 +1547,7 @@ icon_state = "crateopen"; name = "explosives ordinance" }, +/obj/item/t_scanner/adv_mining_scanner/lesser, /turf/open/floor/plasteel/dark/snowdin, /area/awaymission/snowdin/cave) "dz" = ( @@ -3857,6 +3856,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/closet/emcloset/anchored, /turf/open/floor/plasteel, /area/awaymission/snowdin/post) "iy" = ( @@ -3867,6 +3867,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/closet/firecloset/full, /turf/open/floor/plasteel, /area/awaymission/snowdin/post) "iz" = ( @@ -4114,6 +4115,10 @@ /obj/machinery/airalarm{ pixel_y = 23 }, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/glass/fifty, /turf/open/floor/plating, /area/awaymission/snowdin/post/garage) "iY" = ( @@ -6067,6 +6072,7 @@ /obj/structure/table, /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, +/obj/item/stack/cable_coil, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/garage) "mX" = ( @@ -6237,6 +6243,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/pipedispenser, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/engineering) "nn" = ( @@ -6774,6 +6781,7 @@ /obj/item/stock_parts/matter_bin/adv, /obj/item/stock_parts/matter_bin/adv, /obj/item/stock_parts/manipulator/pico, +/obj/item/circuitboard/machine/autolathe, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/engineering) "or" = ( @@ -7262,6 +7270,7 @@ pixel_y = 8 }, /obj/item/clothing/gloves/color/yellow, +/obj/item/stack/cable_coil, /turf/open/floor/plasteel, /area/awaymission/snowdin/post/engineering) "pz" = ( @@ -7438,7 +7447,21 @@ /obj/machinery/atmospherics/pipe/manifold/supply/visible{ dir = 1 }, -/obj/item/circuitboard/machine/autolathe, +/obj/structure/closet/crate/engineering{ + name = "materials crate" + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 40 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/silver{ + amount = 30 + }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -7447,6 +7470,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 8 }, +/obj/item/circuitboard/machine/protolathe{ + pixel_x = -3; + pixel_y = 7 + }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -15817,6 +15844,10 @@ }, /turf/open/floor/plasteel/dark, /area/awaymission/snowdin/cave) +"SS" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating, +/area/awaymission/snowdin/post/engineering) "SX" = ( /obj/machinery/door/airlock/external/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -15824,6 +15855,18 @@ }, /turf/open/floor/plating, /area/awaymission/snowdin/post/mining_main) +"SZ" = ( +/obj/structure/closet/crate/engineering{ + name = "materials crate" + }, +/obj/item/stack/sheet/mineral/diamond{ + amount = 6 + }, +/obj/item/stack/ore/bluespace_crystal/artificial{ + amount = 6 + }, +/turf/open/floor/plating, +/area/awaymission/snowdin/post/mining_main) "VW" = ( /obj/machinery/door/airlock/external/glass, /obj/structure/fans/tiny, @@ -22291,7 +22334,7 @@ af ak af aK -aT +aY bi bx bR @@ -24374,7 +24417,7 @@ oA oH pI qo -qp +aT pH am af @@ -26633,7 +26676,7 @@ Ir Iq Go Ky -Gq +SZ GP ae ac @@ -29513,7 +29556,7 @@ oq oQ py pV -nS +SS qV rp rp diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index f8d705fc..f59a32ed 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -434,3 +434,26 @@ update_label("John Doe", "Clowny") name = "APC Access ID" desc = "A special ID card that allows access to APC terminals." access = list(ACCESS_ENGINE_EQUIP) + +/obj/item/card/id/away/snowdin + name = "a perfectly generic identification card" + desc = "A perfectly generic identification card. Looks like it could use some flavor." + icon_state = "centcom" + +/obj/item/card/id/away/snowdin/eng + name = "Arctic Station Engineer's ID card" + desc = "A faded Arctic Station ID card. You can make out the rank \"Station Engineer\"." + assignment = "Arctic Station Engineer" + access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_ENGINE, ACCESS_AWAY_MAINT) + +/obj/item/card/id/away/snowdin/sci + name = "Arctic Station Scientist's ID card" + desc = "A faded Arctic Station ID card. You can make out the rank \"Scientist\"." + assignment = "Arctic Station Scientist" + access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_MAINT) + +/obj/item/card/id/away/snowdin/med + name = "Arctic Station Doctor's ID card" + desc = "A faded Arctic Station ID card. You can make out the rank \"Doctor\"." + assignment = "Arctic Station Doctor" + access = list(ACCESS_AWAY_GENERAL, ACCESS_AWAY_MED, ACCESS_AWAY_MAINT) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 0e370b75..5bf23c7a 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -299,6 +299,62 @@ new/obj/structure/fluff/empty_cryostasis_sleeper(get_turf(src)) return ..() +//Exiles: Stranded exiles that have been left in Snowdin. Can be easily adapted for other roles as well. +/obj/effect/mob_spawn/human/exiled + name = "a used bed" + desc = "Still warm." + mob_name = "exiled" + job_description = "Exiles" + icon = 'icons/obj/objects.dmi' + icon_state = "bed" + roundstart = FALSE + death = FALSE + random = TRUE + mob_species = /datum/species/human + flavour_text = "As the last escape shuttle left the sector, you were left for dead, stranded in a cold hell where you make do, until hopefully someone finds you. \ + Every day, you pause and recollect your memories from before it all happened... " + assignedrole = "Arctic Exile" + mirrorcanloadappearance = TRUE + +/obj/effect/mob_spawn/human/exiled/Initialize(mapload) + . = ..() + var/arrpee = rand(1,3) + switch(arrpee) + if(1) + flavour_text += "You were a lowly engineer, hired by Kinaris to make sure the turbines from their mining operation remained functional. \ + You remember the day the mining team descended for the very last time into the depths of the shafts, only to never return. \ + The agonizing screams from whatever now haunts those mines still brings a shiver down your spine." + outfit.uniform = /obj/item/clothing/under/rank/engineer + outfit.suit = /obj/item/clothing/suit/hooded/wintercoat/engineering + outfit.shoes = /obj/item/clothing/shoes/sneakers/black + outfit.back = /obj/item/storage/backpack/industrial + outfit.id = /obj/item/card/id/away/snowdin/eng + outfit.implants = list(/obj/item/implant/exile) //Made it so they cannot simply exit through the gateway at will. + if(2) + flavour_text += "You were a plasma researcher, hired by Kinaris to oversee a small research division in a remote, isolated little icy planet, \ + you remember the day the mining team descended for the very last time into the depths of the shafts, only to never return. \ + While you haven't heard them yourself, reports say the sounds that were heard over radio were likely not of this world." + outfit.uniform = /obj/item/clothing/under/rank/scientist + outfit.suit = /obj/item/clothing/suit/hooded/wintercoat/science + outfit.shoes = /obj/item/clothing/shoes/sneakers/black + outfit.back = /obj/item/storage/backpack/science + outfit.id = /obj/item/card/id/away/snowdin/sci + outfit.implants = list(/obj/item/implant/exile) //Made it so they cannot simply exit through the gateway at will. + if(3) + flavour_text += "You were a junior doctor, hired by Kinaris to oversee the mental state of a plasma mining operation's miners. \ + Over and over you reported that the miners were having constant, similar types of hallucinations and that perhaps the whole operation should pause \ + until further investigation was concluded, but command shrugged it off as an episode of mass hallucination... Until the miners never came back." + outfit.uniform = /obj/item/clothing/under/rank/medical + outfit.suit = /obj/item/clothing/suit/hooded/wintercoat/medical + outfit.shoes = /obj/item/clothing/shoes/sneakers/black + outfit.back = /obj/item/storage/backpack/medic + outfit.id = /obj/item/card/id/away/snowdin/med + outfit.implants = list(/obj/item/implant/exile) //Made it so they cannot simply exit through the gateway at will. + +/obj/effect/mob_spawn/human/exiled/Destroy() + new/obj/structure/bed(get_turf(src)) + return ..() + //Broken rejuvenation pod: Spawns in animal hospitals in lavaland. Ghosts become disoriented interns and are advised to search for help. /obj/effect/mob_spawn/human/doctor/alive/lavaland name = "broken rejuvenation pod"