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" = (