diff --git a/aurorastation.dme b/aurorastation.dme
index 92f4a74f8be..c53c7e1032b 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -538,6 +538,7 @@
#include "code\game\machinery\transformer.dm"
#include "code\game\machinery\turret_control.dm"
#include "code\game\machinery\vending.dm"
+#include "code\game\machinery\vending_items.dm"
#include "code\game\machinery\vending_types.dm"
#include "code\game\machinery\wall_frames.dm"
#include "code\game\machinery\washing_machine.dm"
@@ -877,6 +878,7 @@
#include "code\game\objects\items\weapons\tanks\jetpack.dm"
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
#include "code\game\objects\items\weapons\tanks\tanks.dm"
+#include "code\game\objects\items\weapons\tanks\watertank.dm"
#include "code\game\objects\random\random.dm"
#include "code\game\objects\structures\banner.dm"
#include "code\game\objects\structures\barsign.dm"
@@ -2251,6 +2253,7 @@
#include "code\modules\vehicles\bike.dm"
#include "code\modules\vehicles\cargo_train.dm"
#include "code\modules\vehicles\droppod.dm"
+#include "code\modules\vehicles\pussywagon.dm"
#include "code\modules\vehicles\train.dm"
#include "code\modules\vehicles\vehicle.dm"
#include "code\modules\ventcrawl\ventcrawl.dm"
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index c02d3f6fe98..46a38367f45 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -200,35 +200,6 @@
H.species.equip_survival_gear(H,1)
return TRUE
-/datum/job/janitor
- title = "Janitor"
- flag = JANITOR
- department = "Civilian"
- department_flag = CIVILIAN
- faction = "Station"
- total_positions = 2
- spawn_positions = 2
- supervisors = "the head of personnel"
- selection_color = "#dddddd"
- access = list(access_janitor, access_maint_tunnels, access_engine, access_research, access_sec_doors, access_medical)
- minimal_access = list(access_janitor, access_maint_tunnels, access_engine, access_research, access_sec_doors, access_medical)
-
-
- equip(var/mob/living/carbon/human/H)
- if(!H)
- return FALSE
- switch(H.backbag)
- if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
- if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
- if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
- if(5) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/duffel(H), slot_back)
- H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_l_ear)
- H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(H), slot_w_uniform)
- H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
- H.equip_to_slot_or_del(new /obj/item/device/pda/janitor(H), slot_belt)
- return TRUE
-
-
//More or less assistants
/datum/job/librarian
title = "Librarian"
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index 975419974a5..d76d1e71c6c 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -18,11 +18,11 @@
access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
- access_heads, access_construction, access_sec_doors,
+ access_heads, access_construction, access_sec_doors, access_janitor,
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload)
minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
access_teleporter, access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
- access_heads, access_construction, access_sec_doors,
+ access_heads, access_construction, access_sec_doors, access_janitor,
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_ai_upload)
minimal_player_age = 7
@@ -134,3 +134,31 @@
return FALSE
H.species.equip_survival_gear(H,1)
return TRUE
+
+/datum/job/janitor
+ title = "Janitor"
+ flag = JANITOR
+ department = "Engineering"
+ department_flag = ENGSEC
+ faction = "Station"
+ total_positions = 2
+ spawn_positions = 2
+ supervisors = "the chief engineer"
+ selection_color = "#fff5cc"
+ access = list(access_janitor, access_maint_tunnels, access_engine, access_research, access_sec_doors, access_medical)
+ minimal_access = list(access_janitor, access_maint_tunnels, access_engine, access_research, access_sec_doors, access_medical)
+
+ bag_type = /obj/item/weapon/storage/backpack
+ satchel_type = /obj/item/weapon/storage/backpack/satchel_norm
+ duffel_type = /obj/item/weapon/storage/backpack/satchel
+ messenger_bag_type = /obj/item/weapon/storage/backpack/duffel
+
+
+ equip(var/mob/living/carbon/human/H)
+ if(!H)
+ return FALSE
+ H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_eng(H), slot_l_ear)
+ H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/janitor(H), slot_w_uniform)
+ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
+ H.equip_to_slot_or_del(new /obj/item/device/pda/janitor(H), slot_belt)
+ return TRUE
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 25fe6cbed94..33af2876cc9 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -9,6 +9,7 @@
var/product_name = "generic" // Display name for the product
var/product_path = null
var/amount = 0 // Amount held in the vending machine
+ var/max_amount = 0
var/price = 0 // Price to buy one
var/display_color = null // Display color for vending machine listing
var/category = CAT_NORMAL // CAT_HIDDEN for contraband, CAT_COIN for premium
@@ -95,8 +96,9 @@
var/scan_id = 1
var/obj/item/weapon/coin/coin
var/datum/wires/vending/wires = null
-
+
var/can_move = 1 //if you can wrench the machine out of place
+ var/vend_id = "generic"
/obj/machinery/vending/Initialize()
. = ..()
@@ -137,6 +139,7 @@
product.price = (entry in src.prices) ? src.prices[entry] : 0
product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1
+ product.max_amount = product.amount
product.category = category
src.product_records.Add(product)
@@ -246,6 +249,24 @@
anchored = !anchored
return
+ else if(istype(W,/obj/item/weapon/vending_refill))
+ if(panel_open)
+ var/obj/item/weapon/vending_refill/VR = W
+ if(VR.charges)
+ if(VR.vend_id == vend_id)
+ VR.restock_inventory(src)
+ user << "You restock \the [src] with \the [VR]!"
+ if(!VR.charges)
+ user << "\The [VR] is depleted!"
+ else
+ user << "\The [VR] is not stocked for this type of vendor!"
+ else
+ user << "\The [VR] is depleted!"
+ return
+ else
+ user << "You must open \the [src]'s maintenance panel first!"
+ return
+
else if(!is_borg_item(W))
for(var/datum/data/vending_product/R in product_records)
@@ -254,7 +275,6 @@
qdel(W)
return
..()
-
else
..()
diff --git a/code/game/machinery/vending_items.dm b/code/game/machinery/vending_items.dm
new file mode 100644
index 00000000000..7f0831db43a
--- /dev/null
+++ b/code/game/machinery/vending_items.dm
@@ -0,0 +1,100 @@
+/obj/item/weapon/vending_refill
+ name = "resupply canister"
+ var/vend_id = "generic"
+
+ icon = 'icons/obj/electronic_assemblies.dmi'
+ icon_state = "setup_medium-open"
+ item_state = "RPED"
+ desc = "A vending machine restock cart."
+ force = 7
+ throwforce = 10
+ throw_speed = 1
+ throw_range = 7
+ w_class = 3
+ var/charges = 0
+
+/obj/item/weapon/vending_refill/examine(mob/user)
+ ..()
+ if(charges > 0)
+ to_chat(user, "It can restock [charges] item(s).")
+ else
+ to_chat(user, "It's empty!")
+
+/obj/item/weapon/vending_refill/proc/restock_inventory(var/obj/machinery/vending/vendor)
+ if(vendor)
+ for(var/datum/data/vending_product/product in vendor.product_records)
+ if(product.amount < product.max_amount)
+ var/expense = product.max_amount - product.amount
+ if(charges < expense)
+ expense = charges
+ product.amount += expense
+ charges -= expense
+ if(!charges)
+ break
+
+//can refill most vendors from half depleted once.
+
+/obj/item/weapon/vending_refill/booze
+ name = "booze resupply canister"
+ vend_id = "booze"
+ charges = 100 //holy shit that's a lot of booze
+
+/obj/item/weapon/vending_refill/tools
+ name = "tools resupply canister"
+ vend_id = "tools"
+ charges = 25
+
+/obj/item/weapon/vending_refill/coffee
+ name = "coffee resupply canister"
+ vend_id = "coffee"
+ charges = 38
+
+/obj/item/weapon/vending_refill/snack
+ name = "snacks resupply canister"
+ vend_id = "snacks"
+ charges = 38
+
+/obj/item/weapon/vending_refill/cola
+ name = "cola resupply canister"
+ vend_id = "cola"
+ charges = 50
+
+/obj/item/weapon/vending_refill/pda
+ name = "pdas resupply canister"
+ vend_id = "pdas"
+ charges = 38
+
+/obj/item/weapon/vending_refill/smokes
+ name = "smokes resupply canister"
+ vend_id = "smokes"
+ charges = 25
+
+/obj/item/weapon/vending_refill/meds
+ name = "meds resupply canister"
+ vend_id = "meds"
+ charges = 38
+
+/obj/item/weapon/vending_refill/robust
+ name = "security resupply canister"
+ vend_id = "security"
+ charges = 25
+
+/obj/item/weapon/vending_refill/hydro
+ name = "hydro resupply canister"
+ vend_id = "hydro"
+ charges = 23
+
+/obj/item/weapon/vending_refill/seeds
+ name = "resupply canister"
+ vend_id = "seeds"
+ charges = 175
+
+/obj/item/weapon/vending_refill/cutlery
+ name = "cutlery resupply canister"
+ vend_id = "cutlery"
+ charges = 50
+
+/obj/item/weapon/vending_refill/robo
+ name = "robo-tools resupply canister"
+ vend_id = "robo-tools"
+ charges = 38
diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm
index 21b69f69371..e6a76cbb7a5 100644
--- a/code/game/machinery/vending_types.dm
+++ b/code/game/machinery/vending_types.dm
@@ -22,6 +22,7 @@
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
icon_state = "boozeomat" //////////////18 drink entities below, plus the glasses, in case someone wants to edit the number of bottles
icon_deny = "boozeomat-deny"
+ vend_id = "booze"
products = list(
/obj/item/weapon/reagent_containers/food/drinks/bottle/gin = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey = 5,
@@ -79,6 +80,7 @@
req_access = list(access_bar)
/obj/machinery/vending/assist
+ vend_id = "tools"
products = list(
/obj/item/device/assembly/prox_sensor = 5,
/obj/item/device/assembly/igniter = 3,
@@ -101,6 +103,7 @@
vend_delay = 34
idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan.
vend_power_usage = 85000 //85 kJ to heat a 250 mL cup of coffee
+ vend_id = "coffee"
products = list(
/obj/item/weapon/reagent_containers/food/drinks/coffee = 25,
/obj/item/weapon/reagent_containers/food/drinks/tea = 25,
@@ -122,6 +125,7 @@
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!"
icon_state = "snack"
+ vend_id = "snacks"
products = list(
/obj/item/weapon/reagent_containers/food/snacks/candy = 6,
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6,
@@ -163,6 +167,7 @@
icon_state = "Cola_Machine"
product_slogans = "Robust Softdrinks: More robust than a toolbox to the head!"
product_ads = "Refreshing!;Hope you're thirsty!;Over 1 million drinks sold!;Thirsty? Why not cola?;Please, have a drink!;Drink up!;The best drinks in space."
+ vend_id = "cola"
products = list(
/obj/item/weapon/reagent_containers/food/drinks/cans/cola = 10,
/obj/item/weapon/reagent_containers/food/drinks/cans/space_mountain_wind = 10,
@@ -199,6 +204,7 @@
icon_state = "cart"
icon_deny = "cart-deny"
req_access = list(access_hop)
+ vend_id = "pdas"
products = list(
/obj/item/weapon/cartridge/medical = 10,
/obj/item/weapon/cartridge/engineering = 10,
@@ -218,6 +224,7 @@
product_ads = "Probably not bad for you!;Don't believe the scientists!;It's good for you!;Don't quit, buy more!;Smoke!;Nicotine heaven.;Best cigarettes since 2150.;Award-winning cigs."
vend_delay = 34
icon_state = "cigs"
+ vend_id = "smokes"
products = list(
/obj/item/weapon/storage/fancy/cigarettes = 10,
/obj/item/weapon/storage/box/matches = 10,
@@ -244,6 +251,7 @@
icon_deny = "med-deny"
product_ads = "Go save some lives!;The best stuff for your medbay.;Only the finest tools.;Natural chemicals!;This stuff saves lives.;Don't you want some?;Ping!"
req_access = list(access_medical_equip)
+ vend_id = "meds"
products = list(
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4,
@@ -270,6 +278,7 @@
/obj/machinery/vending/phoronresearch
name = "Toximate 3000"
desc = "All the fine parts you need in one vending machine!"
+ vend_id = "bomba"
products = list(
/obj/item/clothing/under/rank/scientist = 6,
/obj/item/clothing/suit/bio_suit = 6,
@@ -289,6 +298,7 @@
icon_deny = "wallmed-deny"
req_access = list(access_medical)
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
+ vend_id = "meds"
products = list(
/obj/item/stack/medical/bruise_pack = 2,
/obj/item/stack/medical/ointment = 2,
@@ -308,6 +318,7 @@
icon_deny = "wallmed-deny"
req_access = list(access_medical)
density = 0 //It is wall-mounted, and thus, not dense. --Superxpdude
+ vend_id = "meds"
products = list(
/obj/item/weapon/reagent_containers/hypospray/autoinjector = 5,
/obj/item/weapon/reagent_containers/syringe/antitoxin = 3,
@@ -326,6 +337,7 @@
icon_state = "sec"
icon_deny = "sec-deny"
req_access = list(access_security)
+ vend_id = "security"
products = list(
/obj/item/weapon/handcuffs = 8,
/obj/item/weapon/grenade/chem_grenade/teargas = 4,
@@ -349,6 +361,7 @@
product_ads = "We like plants!;Don't you want some?;The greenest thumbs ever.;We like big plants.;Soft soil..."
icon_state = "nutri"
icon_deny = "nutri-deny"
+ vend_id = "hydro"
products = list(
/obj/item/weapon/reagent_containers/glass/fertilizer/ez = 6,
/obj/item/weapon/reagent_containers/glass/fertilizer/l4z = 5,
@@ -373,6 +386,7 @@
product_slogans = "THIS'S WHERE TH' SEEDS LIVE! GIT YOU SOME!;Hands down the best seed selection on the station!;Also certain mushroom varieties available, more for experts! Get certified today!"
product_ads = "We like plants!;Grow some crops!;Grow, baby, growww!;Aw h'yeah son!"
icon_state = "seeds"
+ vend_id = "seeds"
products = list(
/obj/item/seeds/bananaseed = 3,
@@ -493,6 +507,7 @@
vend_delay = 15
vend_reply = "Have an enchanted evening!"
product_ads = "FJKLFJSD;AJKFLBJAKL;1234 LOONIES LOL!;>MFW;Kill them fuckers!;GET DAT FUKKEN DISK;HONK!;EI NATH;Destroy the station!;Admin conspiracies since forever!;Space-time bending hardware!"
+ vend_id = "magic"
products = list(
/obj/item/clothing/head/wizard = 1,
/obj/item/clothing/suit/wizrobe = 1,
@@ -510,6 +525,7 @@
desc = "A kitchen and restaurant equipment vendor."
product_ads = "Mm, food stuffs!;Food and food accessories.;Get your plates!;You like forks?;I like forks.;Woo, utensils.;You don't really need these..."
icon_state = "dinnerware"
+ vend_id = "cutlery"
products = list(
/obj/item/weapon/tray = 8,
/obj/item/weapon/material/kitchen/utensil/fork = 6,
@@ -532,6 +548,7 @@
name = "BODA"
desc = "An old sweet water vending machine,how did this end up here?"
icon_state = "sovietsoda"
+ vend_id = "cola"
product_ads = "For Tsar and Country.;Have you fulfilled your nutrition quota today?;Very nice!;We are simple people, for this is all we eat.;If there is a person, there is a problem. If there is no person, then there is no problem."
products = list(
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda = 30
@@ -550,6 +567,7 @@
desc = "Tools for tools."
icon_state = "tool"
icon_deny = "tool-deny"
+ vend_id = "tools"
//req_access = list(access_maint_tunnels) //Maintenance access
products = list(
/obj/item/stack/cable_coil/random = 10,
@@ -575,6 +593,7 @@
icon_state = "engivend"
icon_deny = "engivend-deny"
req_access = list(access_engine_equip)
+ vend_id = "tools"
products = list(
/obj/item/clothing/glasses/meson = 2,
/obj/item/device/multitool = 4,
@@ -597,6 +616,7 @@
icon_state = "tact"
icon_deny = "tact-deny"
req_access = list(access_security)
+ vend_id = "tactical"
products = list(
/obj/item/weapon/storage/box/shotgunammo = 2,
/obj/item/weapon/storage/box/shotgunshells = 2,
@@ -616,6 +636,7 @@
icon_state = "tact"
icon_deny = "tact-deny"
req_access = list(access_security)
+ vend_id = "ert"
products = list(
/obj/item/weapon/storage/box/shotgunammo = 2,
/obj/item/weapon/storage/box/shotgunshells = 2,
@@ -639,6 +660,7 @@
icon_state = "engi"
icon_deny = "engi-deny"
req_access = list(access_engine_equip)
+ vend_id = "tools"
products = list(
/obj/item/clothing/under/rank/chief_engineer = 4,
/obj/item/clothing/under/rank/engineer = 4,
@@ -676,6 +698,7 @@
icon_state = "robotics"
icon_deny = "robotics-deny"
req_access = list(access_robotics)
+ vend_id = "robo-tools"
products = list(
/obj/item/clothing/suit/storage/toggle/labcoat = 4,
/obj/item/clothing/under/rank/roboticist = 4,
@@ -699,6 +722,7 @@
name = "prop dispenser"
desc = "All the props an actor could need. Probably."
icon_state = "Theater"
+ vend_id = "baygay"
products = list(
/obj/structure/flora/pottedplant = 2,
/obj/item/device/flashlight/lamp = 2,
@@ -715,8 +739,34 @@
name = "container dispenser"
desc = "A container that dispenses containers."
icon_state = "robotics"
+ vend_id = "baygay"
products = list(
/obj/structure/closet/crate/freezer = 2,
/obj/structure/closet = 3,
/obj/structure/closet/crate = 3
)
+
+
+//RECURSION
+/obj/machinery/vending/vendors
+ name = "Omni-Vendor"
+ desc = "The mother of all vendors, from which vending itself comes!"
+ icon_state = "engivend"
+ icon_deny = "engivend-deny"
+ vend_id = "admin"
+ req_access = list(access_janitor)
+ products = list(
+ /obj/item/weapon/vending_refill/booze = 1,
+ /obj/item/weapon/vending_refill/tools = 1,
+ /obj/item/weapon/vending_refill/coffee = 1,
+ /obj/item/weapon/vending_refill/snack = 1,
+ /obj/item/weapon/vending_refill/cola = 1,
+ /obj/item/weapon/vending_refill/pda = 1,
+ /obj/item/weapon/vending_refill/smokes = 1,
+ /obj/item/weapon/vending_refill/meds = 1,
+ /obj/item/weapon/vending_refill/robust = 1,
+ /obj/item/weapon/vending_refill/hydro = 1,
+ /obj/item/weapon/vending_refill/cutlery = 1,
+ /obj/item/weapon/vending_refill/robo = 1
+
+ )
diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index 55bb4d44844..9d0ffc3c16c 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -4,7 +4,7 @@
//Added by Jack Rost
/obj/item/trash
icon = 'icons/obj/trash.dmi'
- w_class = 2.0
+ w_class = 1.0
desc = "This is rubbish."
/obj/item/trash/koisbar
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 9a8581b35bb..7b12addf238 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -37,15 +37,16 @@
w_class = 4
max_w_class = 2
+ max_storage_space = 56
can_hold = null // any
cant_hold = list(/obj/item/weapon/disk/nuclear)
/obj/item/weapon/storage/bag/trash/update_icon()
if(contents.len == 0)
icon_state = "trashbag0"
- else if(contents.len < 12)
- icon_state = "trashbag1"
else if(contents.len < 21)
+ icon_state = "trashbag1"
+ else if(contents.len < 42)
icon_state = "trashbag2"
else icon_state = "trashbag3"
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index cb46c52e3a6..129a4675a64 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -230,7 +230,11 @@
/obj/item/device/lightreplacer,
/obj/item/device/flashlight,
/obj/item/weapon/reagent_containers/spray,
- /obj/item/weapon/soap
+ /obj/item/weapon/soap,
+ /obj/item/weapon/storage/bag/trash,
+ /obj/item/weapon/screwdriver,
+ /obj/item/weapon/wrench,
+ /obj/item/weapon/crowbar
)
/obj/item/weapon/storage/belt/wands
diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm
new file mode 100644
index 00000000000..45b29dc2d0e
--- /dev/null
+++ b/code/game/objects/items/weapons/tanks/watertank.dm
@@ -0,0 +1,149 @@
+/obj/item/watertank
+ name = "backpack water tank"
+ desc = "A watertank backpack with nozzle to clean dirt and graffiti."
+ icon = 'icons/obj/hydro_equipment.dmi'
+ icon_state = "waterpack"
+ item_state = "waterpack"
+ contained_sprite = 1
+ w_class = 3
+ slot_flags = SLOT_BACK
+
+ var/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/noz
+ var/on = FALSE
+ var/volume = 500
+
+/obj/item/watertank/Initialize()
+ . = ..()
+ create_reagents(volume)
+ noz = make_noz()
+ noz.tank = src
+ noz.reagents = reagents
+ noz.loc = src
+
+/obj/item/watertank/ui_action_click()
+ toggle_mister()
+
+/obj/item/watertank/verb/toggle_mister()
+ set name = "Toggle Mister"
+ set category = "Object"
+ var/mob/living/carbon/human/user
+ if(istype(usr,/mob/living/carbon/human))
+ user = usr
+ else
+ return
+ if(!user)
+ return
+ if (user.back!= src)
+ to_chat(user, "The watertank must be worn properly to use!")
+ return
+ if(use_check(user))
+ return
+ on = !on
+ if(on)
+ if(!noz)
+ noz = make_noz()
+ noz.tank = src
+ noz.reagents = reagents
+ noz.loc = src
+
+ //Detach the nozzle into the user's hands
+ if(!user.put_in_hands(noz))
+ on = FALSE
+ to_chat(user, "You need a free hand to hold the mister!")
+ return
+ noz.loc = user
+ else
+ //Remove from their hands and put back "into" the tank
+ remove_noz()
+ return
+
+/obj/item/watertank/proc/make_noz()
+ return new /obj/item/weapon/reagent_containers/spray/chemsprayer/mister()
+
+/obj/item/watertank/equipped(mob/user, slot)
+ ..()
+ if(slot != slot_back)
+ remove_noz()
+
+/obj/item/watertank/proc/remove_noz()
+ if(!noz)
+ noz = make_noz()
+ noz.tank = src
+ noz.reagents = reagents
+ noz.loc = src
+ if(ismob(noz.loc))
+ var/mob/M = noz.loc
+ M.drop_from_inventory(noz)
+ noz.loc = src
+ return
+
+/obj/item/watertank/Destroy()
+ qdel(noz)
+ noz = null
+ return ..()
+
+/obj/item/watertank/attackby(obj/item/W, mob/user, params)
+ if(W == noz)
+ remove_noz()
+ return 1
+ else
+ return ..()
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister
+ name = "water mister"
+ desc = "A mister nozzle attached to a water tank."
+ icon = 'icons/obj/hydro_equipment.dmi'
+ icon_state = "mister"
+ item_state = "mister"
+ contained_sprite = 1
+ w_class = 3
+ amount_per_transfer_from_this = 50
+ volume = 500
+ slot_flags = 0
+
+ var/obj/item/watertank/tank
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/dropped(mob/user)
+ ..()
+ to_chat(user, "The mister snaps back onto the watertank.")
+ tank.on = 0
+ forceMove(tank)
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/attack_self()
+ return
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/Move()
+ ..()
+ if(loc != tank.loc)
+ forceMove(tank.loc)
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/afterattack(obj/target, mob/user, proximity)
+ if(target.loc == loc) //Safety check so you don't fill your mister with mutagen or something and then blast yourself in the face with it
+ return
+ ..()
+
+//Janitor tank
+/obj/item/watertank/janitor
+ name = "backpack water tank"
+ desc = "A janitorial watertank backpack with nozzle to clean dirt and graffiti."
+ icon_state = "waterpackjani"
+ item_state = "waterpackjani"
+
+/obj/item/watertank/janitor/Initialize()
+ ..()
+ reagents.add_reagent("cleaner", 500)
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/janitor
+ name = "janitor spray nozzle"
+ desc = "A janitorial spray nozzle attached to a watertank, designed to clean up large messes."
+ icon_state = "misterjani"
+ item_state = "misterjani"
+ amount_per_transfer_from_this = 5
+ possible_transfer_amounts = list()
+
+/obj/item/watertank/janitor/make_noz()
+ return new /obj/item/weapon/reagent_containers/spray/chemsprayer/mister/janitor(src)
+
+/obj/item/weapon/reagent_containers/spray/chemsprayer/mister/janitor/attack_self(var/mob/user)
+ amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10)
+ to_chat(user, "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.")
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index 11647cd4aab..2a7901cd98c 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -62,11 +62,10 @@
/obj/structure/closet/jcloset/fill()
new /obj/item/clothing/under/rank/janitor(src)
- new /obj/item/device/radio/headset/headset_service(src)
+ new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/weapon/cartridge/janitor(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/head/soft/purple(src)
- new /obj/item/clothing/head/beret/purple(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/caution(src)
new /obj/item/weapon/caution(src)
@@ -81,6 +80,8 @@
new /obj/item/weapon/grenade/chem_grenade/cleaner(src)
new /obj/item/weapon/grenade/chem_grenade/cleaner(src)
new /obj/item/weapon/reagent_containers/spray/cleaner(src)
+ new /obj/item/weapon/reagent_containers/glass/rag(src)
+ new /obj/item/weapon/soap/nanotrasen(src)
/*
* Lawyer
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index 911c9a91513..6579b662053 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -302,130 +302,4 @@
has_items = 1
if(signs)
add_overlay("cart_sign[signs]")
- has_items = 1
-
-
-//old style retardo-cart
-/obj/structure/bed/chair/janicart
- name = "janicart"
- icon = 'icons/obj/vehicles.dmi'
- icon_state = "pussywagon"
- anchored = 1
- density = 1
- flags = OPENCONTAINER
- //copypaste sorry
- var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
- var/obj/item/weapon/storage/bag/trash/mybag = null
- var/callme = "pimpin' ride" //how do people refer to it?
-
-
-/obj/structure/bed/chair/janicart/New()
- create_reagents(100)
-
-
-/obj/structure/bed/chair/janicart/examine(mob/user)
- if(!..(user, 1))
- return
-
- user << "\icon[src] This [callme] contains [reagents.total_volume] unit\s of water!"
- if(mybag)
- user << "\A [mybag] is hanging on the [callme]."
-
-
-/obj/structure/bed/chair/janicart/attackby(obj/item/I, mob/user)
- if(istype(I, /obj/item/weapon/mop))
- if(reagents.total_volume > 1)
- reagents.trans_to_obj(I, 2)
- user << "You wet [I] in the [callme]."
- playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
- else
- user << "This [callme] is out of water!"
- else if(istype(I, /obj/item/key))
- user << "Hold [I] in one of your hands while you drive this [callme]."
- else if(istype(I, /obj/item/weapon/storage/bag/trash))
- user << "You hook the trashbag onto the [callme]."
- user.drop_item()
- I.loc = src
- mybag = I
-
-
-/obj/structure/bed/chair/janicart/attack_hand(mob/user)
- if(mybag)
- mybag.loc = get_turf(user)
- user.put_in_hands(mybag)
- mybag = null
- else
- ..()
-
-
-/obj/structure/bed/chair/janicart/relaymove(mob/user, direction)
- if(user.stat || user.stunned || user.weakened || user.paralysis)
- unbuckle_mob()
- if(istype(user.l_hand, /obj/item/key) || istype(user.r_hand, /obj/item/key))
- step(src, direction)
- update_mob()
- else
- user << "You'll need the keys in one of your hands to drive this [callme]."
-
-
-/obj/structure/bed/chair/janicart/Move()
- ..()
- if(buckled_mob)
- if(buckled_mob.buckled == src)
- buckled_mob.loc = loc
-
-
-/obj/structure/bed/chair/janicart/post_buckle_mob(mob/living/M)
- update_mob()
- return ..()
-
-
-/obj/structure/bed/chair/janicart/unbuckle_mob()
- var/mob/living/M = ..()
- if(M)
- M.pixel_x = 0
- M.pixel_y = 0
- return M
-
-
-/obj/structure/bed/chair/janicart/set_dir()
- ..()
- if(buckled_mob)
- if(buckled_mob.loc != loc)
- buckled_mob.buckled = null //Temporary, so Move() succeeds.
- buckled_mob.buckled = src //Restoring
-
- update_mob()
-
-
-/obj/structure/bed/chair/janicart/proc/update_mob()
- if(buckled_mob)
- buckled_mob.set_dir(dir)
- switch(dir)
- if(SOUTH)
- buckled_mob.pixel_x = 0
- buckled_mob.pixel_y = 7
- if(WEST)
- buckled_mob.pixel_x = 13
- buckled_mob.pixel_y = 7
- if(NORTH)
- buckled_mob.pixel_x = 0
- buckled_mob.pixel_y = 4
- if(EAST)
- buckled_mob.pixel_x = -13
- buckled_mob.pixel_y = 7
-
-
-/obj/structure/bed/chair/janicart/bullet_act(var/obj/item/projectile/Proj)
- if(buckled_mob)
- if(prob(85))
- return buckled_mob.bullet_act(Proj)
- visible_message("[Proj] ricochets off the [callme]!")
-
-
-/obj/item/key
- name = "key"
- desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
- icon = 'icons/obj/vehicles.dmi'
- icon_state = "keys"
- w_class = 1
+ has_items = 1
\ No newline at end of file
diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm
index 7e598249bbb..fe4896bd0ae 100644
--- a/code/game/objects/structures/signs.dm
+++ b/code/game/objects/structures/signs.dm
@@ -145,6 +145,10 @@
desc = "Next to the extremely long list of names and job titles, there is a drawing of a little child. The child appears to be retarded. Beneath the image, someone has scratched the word \"PACKETS\""
icon_state = "kiddieplaque"
+/obj/structure/sign/kiddieplaque/janitor
+ desc = "A humble wooden plaque. In simple lettering begin the words: \"Primum non sordes\"."
+ name = "\improper Janitorial Oath"
+
/obj/structure/sign/atmosplaque
name = "\improper FEA atmospherics division plaque"
desc = "This plaque commemorates the fall of the Atmos FEA division. For all the charred, dizzy, and brittle men who have died in its hands."
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index dc377fbab15..e8ad1e4bb7b 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -596,7 +596,7 @@
add_overlay(I)
turn_off() //so engine verbs are correctly set
-/obj/vehicle/train/cargo/engine/attackby(obj/item/weapon/W as obj, mob/user as mob)
+/obj/vehicle/train/cargo/engine/mining/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/key/minecarts))
if(!key)
user.drop_item()
diff --git a/code/modules/vehicles/pussywagon.dm b/code/modules/vehicles/pussywagon.dm
new file mode 100644
index 00000000000..ca19f31ce85
--- /dev/null
+++ b/code/modules/vehicles/pussywagon.dm
@@ -0,0 +1,212 @@
+/obj/vehicle/train/cargo/engine/pussywagon
+ name = "janicart deluxe engine"
+ desc = "The engine for the janicart deluxe trolley, the bread to your butter."
+ icon = 'icons/obj/vehicles.dmi'
+ icon_state = "janicart_off"
+ move_delay = 3
+
+ mob_offset_y = 7
+ load_offset_x = -13
+
+ var/cart_icon = "janicart"
+
+/obj/item/weapon/key/janicart
+ name = "key"
+ desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
+ icon = 'icons/obj/vehicles.dmi'
+ icon_state = "keys"
+ w_class = 1
+
+/obj/vehicle/train/cargo/engine/pussywagon/Initialize()
+ . = ..()
+ cell = new /obj/item/weapon/cell/high(src)
+ key = null
+ update_icon()
+ turn_off() //so engine verbs are correctly set
+
+/obj/vehicle/train/cargo/engine/pussywagon/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/key/janicart))
+ if(!key)
+ user.drop_item()
+ W.forceMove(src)
+ key = W
+ verbs += /obj/vehicle/train/cargo/engine/verb/remove_key
+ return
+ ..()
+
+/obj/vehicle/train/cargo/engine/pussywagon/turn_on()
+ if(!key)
+ return
+ else
+ ..()
+ update_stats()
+
+ verbs += /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_mop
+ verbs += /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_hoover
+
+/obj/vehicle/train/cargo/engine/pussywagon/turn_off()
+ ..()
+
+ if(tow)
+ if(istype(tow,/obj/vehicle/train/cargo/trolley/pussywagon))
+ var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
+ if(PW.mopping)
+ PW.mop_toggle()
+ if(PW.hoover)
+ PW.hoover_toggle()
+ verbs -= /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_mop
+ verbs -= /obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_hoover
+
+/obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_mop()
+ set name = "Toggle Mop-o-matic"
+ set category = "Vehicle"
+ set src in view(0)
+
+ if(usr.incapacitated())
+ return
+
+ if(on && tow)
+ if(istype(tow,/obj/vehicle/train/cargo/trolley/pussywagon))
+ var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
+ if(!PW.bucket)
+ usr << "You must insert a reagent container first!"
+ return
+ PW.mop_toggle()
+
+/obj/vehicle/train/cargo/engine/pussywagon/verb/toggle_hoover()
+ set name = "Toggle Space Hoover"
+ set category = "Vehicle"
+ set src in view(0)
+
+ if(usr.incapacitated())
+ return
+
+ if(on && tow)
+ if(istype(tow,/obj/vehicle/train/cargo/trolley/pussywagon))
+ var/obj/vehicle/train/cargo/trolley/pussywagon/PW = tow
+ PW.hoover_toggle()
+
+/obj/vehicle/train/cargo/engine/pussywagon/update_icon()
+ cut_overlays()
+
+ if(on)
+ add_overlay(image('icons/obj/vehicles.dmi', "[cart_icon]_on_overlay", MOB_LAYER + 1))
+ icon_state = "[cart_icon]_on"
+ else
+ add_overlay(image('icons/obj/vehicles.dmi', "[cart_icon]_off_overlay", MOB_LAYER + 1))
+ icon_state = "[cart_icon]_off"
+ ..()
+
+/obj/vehicle/train/cargo/engine/pussywagon/Move(var/turf/destination)
+ switch(dir)
+ if(NORTH)
+ mob_offset_y = 7
+ load_offset_x = 0
+ load.pixel_y = mob_offset_y
+ load.pixel_x = load_offset_x
+ if(SOUTH)
+ mob_offset_y = 7
+ load_offset_x = 0
+ load.pixel_y = mob_offset_y
+ load.pixel_x = load_offset_x
+ if(EAST)
+ mob_offset_y = 7
+ load_offset_x = -13
+ load.pixel_y = mob_offset_y
+ load.pixel_x = load_offset_x
+ if(WEST)
+ mob_offset_y = 7
+ load_offset_x = 13
+ load.pixel_y = mob_offset_y
+ load.pixel_x = load_offset_x
+ ..()
+
+/obj/vehicle/train/cargo/trolley/pussywagon
+ name = "janicart deluxe trolley"
+ desc = "The trolley of the janicart deluxe, equipped with dual rotary mop and a NT-X1 Vacuum Cleaner."
+ icon = 'icons/obj/vehicles.dmi'
+ icon_state = "jantrolley"
+
+ var/obj/item/weapon/reagent_containers/bucket
+ var/list/hoovered = list()
+ var/vacuum_capacity = 125
+ var/mopping = 0
+ var/hoover = 0
+
+
+/obj/vehicle/train/cargo/trolley/pussywagon/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/reagent_containers) && open)
+ if(!bucket)
+ user.drop_item()
+ bucket = W
+ W.forceMove(src)
+ user << "You replace \the [src]'s reagent reservoir."
+ return
+
+ if(iswrench(W) && open)
+ if(bucket)
+ bucket.forceMove(user.loc)
+ bucket = null
+ user << "You remove \the [src]'s reagent reservoir."
+ return
+
+ if(iscrowbar(W) && !open)
+ if(bucket)
+ for(var/obj/item/I in hoovered)
+ I.forceMove(user.loc)
+ hoovered -= I
+ vacuum_capacity = 125
+ user << "You empty \the [src]'s vacuum cleaner."
+ return
+ ..()
+
+/obj/vehicle/train/cargo/trolley/pussywagon/Move(var/turf/destination)
+ if(lead)
+ var/turf/tile = loc
+ if(mopping && bucket)
+ if(isturf(tile))
+ if(bucket.reagents.total_volume > 1)
+ tile.clean(bucket)
+ lead.cell.use(charge_use, load)
+ else
+ mop_toggle()
+ if(hoover)
+ var/current_len = hoovered.len
+ for(var/obj/item/I in tile)
+ if(I.w_class <= 2.0 && !I.anchored && (vacuum_capacity -= w_class >= 0))
+ I.forceMove(src)
+ hoovered += I
+ vacuum_capacity -= I.w_class
+ lead.cell.use(charge_use)
+ if(!vacuum_capacity)
+ hoover_toggle()
+ if(hoovered.len > current_len)
+ playsound(src, 'sound/machines/disposalflush.ogg', 100, 1)
+ return ..()
+
+/obj/vehicle/train/cargo/trolley/pussywagon/proc/mop_toggle()
+ if(!mopping)
+ mopping = 1
+ src.visible_message("\The [src]'s mop-o-matic rumbles to life.", "You hear something rumble deeply.")
+ playsound(src, 'sound/machines/hydraulic_long.ogg', 100, 1)
+ else
+ mopping = 0
+ src.visible_message("\The [src]'s mop-o-matic putters before turning off.", "You hear something putter slowly.")
+ update_icon()
+
+
+/obj/vehicle/train/cargo/trolley/pussywagon/proc/hoover_toggle()
+ if(!hoover)
+ hoover = 1
+ src.visible_message("\The [src]'s space hoover rumbles to life.", "You hear something rumble deeply.")
+ playsound(src, 'sound/machines/hydraulic_long.ogg', 100, 1)
+ else
+ hoover = 0
+ src.visible_message("\The [src]'s space hoover putters before turning off.", "You hear something putter slowly.")
+ update_icon()
+
+/obj/vehicle/train/cargo/trolley/pussywagon/update_icon()
+ cut_overlays()
+
+ if(mopping)
+ add_overlay(image('icons/obj/vehicles.dmi', "[icon_state]_mop_overlay", MOB_LAYER + 1))
diff --git a/html/changelogs/janitorbuffs.yml b/html/changelogs/janitorbuffs.yml
new file mode 100644
index 00000000000..08d77d4d24b
--- /dev/null
+++ b/html/changelogs/janitorbuffs.yml
@@ -0,0 +1,40 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+#################################
+
+# Your name.
+author: LordFowl
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Added vending machine restockers, which can be used to restock vending machines. Can be ordered from cargo with a custodial ID."
+ - rscadd: "Added the janicart deluxe, a multi-object vehicle that can be used to clean wide swathes of area with its turbomop and space hoover attachments."
+ - rscadd: "Added backmounted chemsprayers."
+ - tweak: "Janitors have been moved from civilian to engineering."
\ No newline at end of file
diff --git a/icons/obj/hydro_equipment.dmi b/icons/obj/hydro_equipment.dmi
new file mode 100644
index 00000000000..6d011b95c0c
Binary files /dev/null and b/icons/obj/hydro_equipment.dmi differ
diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi
index ca4e7d77954..fce54b7c143 100644
Binary files a/icons/obj/vehicles.dmi and b/icons/obj/vehicles.dmi differ
diff --git a/maps/aurora/aurora-4_mainlevel.dmm b/maps/aurora/aurora-4_mainlevel.dmm
index ce78a721e14..d71c92de0e6 100644
--- a/maps/aurora/aurora-4_mainlevel.dmm
+++ b/maps/aurora/aurora-4_mainlevel.dmm
@@ -27290,8 +27290,12 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"aVe" = (
-/turf/simulated/wall/r_wall,
-/area/engineering/foyer)
+/obj/vehicle/train/cargo/engine/pussywagon,
+/obj/structure/sign/kiddieplaque/janitor{
+ pixel_y = 32
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
"aVf" = (
/obj/machinery/light{
dir = 1
@@ -28062,17 +28066,24 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"aWG" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/turf/simulated/floor/plating,
-/area/maintenance/research_port)
+/obj/structure/disposalpipe/sortjunction/flipped{
+ dir = 8;
+ name = "Janitor Closet";
+ sortType = "Janitor Closet"
+ },
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
"aWH" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -28083,13 +28094,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/maintenance{
- name = "Maintenance Access";
- req_access = list(12)
+/obj/effect/floor_decal/industrial/warning,
+/obj/effect/landmark/start{
+ name = "Janitor"
},
-/turf/simulated/floor/plating,
-/area/engineering/foyer)
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
"aWI" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -28147,11 +28157,11 @@
d2 = 4;
icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply,
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"aWN" = (
@@ -28893,13 +28903,13 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"aXP" = (
-/obj/machinery/light{
- dir = 8;
- icon_state = "tube1";
- pixel_y = 0
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
},
/turf/simulated/floor/tiled,
-/area/engineering/foyer)
+/area/janitor)
"aXQ" = (
/obj/machinery/newscaster{
layer = 3.3;
@@ -28914,16 +28924,16 @@
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"aXS" = (
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
/obj/structure/cable/green{
d1 = 1;
d2 = 4;
icon_state = "1-4"
},
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"aXT" = (
@@ -28936,6 +28946,13 @@
codes_txt = "patrol;next_patrol=CP1";
location = "Eng"
},
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/structure/cable/green{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
/mob/living/bot/secbot/beepsky,
/turf/simulated/floor/tiled,
/area/engineering/foyer)
@@ -29627,18 +29644,16 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"aZh" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced{
- icon_state = "rwindow";
- dir = 1
+/obj/machinery/vending/cigarette,
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/light{
+ tag = "icon-tube1";
+ icon_state = "tube1";
+ dir = 2
},
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/door/firedoor,
-/turf/simulated/floor/plating,
-/area/engineering/foyer)
+/obj/machinery/firealarm/east,
+/turf/simulated/floor/tiled,
+/area/janitor)
"aZi" = (
/obj/structure/grille,
/obj/structure/window/reinforced{
@@ -29704,7 +29719,13 @@
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"aZo" = (
-/obj/structure/closet/emcloset,
+/obj/item/device/radio/intercom{
+ pixel_y = -32
+ },
+/obj/effect/floor_decal/corner/yellow{
+ icon_state = "corner_white";
+ dir = 8
+ },
/turf/simulated/floor/tiled,
/area/engineering/foyer)
"aZp" = (
@@ -30873,26 +30894,14 @@
/turf/simulated/floor/carpet,
/area/crew_quarters/heads/cryo)
"bby" = (
-/obj/structure/window/reinforced{
- dir = 1
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/weapon/reagent_containers/glass/bucket,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/light/small{
+ dir = 4
},
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/grille,
-/obj/machinery/door/firedoor{
- dir = 2
- },
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
- },
-/obj/structure/cable/green{
- d2 = 4;
- icon_state = "0-4"
- },
-/turf/simulated/floor/plating,
-/area/storage/tech)
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
"bbz" = (
/obj/structure/window/reinforced{
dir = 1
@@ -31692,23 +31701,11 @@
/turf/simulated/floor/carpet,
/area/crew_quarters/heads/cryo)
"bcQ" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/grille,
-/obj/machinery/door/firedoor{
- dir = 2
- },
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
- },
-/obj/structure/cable/green,
-/turf/simulated/floor/plating,
-/area/storage/tech)
+/obj/structure/reagent_dispensers/watertank,
+/obj/item/weapon/reagent_containers/glass/bucket,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
"bcR" = (
/obj/structure/table/rack{
dir = 8;
@@ -32380,27 +32377,22 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"bdV" = (
-/obj/structure/window/reinforced{
- dir = 4
+/obj/structure/table/rack,
+/obj/item/weapon/storage/box/mousetraps{
+ pixel_x = 4;
+ pixel_y = -4
},
-/obj/structure/window/reinforced{
- dir = 8
+/obj/item/weapon/storage/box/mousetraps{
+ pixel_x = 2;
+ pixel_y = -2
},
-/obj/structure/grille,
-/obj/machinery/door/firedoor{
- dir = 2
+/obj/item/weapon/storage/box/mousetraps,
+/obj/item/weapon/storage/box/mousetraps{
+ pixel_x = -2;
+ pixel_y = 2
},
-/obj/structure/cable/green{
- d2 = 4;
- icon_state = "0-4"
- },
-/obj/structure/cable/green{
- d2 = 2;
- icon_state = "0-2"
- },
-/obj/structure/cable/green,
-/turf/simulated/floor/plating,
-/area/storage/tech)
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
"bdW" = (
/obj/structure/cable/green{
d1 = 4;
@@ -32435,12 +32427,11 @@
/turf/simulated/floor/plating,
/area/storage/tech)
"bdZ" = (
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
+/obj/machinery/light/small/emergency{
+ dir = 8
},
-/turf/simulated/floor/plating,
+/obj/structure/closet/crate/software_backup,
+/turf/simulated/floor/tiled,
/area/storage/tech)
"bea" = (
/obj/structure/cable/green{
@@ -34013,21 +34004,10 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"bgO" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/grille,
-/obj/machinery/door/firedoor{
- dir = 2
- },
-/obj/structure/cable/green,
-/obj/structure/cable/green{
- d2 = 4;
- icon_state = "0-4"
- },
-/turf/simulated/floor/plating,
-/area/storage/tech)
+/obj/structure/closet/l3closet/janitor,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
"bgP" = (
/obj/structure/window/reinforced{
dir = 4
@@ -57067,22 +57047,18 @@
/turf/simulated/floor/tiled,
/area/hallway/primary/aft)
"bUX" = (
-/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ icon_state = "intact-supply";
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
},
/obj/structure/cable/green{
d1 = 1;
d2 = 8;
icon_state = "1-8"
},
-/obj/structure/cable/green{
- d1 = 2;
- d2 = 8;
- icon_state = "2-8"
- },
/turf/simulated/floor/tiled,
/area/hallway/primary/aft)
"bUY" = (
@@ -57275,13 +57251,6 @@
/turf/simulated/floor/tiled,
/area/hallway/primary/aft)
"bVv" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
/obj/machinery/navbeacon{
codes_txt = "patrol;next_patrol=CC2";
location = "Civ"
@@ -57833,23 +57802,10 @@
/turf/simulated/wall,
/area/janitor)
"bWt" = (
-/obj/machinery/door/airlock{
- name = "Custodial Closet";
- req_access = list(26)
- },
/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2"
- },
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/obj/machinery/door/airlock/glass,
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bWu" = (
/obj/structure/table/wood,
/obj/item/device/camera,
@@ -58012,60 +57968,36 @@
},
/area/janitor)
"bWK" = (
-/obj/item/weapon/storage/box/lights/mixed,
-/obj/item/weapon/storage/box/lights/mixed,
-/obj/machinery/light_switch{
- pixel_y = 28
+/obj/structure/cryofeed{
+ icon_state = "cryo_rear";
+ dir = 4
},
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
- },
-/obj/machinery/camera/network/civilian_west{
- c_tag = "Maintenance - Janitorial Office"
- },
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bWL" = (
-/obj/machinery/newscaster{
- pixel_y = 30
+/obj/machinery/cryopod{
+ icon_state = "body_scanner_0";
+ dir = 4
},
-/obj/item/weapon/storage/box/mousetraps,
-/obj/item/weapon/storage/box/mousetraps,
-/obj/structure/cable/green{
- d1 = 4;
- d2 = 8;
- icon_state = "4-8"
+/obj/machinery/light{
+ dir = 1;
+ icon_state = "tube1";
+ pixel_y = 0
},
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bWM" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
-/obj/structure/cable/green{
- d1 = 1;
- d2 = 8;
- icon_state = "1-8"
- },
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bWN" = (
-/obj/structure/closet/crate/trashcart,
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
+/obj/machinery/cryopod,
+/obj/machinery/light{
+ dir = 1;
+ icon_state = "tube1";
+ pixel_y = 0
},
-/area/janitor)
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bWO" = (
/obj/structure/bed/chair/comfy/black{
dir = 4
@@ -58264,14 +58196,12 @@
},
/area/janitor)
"bXl" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+/obj/machinery/cryopod{
+ icon_state = "body_scanner_0";
dir = 4
},
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bXm" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
@@ -58286,16 +58216,9 @@
},
/area/janitor)
"bXn" = (
-/obj/structure/mopbucket,
-/obj/item/weapon/mop,
-/obj/machinery/atmospherics/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/obj/machinery/cryopod,
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bXo" = (
/obj/structure/table/wood,
/obj/machinery/light/small,
@@ -58573,16 +58496,12 @@
},
/area/janitor)
"bXH" = (
-/obj/structure/disposalpipe/segment{
- dir = 2;
- icon_state = "pipe-c"
+/obj/machinery/computer/cryopod{
+ pixel_x = -32;
+ pixel_y = -32
},
-/obj/item/weapon/reagent_containers/glass/bucket,
-/turf/simulated/floor/tiled{
- icon_state = "vault";
- dir = 5
- },
-/area/janitor)
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
"bXI" = (
/obj/structure/reagent_dispensers/watertank,
/turf/simulated/floor/tiled{
@@ -58752,13 +58671,11 @@
/area/quartermaster/office)
"bYc" = (
/obj/machinery/door/airlock/maintenance{
- name = "Custodial Maintenance";
- req_access = list(26)
+ req_access = list(12)
},
-/obj/structure/disposalpipe/segment,
/obj/machinery/door/firedoor,
/turf/simulated/floor/plating,
-/area/janitor)
+/area/maintenance/library)
"bYd" = (
/obj/structure/cable{
d1 = 2;
@@ -59723,7 +59640,7 @@
/area/maintenance/library)
"bZV" = (
/obj/machinery/disposal{
- name = "To Compactor"
+ name = "External Disposals"
},
/obj/structure/disposalpipe/trunk,
/obj/effect/floor_decal/industrial/warning{
@@ -61865,13 +61782,28 @@
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"cdN" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/universal,
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ icon_state = "intact-supply";
+ dir = 6
+ },
/turf/simulated/floor/plating,
/area/maintenance/research_port)
"cdO" = (
-/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
- icon_state = "intact-scrubbers";
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2";
+ pixel_y = 0
},
/turf/simulated/floor/plating,
/area/maintenance/research_port)
@@ -62007,6 +61939,752 @@
},
/turf/simulated/floor/plating,
/area/maintenance/library)
+"ced" = (
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 8;
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ icon_state = "intact-supply";
+ dir = 9
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/research_port)
+"cee" = (
+/turf/simulated/wall/r_wall,
+/area/janitor)
+"cef" = (
+/turf/simulated/wall/r_wall,
+/area/janitor)
+"ceg" = (
+/obj/structure/sign/double/map/left{
+ pixel_y = 32
+ },
+/obj/machinery/power/apc{
+ dir = 8;
+ name = "west bump";
+ pixel_x = -24
+ },
+/obj/structure/cable/green{
+ d2 = 2;
+ icon_state = "0-2"
+ },
+/obj/machinery/light{
+ dir = 1;
+ icon_state = "tube1";
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceh" = (
+/obj/item/weapon/stool,
+/obj/structure/sign/double/map/right{
+ pixel_y = 32
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cei" = (
+/obj/structure/table/steel,
+/obj/item/weapon/deck/cards,
+/obj/item/weapon/key/janicart,
+/obj/item/device/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = 25
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cej" = (
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
+/obj/vehicle/train/cargo/trolley/pussywagon,
+/obj/machinery/alarm{
+ pixel_y = 23
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cek" = (
+/obj/machinery/button/remote/blast_door{
+ id = "mopinator";
+ name = "Custodial Garage";
+ pixel_y = 32;
+ req_access = list(26)
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cel" = (
+/obj/machinery/door/blast/shutters{
+ density = 1;
+ dir = 4;
+ icon_state = "shutter1";
+ id = "mopinator";
+ name = "Custodial Garage";
+ opacity = 1
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cem" = (
+/obj/effect/floor_decal/industrial/loading{
+ icon_state = "loadingarea";
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/engineering/foyer)
+"cen" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/airlock/maintenance{
+ name = "Custodial Maintenance";
+ req_access = list(26)
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/research_port)
+"ceo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/item/weapon/stool,
+/obj/effect/landmark/start{
+ name = "Janitor"
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cep" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/table/steel,
+/obj/item/weapon/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/weapon/pen,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceq" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/floor_decal/industrial/warning{
+ icon_state = "warning";
+ dir = 10
+ },
+/obj/item/weapon/reagent_containers/glass/bucket,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cer" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/floor_decal/industrial/warning,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ces" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/machinery/door/blast/shutters{
+ density = 1;
+ dir = 4;
+ icon_state = "shutter1";
+ id = "mopinator";
+ name = "Custodial Garage";
+ opacity = 1
+ },
+/obj/effect/floor_decal/industrial/warning,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cet" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 4
+ },
+/obj/effect/floor_decal/industrial/loading{
+ icon_state = "loadingarea";
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/engineering/foyer)
+"ceu" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/obj/machinery/newscaster{
+ pixel_x = -27
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cev" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cew" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cex" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cey" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"cez" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Custodial Technician";
+ req_access = list(26)
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceA" = (
+/obj/machinery/button/remote/blast_door{
+ id = "mopinator";
+ name = "Custodial Garage";
+ pixel_y = -32;
+ req_access = list(26)
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/engineering/foyer)
+"ceB" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 0;
+ pixel_y = -32
+ },
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/turf/simulated/floor/tiled,
+/area/engineering/foyer)
+"ceC" = (
+/obj/machinery/disposal,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/light_switch{
+ pixel_y = -28
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceD" = (
+/obj/machinery/camera/network/engineering{
+ c_tag = "Engineering - Janitor";
+ dir = 1
+ },
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceE" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceF" = (
+/obj/structure/closet/crate/trashcart,
+/obj/machinery/requests_console{
+ department = "Janitorial";
+ departmentType = 1;
+ pixel_y = -29
+ },
+/obj/item/weapon/storage/bag/trash,
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceG" = (
+/obj/machinery/vending/coffee,
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/turf/simulated/floor/tiled,
+/area/janitor)
+"ceH" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/effect/floor_decal/corner/yellow{
+ icon_state = "corner_white";
+ dir = 10
+ },
+/obj/structure/cable/green{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled,
+/area/engineering/foyer)
+"ceI" = (
+/obj/machinery/door/airlock/engineering{
+ name = "Custodial Closet";
+ req_access = list(26)
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceJ" = (
+/obj/structure/janitorialcart,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceK" = (
+/obj/structure/sink/kitchen{
+ pixel_y = 32
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceL" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceM" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceN" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceO" = (
+/obj/structure/cable/green{
+ d2 = 4;
+ icon_state = "0-4"
+ },
+/obj/machinery/power/apc{
+ dir = 1;
+ name = "north bump";
+ pixel_x = 0;
+ pixel_y = 24
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/simulated/floor/plating,
+/area/storage/tech)
+"ceP" = (
+/obj/structure/mopbucket,
+/obj/item/weapon/mop,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceQ" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceR" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ icon_state = "intact-scrubbers";
+ dir = 5
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceS" = (
+/obj/machinery/atmospherics/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceT" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceU" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/storage/tech)
+"ceV" = (
+/obj/structure/table/rack{
+ dir = 8;
+ layer = 2.9
+ },
+/obj/item/weapon/circuitboard/pandemic{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/weapon/circuitboard/rdconsole,
+/obj/item/weapon/circuitboard/destructive_analyzer,
+/obj/item/weapon/circuitboard/protolathe,
+/obj/item/weapon/circuitboard/rdserver{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9;
+ pixel_y = 0
+ },
+/turf/simulated/floor/plating,
+/area/storage/tech)
+"ceW" = (
+/obj/structure/janitorialcart,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceX" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceY" = (
+/obj/structure/closet/jcloset,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"ceZ" = (
+/obj/structure/table/steel,
+/obj/item/watertank/janitor,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfa" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfb" = (
+/obj/machinery/door/airlock/highsecurity{
+ name = "Secure Tech Storage";
+ req_access = list(19,23)
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plating,
+/area/storage/tech)
+"cfc" = (
+/obj/structure/mopbucket,
+/obj/item/weapon/mop,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfd" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfe" = (
+/obj/structure/closet/jcloset,
+/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cff" = (
+/obj/structure/table/steel,
+/obj/item/watertank/janitor,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfg" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfh" = (
+/obj/structure/table/rack,
+/obj/item/weapon/storage/box/lights/mixed{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/item/weapon/storage/box/lights/mixed{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/weapon/storage/box/lights/mixed,
+/obj/item/weapon/storage/box/lights/mixed{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/camera/network/engineering{
+ c_tag = "Engineering - Janitor's Closet";
+ dir = 8
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfi" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/research_port)
+"cfj" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfk" = (
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/vending/vendors,
+/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfl" = (
+/obj/effect/floor_decal/industrial/hatch/yellow,
+/obj/machinery/vending/tool,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfm" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfn" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 4;
+ icon_state = "1-4"
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/research_port)
+"cfo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 2;
+ icon_state = "pipe-c"
+ },
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/research_port)
+"cfp" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfq" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 9;
+ pixel_y = 0
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfr" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfs" = (
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cft" = (
+/obj/structure/table/rack,
+/obj/item/stack/material/glass{
+ amount = 20;
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/machinery/light/small,
+/obj/item/stack/material/glass/reinforced{
+ amount = 50
+ },
+/obj/item/stack/material/steel{
+ amount = 20;
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfu" = (
+/obj/structure/table/rack,
+/obj/item/stack/material/wood{
+ amount = 20
+ },
+/obj/item/stack/material/plastic{
+ amount = 20
+ },
+/obj/machinery/alarm{
+ dir = 1;
+ icon_state = "alarm0";
+ pixel_y = -22
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfv" = (
+/obj/structure/table/rack,
+/obj/item/weapon/paper_bin{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/obj/item/weapon/paper_bin,
+/obj/item/weapon/paper_bin{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfw" = (
+/obj/structure/table/rack,
+/obj/item/weapon/caution{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/obj/item/weapon/caution{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/item/weapon/caution,
+/obj/item/weapon/caution{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/machinery/light/small,
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
+"cfx" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plating,
+/area/hallway/primary/aft)
+"cfy" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/door/firedoor,
+/turf/simulated/floor/plating,
+/area/hallway/primary/aft)
+"cfz" = (
+/obj/structure/cryofeed,
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
+"cfA" = (
+/obj/structure/cryofeed,
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
+"cfB" = (
+/obj/structure/cryofeed,
+/turf/simulated/floor/tiled/white,
+/area/hallway/primary/aft)
+"cfC" = (
+/obj/structure/cable{
+ d1 = 2;
+ d2 = 4;
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/supply{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 6
+ },
+/obj/structure/disposalpipe/segment{
+ icon_state = "conpipe-c";
+ dir = 4
+ },
+/turf/simulated/floor/plating,
+/area/maintenance/library)
+"cfD" = (
+/obj/structure/cable/green{
+ d1 = 4;
+ d2 = 8;
+ icon_state = "4-8"
+ },
+/obj/structure/noticeboard{
+ pixel_x = 0;
+ pixel_y = -32
+ },
+/turf/simulated/floor/tiled,
+/area/engineering/foyer)
+"cfE" = (
+/obj/item/device/radio/intercom{
+ desc = "Talk... listen through this.";
+ name = "Station Intercom (Brig Radio)";
+ pixel_x = 0;
+ pixel_y = 25;
+ wires = 7
+ },
+/turf/simulated/floor/tiled/dark,
+/area/janitor)
(1,1,1) = {"
aaa
@@ -76778,17 +77456,17 @@ cdK
cdL
cdN
cdO
-aVc
-aWE
-aKp
-aKp
-aKp
-aKp
-aKp
-bdU
-bdU
-bgN
-aKn
+aVd
+aWF
+aXO
+aZg
+aXO
+aXO
+aXO
+aXO
+aXO
+cfi
+cfn
aKn
bku
aLY
@@ -77033,19 +77711,19 @@ aKo
aNL
aPn
cdM
-aPn
-cdP
-aVd
-aWF
-aXO
-aZg
-aXO
-aXO
-aXO
-aXO
-aXO
-aXO
-aXO
+ced
+aKm
+aKm
+cen
+aKm
+aKm
+aKm
+aKm
+aKm
+aKm
+aKm
+aKm
+cfo
aXO
aXO
blN
@@ -77292,15 +77970,15 @@ aKm
aKm
aKm
aKm
-aKm
+ceg
aWG
-aKm
-aKm
-aKm
-aKm
-aKm
-aKm
-aKm
+ceu
+ceC
+bWs
+ceJ
+ceP
+ceW
+cfc
aKm
aKm
aKm
@@ -77548,19 +78226,19 @@ aKm
aaa
aaa
aaa
-aaa
-aKm
-aWG
-aKm
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
+cee
+ceh
+ceo
+cev
+ceD
+bWs
+ceK
+ceM
+ceM
+ceM
+ceM
+cfp
+cft
aKm
blP
aKm
@@ -77805,19 +78483,19 @@ aLZ
aLZ
aLZ
aaa
-aaa
-aKm
-aWG
-aKm
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
+cee
+cei
+cep
+cew
+ceE
+ceI
+ceL
+ceR
+ceY
+ceY
+cfk
+cfq
+cfu
aKm
blP
aKm
@@ -78063,18 +78741,18 @@ aPo
aLZ
aLZ
aLZ
-aKm
-aWG
-aKm
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
+cej
+ceq
+cev
+ceF
+bWs
+ceM
+ceS
+ceZ
+ceZ
+cfl
+ceM
+cfv
aKm
blP
aKm
@@ -78322,16 +79000,16 @@ aSs
aLZ
aVe
aWH
-aVe
-aVe
-aab
-aab
-aab
-aab
-aab
-aab
-aab
-aab
+cev
+ceG
+bWs
+cfE
+ceM
+ceM
+ceM
+ceM
+ceM
+cfw
aKm
blP
aKm
@@ -78577,18 +79255,18 @@ aPq
aRd
aSt
aLZ
-aDp
-aWI
-aXP
+cek
+cer
+cev
aZh
-aab
+bWs
bby
bcQ
bdV
-bcQ
+cfh
bgO
-aab
-aab
+bgO
+bWs
aKm
blP
aKm
@@ -78834,18 +79512,18 @@ aPr
aRe
aSu
aLZ
-aDp
-aWI
-aDp
-aZi
-aab
-bbz
-bcR
-bdW
-bfy
-bbz
-aab
-aab
+cel
+ces
+cez
+bWs
+bWs
+bWs
+bWs
+bWs
+bWs
+bWs
+bWs
+bWs
aKm
blQ
aKm
@@ -79091,16 +79769,16 @@ aPs
aRf
aSv
aUf
-aDp
-aWI
-aDp
-aZj
+cem
+cet
+ceA
+aPB
+aab
+aab
+aab
+aab
+aab
aab
-bbz
-bcS
-bdX
-bfz
-bbz
aab
aab
aKm
@@ -79350,15 +80028,15 @@ aSw
aUg
aDp
aWI
-aXQ
+cfD
aPB
-baj
-bbA
-bcT
-bdY
-bfA
-bgP
+aab
big
+big
+big
+big
+big
+aab
aab
aKm
blP
@@ -79607,15 +80285,15 @@ aNN
aUh
aVf
aWI
-aDp
-aZk
-baj
-bbB
-bcU
-bdZ
-bcU
-bgQ
+aBw
+aPB
+aab
big
+bcR
+bdZ
+bfy
+big
+aab
aab
aKm
blP
@@ -79864,15 +80542,15 @@ aSx
aUi
aVg
aWJ
-aDp
-aDp
-baj
-bbC
-bcV
-bea
-bcU
-bgR
+aBw
+aPB
+aab
big
+bcS
+bfz
+bfz
+big
+aab
aab
aKm
blP
@@ -80121,14 +80799,14 @@ aSy
aLZ
aVh
aWI
-aDp
-aZl
+ceB
+aPB
baj
-bbD
-bcW
-beb
-bfB
-bgS
+big
+bcT
+cfb
+bfA
+big
big
aab
aKm
@@ -80377,15 +81055,15 @@ aRk
aSz
aUj
aDp
-aWK
-aXR
-aZm
-bak
-bbE
-bcX
+aWI
+aBw
+aXQ
+baj
+bbB
bcU
bcU
-bgT
+bcU
+bgQ
big
aab
aKm
@@ -80636,13 +81314,13 @@ aUk
aVi
aWL
aXS
-aZn
+aZl
baj
-bbF
-bcY
-bec
-bfC
-bgU
+ceO
+ceU
+bcU
+bcU
+bgR
big
aKm
aKm
@@ -80893,13 +81571,13 @@ aUl
aVj
aWM
aXT
-aDp
-baj
-bbG
-bcU
-bcU
-bcU
-bgV
+ceH
+bak
+bbE
+ceV
+beb
+bfB
+bgS
big
bjk
bfE
@@ -81152,11 +81830,11 @@ aWN
aBw
aZo
baj
-bbH
-bcZ
-bed
-bfD
-bgW
+bbF
+bcU
+bcU
+bcU
+bgT
big
bee
bkv
@@ -81409,11 +82087,11 @@ aWO
aXU
aPB
baj
-baj
-baj
-baj
-baj
-baj
+bbF
+bcY
+bec
+bfC
+bgU
big
bef
bkv
@@ -81665,14 +82343,14 @@ aDp
aWP
aXV
aPB
-aPB
-bbI
-aKp
-bda
-bfE
-bgX
-bih
-bjl
+baj
+bbG
+bcU
+bcU
+bcU
+bgV
+big
+bee
bkv
blU
bnl
@@ -81922,14 +82600,14 @@ aDp
aWO
aBw
aZp
-aPB
-bbI
-aKp
+baj
+bbH
+bcZ
+bed
+bfD
+bgW
+big
bee
-aKm
-aKm
-aKm
-aKm
bkw
blV
bkw
@@ -82179,14 +82857,14 @@ aDp
aWO
aBw
aZq
-aPB
-aKp
-aKp
-bef
-aKm
-aab
-aab
-aab
+baj
+big
+big
+big
+big
+big
+big
+bee
aKm
blW
aKm
@@ -82439,11 +83117,11 @@ aZq
aPB
aKp
aKp
-bee
-aKm
-aab
-aab
-aab
+bda
+bsp
+bsp
+bsp
+beg
aKm
blW
aKm
@@ -82698,8 +83376,8 @@ aKp
aPm
bee
aKm
-aab
-aab
+aKm
+aKm
aZu
aZu
blX
@@ -89178,11 +89856,11 @@ bUT
bVp
bUp
bUp
-bWs
-bWI
-bXj
-bXD
-bWs
+bTn
+aab
+aab
+aab
+bJL
bYo
bOe
bZa
@@ -89435,11 +90113,11 @@ bUU
bUp
bVN
bWc
-bWs
-bWJ
-bXk
-bXE
-bWs
+bTn
+bNd
+bNd
+bNd
+bJL
bYp
bYG
cea
@@ -89692,11 +90370,11 @@ bUV
bVt
bUe
bUv
-bWs
+bTn
bWK
-bXl
-bXF
-bWs
+bWK
+bWK
+bJL
cdZ
bYH
ceb
@@ -89949,11 +90627,11 @@ bUW
bVu
bVO
bWd
-bWs
+cfx
bWL
bXl
-bXG
-bWs
+bXl
+bJL
bNk
bNh
bZb
@@ -90204,11 +90882,11 @@ bNx
bNx
bUX
bVv
-bNx
-bNx
+bJx
+bJx
bWt
bWM
-bXm
+bWM
bXH
bYc
bYq
@@ -90463,17 +91141,17 @@ bUY
bLs
bVP
bWe
-bWs
+cfx
bWN
bXn
-bXI
-bWs
+bXn
+bJL
bTD
bYI
bZd
bZA
bZV
-bZc
+cak
aaa
aaa
aaa
@@ -90721,16 +91399,16 @@ bRE
bRE
bRE
bRE
-bRE
-bRE
-bWs
-bWs
+cfz
+cfz
+cfz
+bJL
bYr
bYJ
bZe
bZB
bZW
-bZc
+bYI
aaa
aaa
aaa
@@ -90977,17 +91655,17 @@ bUZ
bVw
bVQ
bWf
-bWu
-bTK
bRE
bRE
-bYd
-bNm
+bRE
+bRE
+bJL
+bNk
bYI
bZf
bZC
bZX
-bZc
+bYI
aaa
aaa
aab
@@ -91238,8 +91916,8 @@ bWv
bWv
bSc
bXJ
-bNk
-bNf
+cfC
+bNm
bYI
bZg
bZD
@@ -107137,7 +107815,7 @@ aZf
cdQ
cdR
cdT
-cdV
+cdR
cdX
aRX
aZf
@@ -107394,7 +108072,7 @@ aZf
bEP
cdS
cdU
-cdW
+cdS
cdY
bzE
bJZ
diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm
index ea2c2a1f953..98127eca5af 100644
--- a/maps/aurora/aurora-6_surface.dmm
+++ b/maps/aurora/aurora-6_surface.dmm
@@ -15263,9 +15263,6 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/landmark/start{
- name = "Janitor"
- },
/turf/simulated/floor/plating,
/area/hallway/secondary/entry/aft)
"Cj" = (