diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm index bf43f3ee9f94..b2c39404d641 100644 --- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm @@ -1314,10 +1314,10 @@ /area/ruin/beach/float_resort) "Ja" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_y = 18 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = -8; pixel_y = 16 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index d26f9458a943..29710e094f64 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -242,9 +242,9 @@ /obj/item/reagent_containers/food/snacks/fishmeat/carp, /obj/item/reagent_containers/food/snacks/fishmeat/carp, /obj/item/reagent_containers/food/snacks/fishmeat/carp, -/obj/item/reagent_containers/food/condiment/pack/ketchup, -/obj/item/reagent_containers/food/condiment/pack/ketchup, -/obj/item/reagent_containers/food/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, /obj/effect/turf_decal/corner/opaque/black{ dir = 1 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index 90143e7e3a90..a106a6b0105d 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1034,7 +1034,7 @@ /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8; pixel_y = 5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm index 057b0cbdbe8f..aab9b566f78e 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm @@ -41,7 +41,7 @@ dir = 5 }, /obj/item/stack/cable_coil/cut/green, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/starhall) "au" = ( @@ -992,9 +992,9 @@ /obj/structure/closet/wall/directional/east, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /turf/open/floor/plasteel/tech/techmaint, /area/ruin/jungle/interceptor/starhall) "hO" = ( @@ -2887,7 +2887,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 5; pixel_y = 5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 39d17f372342..47455933ec16 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -1465,19 +1465,19 @@ pixel_x = 9 }, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -3; pixel_y = 6 }, /obj/item/reagent_containers/glass/beaker{ pixel_x = -2 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -5181,7 +5181,7 @@ pixel_x = 7; pixel_y = 6 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 28 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm index 483580cf70dd..8cc99b4a591a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm @@ -2100,11 +2100,11 @@ pixel_y = 29; pixel_x = -2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 17; pixel_x = -3 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 17; pixel_x = 4 }, @@ -2549,7 +2549,7 @@ pixel_y = 7; pixel_x = -9 }, -/obj/item/reagent_containers/food/condiment/bbqsauce{ +/obj/item/reagent_containers/condiment/bbqsauce{ pixel_y = 6; pixel_x = 7 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm index 6013006659ce..d4c7185818d0 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm @@ -3133,7 +3133,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen/wall{ pixel_y = 29 }, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/unpowered/crashed_starwalker) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm deleted file mode 100644 index 911b6cf6f4e5..000000000000 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm +++ /dev/null @@ -1,1788 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"ac" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"ad" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/crate/grave/loot/lead_researcher, -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ae" = ( -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"af" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ag" = ( -/obj/effect/decal/cleanable/vomit, -/obj/item/shovel, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ah" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ai" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aj" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/item/paper/fluff/ruins/elephant_graveyard/final_message, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ak" = ( -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"al" = ( -/obj/structure/table, -/obj/item/clipboard, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"an" = ( -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/item/assembly/mousetrap, -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"ao" = ( -/obj/structure/statue/bone/skull/half, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ap" = ( -/obj/structure/statue/bone/skull/half{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ar" = ( -/obj/structure/flora/rock, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"at" = ( -/turf/closed/mineral/strong/wasteland, -/area/overmap_encounter/planetoid/cave/explored) -"av" = ( -/obj/structure/barricade/wooden/crude, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ax" = ( -/obj/structure/statue/bone/rib{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ay" = ( -/obj/structure/statue/bone/rib, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"az" = ( -/obj/structure/table, -/obj/item/pen, -/obj/item/pen, -/obj/item/pen, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aA" = ( -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"aB" = ( -/obj/item/chair, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aC" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aG" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/glowstick, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aH" = ( -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"aI" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) -"aK" = ( -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aL" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aM" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/black, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aN" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/graveyard_shuttle) -"aO" = ( -/obj/effect/decal/cleanable/glass, -/obj/machinery/computer, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"aP" = ( -/obj/structure/bed, -/obj/item/flashlight/lantern, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aR" = ( -/obj/structure/table, -/obj/item/taperecorder, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aS" = ( -/obj/structure/table, -/obj/item/tape/random, -/obj/item/tape/random, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aT" = ( -/obj/structure/closet/crate/bin, -/obj/item/trash/candle, -/obj/item/trash/can/food/beans, -/obj/item/trash/can, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aU" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aV" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aW" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/clothing/mask/gas/explorer/folded, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"aX" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aY" = ( -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"aZ" = ( -/obj/item/organ/brain, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ba" = ( -/obj/structure/headpike/bone, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bb" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bc" = ( -/obj/structure/sign/poster/ripped, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bd" = ( -/obj/item/organ/heart, -/obj/item/organ/eyes, -/obj/item/organ/ears, -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"be" = ( -/obj/item/organ/lungs, -/obj/item/organ/liver, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bf" = ( -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bg" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"bh" = ( -/obj/effect/decal/cleanable/oil, -/obj/structure/chair/office/light, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bi" = ( -/obj/effect/turf_decal/industrial/hatch, -/turf/open/floor/circuit/off, -/area/ruin/powered/graveyard_shuttle) -"bj" = ( -/obj/structure/barricade/wooden, -/obj/structure/mineral_door/wood, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bk" = ( -/obj/item/melee/knife/bone, -/obj/item/organ/tongue, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bl" = ( -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bm" = ( -/obj/structure/closet/wardrobe/curator, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bn" = ( -/obj/structure/sink/oil_well, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bo" = ( -/obj/item/stack/medical/gauze/improvised, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bp" = ( -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bq" = ( -/obj/machinery/iv_drip, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"br" = ( -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"bs" = ( -/obj/structure/fence/door, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bt" = ( -/obj/structure/table, -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bu" = ( -/obj/structure/bed, -/obj/item/trash/pistachios, -/obj/item/trash/chips, -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bv" = ( -/obj/effect/decal/remains/human, -/obj/item/clothing/mask/bandana/green, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bx" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"by" = ( -/obj/structure/closet/emcloset, -/obj/item/light/bulb, -/obj/effect/turf_decal/box/white, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bz" = ( -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny, -/obj/item/cigbutt, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bA" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/effect/turf_decal/box/white, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bC" = ( -/obj/structure/barricade/sandbags, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bD" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bE" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bF" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bG" = ( -/obj/effect/decal/remains/human, -/obj/item/tank/internals/emergency_oxygen/empty, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bH" = ( -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"bI" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) -"bJ" = ( -/obj/structure/sign/warning/xeno_mining, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bK" = ( -/obj/structure/sign/warning/explosives, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bL" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bM" = ( -/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, -/obj/structure/closet/crate/grave/loot, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bN" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bO" = ( -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bP" = ( -/obj/structure/barricade/wooden/crude, -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bQ" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/cobweb, -/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bR" = ( -/obj/effect/decal/cleanable/generic, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bS" = ( -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/rnd/destructive_analyzer, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bT" = ( -/obj/structure/barricade/wooden, -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bU" = ( -/obj/item/light/bulb/broken, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bV" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bW" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/airlock/shuttle{ - name = "Archaeology Shuttle Airlock" - }, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bX" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/clothing/head/fedora/curator, -/obj/item/clothing/suit/armor/curator, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bY" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bZ" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"ca" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cc" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cd" = ( -/obj/item/trash/can, -/obj/structure/bedsheetbin/empty, -/obj/structure/table, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ce" = ( -/obj/structure/stone_tile/slab/cracked, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cf" = ( -/obj/structure/bed, -/obj/item/wirecutters, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cg" = ( -/obj/structure/stone_tile/center/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ch" = ( -/obj/effect/decal/remains/human, -/obj/item/restraints/handcuffs/cable/zipties/used, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ci" = ( -/obj/structure/stone_tile/surrounding_tile, -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"cj" = ( -/obj/structure/stone_tile/block/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ck" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cl" = ( -/obj/structure/closet/crate/grave/loot, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cm" = ( -/obj/structure/table/optable, -/obj/item/storage/backpack/explorer, -/obj/item/reagent_containers/food/drinks/soda_cans/cola, -/obj/item/restraints/handcuffs/cable/zipties/used, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"cn" = ( -/obj/structure/stone_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"co" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/structure/stone_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cq" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cr" = ( -/obj/structure/bonfire/prelit, -/obj/effect/decal/cleanable/ash, -/obj/item/organ/tail/lizard, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/stone_tile/slab/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cs" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ct" = ( -/obj/structure/stone_tile, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cu" = ( -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"cw" = ( -/obj/structure/closet/crate/grave/loot, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cx" = ( -/obj/item/light/bulb/broken, -/obj/effect/turf_decal/industrial/stand_clear/white, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"cz" = ( -/obj/structure/stone_tile, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"fy" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"lO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"oR" = ( -/obj/item/reagent_containers/glass/bottle/frostoil{ - desc = "A small bottle. Contains cold sauce. There's a label on here: APPLY ON SEVERE BURNS."; - volume = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"rb" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/wrench, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"vS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Bi" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"BF" = ( -/obj/structure/flora/rock, -/obj/item/pickaxe{ - layer = 2.5; - pixel_x = -8; - pixel_y = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Gb" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"GT" = ( -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/item/assembly/mousetrap, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"GY" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Hq" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/plasma{ - volume = 25 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"MV" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"NJ" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Qk" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"QG" = ( -/obj/structure/table, -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"QZ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"WG" = ( -/obj/structure/table, -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"XX" = ( -/obj/structure/table, -/obj/item/t_scanner/adv_mining_scanner/lesser, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -at -ab -ab -ab -ac -ac -ac -ac -bf -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -bf -bf -bf -bf -bf -ac -ac -ac -ac -bf -bf -bf -ac -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -bf -bf -aT -bR -bf -bf -bf -ac -bf -bf -bf -bf -bf -bf -bf -ac -ac -ab -ab -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -bf -bf -bf -bz -aK -bY -ae -bf -bf -bf -cs -aE -bJ -bf -bf -bf -ac -ac -ac -ab -ab -ab -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -ab -ab -bf -bf -bf -bf -aA -bc -aA -aY -ae -bv -ae -cl -ae -ae -aC -bs -bO -ae -ae -ac -ac -ac -ac -ab -ab -ab -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -ab -bf -bf -bf -oR -vS -vS -vS -aL -ae -ae -ak -ae -ae -ae -ae -bK -bf -bf -bf -ae -ac -ac -ac -ac -ac -ac -ab -ab -aa -aa -"} -(8,1,1) = {" -aa -aa -ab -ab -ab -bf -bf -Gb -Bi -ar -ae -ae -ae -ar -aZ -ae -ba -ae -ba -ae -ae -ae -ae -bf -ae -ac -ac -ac -ac -ac -ac -ac -ab -ab -aa -"} -(9,1,1) = {" -aa -ab -ab -bf -bf -bf -Gb -Bi -ak -ae -aE -ae -ae -ae -ba -ae -af -ae -ae -ae -ba -ae -ak -bf -ae -ae -ac -ac -ac -ac -ac -ac -ac -ac -aa -"} -(10,1,1) = {" -ab -ab -bf -bf -bf -Gb -MV -ae -ae -ae -ae -cl -ae -ae -ae -co -bd -bk -ae -ae -ae -ae -aE -bf -bf -ae -ae -ac -ac -ac -ac -bG -bM -ac -ac -"} -(11,1,1) = {" -at -bf -bf -bf -bf -lO -ae -ae -ao -ae -ax -ax -ax -ax -ae -ae -be -cr -ae -cz -ae -ae -bn -cw -bf -bf -bB -ac -ac -ac -ac -bL -ae -ae -ac -"} -(12,1,1) = {" -at -bf -bf -bf -bf -lO -cl -ae -ae -ae -ae -ci -cj -ce -ae -cj -ae -cq -ae -ae -cu -ae -ae -ae -bf -bf -bC -ac -ac -ac -ac -ac -ac -bD -ac -"} -(13,1,1) = {" -bf -ad -ae -bf -cl -lO -ae -ae -ae -ae -cg -ae -ak -ak -cn -ae -cq -ae -ct -ar -ae -cl -ae -ae -bf -bf -ae -ac -ac -ac -ac -ac -ac -ae -ac -"} -(14,1,1) = {" -bf -aj -ae -bf -ae -lO -aE -ae -ap -ae -ay -ay -ay -ay -ae -ae -ak -ae -ae -bn -ae -ae -aE -GY -bf -cl -bB -ae -ac -ac -ac -ac -ac -ae -ac -"} -(15,1,1) = {" -bf -ai -ag -bf -an -lO -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -cw -ae -ae -ae -ae -ae -lO -bf -ac -ae -ae -bB -ac -ac -ac -ac -bD -ac -"} -(16,1,1) = {" -bf -ai -bf -bf -bf -Qk -vS -QZ -ae -ae -aE -ae -ar -ae -ba -ae -ae -ae -ae -ae -ba -ae -ae -lO -bf -ac -ac -ae -ae -bB -ac -ac -ac -bB -bP -"} -(17,1,1) = {" -bf -ae -af -bf -bf -aE -bf -Qk -BF -XX -az -aG -aM -aR -ae -ae -ba -ae -ba -ae -ae -aE -cl -lO -bf -bf -ac -ac -ae -bD -ac -ac -ac -bF -bT -"} -(18,1,1) = {" -at -bf -ah -bf -bf -af -bf -ae -ae -QG -aB -ae -ae -aS -ae -ae -aE -ae -ae -ae -ae -ae -ae -NJ -bx -bf -ac -ac -ac -ae -bB -bB -bF -bB -bP -"} -(19,1,1) = {" -ab -bf -af -av -af -ae -bf -ae -bt -Hq -ch -ae -ae -ca -ae -Gb -vS -vS -vS -vS -vS -vS -vS -GT -bf -bf -ac -ac -ac -ac -bF -bB -bV -ac -ac -"} -(20,1,1) = {" -aa -at -bf -bf -bf -bf -bf -bj -bf -WG -al -fy -vS -vS -vS -rb -bf -ac -bm -ae -bn -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -"} -(21,1,1) = {" -aa -aa -ab -ac -ac -bf -aU -aE -bf -bf -bf -bf -ck -aX -ae -bf -bf -bf -bf -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -"} -(22,1,1) = {" -aa -aa -ab -ab -ac -bf -aU -ae -bl -cd -bf -bf -bf -bN -ae -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -ab -ab -ab -bZ -bZ -"} -(23,1,1) = {" -aa -aa -aa -ab -ab -bf -aV -bl -aE -bu -bf -bf -bf -bf -bb -bf -bf -bf -bf -ab -ab -ab -ab -ab -ab -ab -ab -bZ -bZ -bZ -bH -bZ -bZ -bZ -ab -"} -(24,1,1) = {" -aa -aa -aa -aa -ab -at -aP -bo -cc -cf -bf -aH -aH -bg -bW -bg -aH -aH -aH -bH -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -ab -ab -ab -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -at -bf -bf -bf -bf -aH -aN -bQ -bh -cv -bU -by -aH -aH -bI -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aI -aO -bX -bi -bp -bi -cx -bE -aH -bI -bZ -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aH -aN -aW -cm -bq -bS -bA -aH -aH -bI -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aH -aH -aH -br -aH -aH -aH -aH -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -"} diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm index c4a3a0397508..fda16098a148 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm @@ -705,11 +705,11 @@ /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, /obj/item/storage/box/ingredients/vegetarian, /turf/open/floor/wood, /area/ruin/lavaland/factory/adminstrative) @@ -1578,11 +1578,11 @@ /obj/effect/turf_decal/corner/opaque/bar, /obj/machinery/light/directional/east, /obj/item/storage/box/ingredients/vegetarian, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index b837eff979f7..ef9240170e41 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -47,7 +47,7 @@ /obj/machinery/reagentgrinder{ pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -517,7 +517,7 @@ pixel_x = -1; pixel_y = 3 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = 5; pixel_y = 5 }, @@ -769,12 +769,12 @@ "mO" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm index d05a8c37f071..2fd3caa4c42f 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm @@ -49,7 +49,7 @@ /obj/structure/catwalk/over, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table/glass, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 13; pixel_x = -2; layer = 2.8 @@ -65,7 +65,7 @@ pixel_y = 6; layer = 2.8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 10; pixel_x = 10 }, @@ -296,8 +296,8 @@ /obj/effect/turf_decal/industrial/outline/red, /obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/corn, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/item/reagent_containers/food/snacks/grown/corn{ pixel_y = 3 }, @@ -1250,33 +1250,33 @@ "om" = ( /obj/structure/catwalk/over, /obj/structure/closet/crate/hydroponics, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = 8 }, /turf/open/floor/plating/rockplanet/lit, @@ -2140,12 +2140,12 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/rack, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 13; pixel_x = -2; layer = 2.8 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 7; pixel_x = -2; layer = 2.8 @@ -2897,10 +2897,10 @@ /obj/item/seeds/corn, /obj/item/seeds/corn, /obj/item/seeds/corn, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/snacks/grown/corn{ pixel_y = 4 }, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 99ccda138d00..7dd57c637f35 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -8625,13 +8625,13 @@ /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/singularitylab/lab) "HU" = ( -/obj/structure/fireaxecabinet{ - pixel_y = 32 - }, /obj/structure/sign/warning/incident{ pixel_x = -32 }, /obj/effect/decal/cleanable/cobweb, +/obj/structure/cabinet/fireaxe{ + pixel_y = 28 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/engineering) "HW" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 251b40fb4443..3be5be2fdce0 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1430,10 +1430,10 @@ name = "Kiosk Shutters"; dir = 4 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/structure/closet/wall/directional/north, /obj/item/spacecash/bundle/c100, /turf/open/floor/plasteel/dark, @@ -2212,10 +2212,10 @@ "iE" = ( /obj/effect/turf_decal/corner/transparent/black/diagonal, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4 }, /obj/machinery/door/poddoor/shutters{ @@ -3478,10 +3478,10 @@ /area/ruin/space/has_grav/spacemall) "ns" = ( /obj/effect/turf_decal/corner/transparent/black/diagonal, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = -5 }, -/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/condiment/flour, /obj/structure/table, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/dorms) @@ -5966,15 +5966,15 @@ pixel_x = -30; dir = 4 }, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/structure/table, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/dorms) diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm new file mode 100644 index 000000000000..60325851692d --- /dev/null +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm @@ -0,0 +1,6367 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/green{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"aj" = ( +/obj/item/trash/sosjerky{ + pixel_x = 2; + pixel_y = -15 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/trash/raisins{ + pixel_x = 11; + pixel_y = -13 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"al" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ar" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/storage/firstaid/radiation, +/obj/item/storage/cans/sixbeer, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"aH" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aI" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aL" = ( +/obj/structure/table, +/obj/item/soap, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"aM" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"aQ" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"aV" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ba" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bc" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/secure/loot, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bf" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/light/small/directional/east, +/obj/item/reagent_containers/food/snacks/chewable/bubblegum/nicotine{ + pixel_x = -8; + pixel_y = 11 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bi" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bp" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/item/gps{ + gpstag = "Distress Signal" + }, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/obj/item/screwdriver/power, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bq" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bu" = ( +/obj/structure/table, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bA" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"bB" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bD" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bF" = ( +/obj/structure/closet, +/obj/structure/sign/poster/contraband/gec{ + pixel_x = -28 + }, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/shoes/workboots, +/obj/item/spacecash/bundle/smallrand, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bS" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bZ" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/secure/loot, +/obj/item/crowbar/power, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cd" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/mineral/plasma/twenty, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cg" = ( +/obj/structure/fence/post, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"cj" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/wasteplanet/lit, +/area/ruin/wasteplanet) +"cp" = ( +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/neck/cloak/qm, +/obj/item/clothing/head/beret/qm, +/obj/item/clothing/under/rank/cargo/qm, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"cv" = ( +/obj/item/kirbyplants/dead, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cx" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cz" = ( +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cA" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/structure/curtain/cloth/grey, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"cF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cP" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/wrench/combat, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"dd" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"de" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"df" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"dn" = ( +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/curtain, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"dw" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/large, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"dI" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dP" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/snacks/ration/side/white_sandwich_bread, +/obj/item/reagent_containers/food/snacks/ration/snack/cherry_snackers{ + pixel_x = 10; + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_x = -13 + }, +/obj/item/reagent_containers/food/snacks/ration/snack/sour_gummy_worms{ + pixel_x = 1; + pixel_y = 7 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dY" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/crate_shelf, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ek" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"et" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ey" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"eD" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/chief_engineer, +/obj/item/stamp/ce, +/obj/item/clothing/head/hardhat/weldhat/white, +/obj/item/gun/energy/laser/retro, +/obj/structure/sign/poster/contraband/space_cube{ + pixel_x = 32 + }, +/obj/item/spacecash/bundle/pocketchange, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"eL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"eN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east{ + start_charge = 0 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"eO" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"eS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fp" = ( +/obj/mecha/working/ripley/cargo, +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fz" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fA" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"fH" = ( +/obj/effect/turf_decal/miskilamo_small/left, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"fP" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"ga" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/cable_coil/red{ + pixel_y = 4 + }, +/obj/item/stack/cable_coil/orange, +/obj/item/stack/cable_coil/yellow{ + pixel_y = -4 + }, +/obj/item/stack/cable_coil/cut/pink, +/obj/structure/closet/crate/engineering/electrical, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"gb" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ge" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"gg" = ( +/turf/closed/mineral/random/wasteplanet, +/area/ruin/wasteplanet) +"gk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"gs" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"gx" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"gF" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/clothing/head/hardhat, +/obj/item/trash/chips, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"gH" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/robot_debris/up, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"gO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"gP" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"gV" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/item/clothing/shoes/workboots, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"hn" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hr" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"hs" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ht" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hA" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hG" = ( +/obj/structure/toilet{ + dir = 8; + pixel_x = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hH" = ( +/obj/effect/turf_decal/miskilamo_small, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hJ" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hK" = ( +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/curtain, +/obj/structure/catwalk/over/plated_catwalk/white, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hO" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"hP" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hW" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hY" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"il" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"in" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"is" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ix" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"iB" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"iD" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"iF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"iJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"iK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"iR" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"iW" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"jd" = ( +/obj/effect/turf_decal/miskilamo_small/right, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"je" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"jh" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jo" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jq" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"jt" = ( +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"jy" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"jC" = ( +/obj/machinery/microwave, +/obj/item/clothing/head/chefhat{ + pixel_y = 13 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/food/flour, +/obj/item/reagent_containers/food/snacks/badrecipe, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jI" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"jT" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/can, +/obj/item/trash/candy, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kc" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kd" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ke" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ki" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"kn" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/multitool{ + pixel_y = -5; + pixel_x = 11 + }, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ks" = ( +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = -13 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kw" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kD" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/loot, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/stack/sheet/metal/twenty, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/machinery/light/small/directional/east, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kM" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kP" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kS" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"kW" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kY" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"kZ" = ( +/obj/item/storage/toolbox/drone, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/broken/directional/east, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"le" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lf" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/stack/ore/salvage/scrapuranium, +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lx" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"lB" = ( +/obj/structure/marker_beacon{ + picked_color = "Lime" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lT" = ( +/obj/structure/closet/crate/secure/loot, +/obj/item/clothing/suit/space/nasavoid, +/obj/item/clothing/head/helmet/space/nasavoid, +/obj/item/tank/jetpack/void, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"lV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"lW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"lY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"mq" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mA" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"mG" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mK" = ( +/obj/structure/fence/post{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"mS" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mU" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"mZ" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"nd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ne" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"nf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ng" = ( +/obj/structure/table_frame, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/wirecutters, +/obj/item/screwdriver{ + pixel_x = 7; + pixel_y = -8 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"ni" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/green{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nr" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"nH" = ( +/obj/machinery/door/airlock/command, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"nJ" = ( +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc/auto_name/directional/west{ + start_charge = 0 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"nL" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"nP" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nV" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/closet/crate/coffin, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"nZ" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"oe" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"oh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ok" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"os" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ov" = ( +/obj/structure/fence, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"oz" = ( +/obj/item/kirbyplants/dead, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"oA" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"oJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oS" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oT" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"oW" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/seeds/potato, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"pd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ph" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pj" = ( +/turf/closed/wall, +/area/ruin/wasteplanet) +"pr" = ( +/obj/effect/turf_decal/industrial/traffic, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pt" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/structure/sign/warning/docking{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"px" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pz" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/folder/yellow{ + pixel_x = 8 + }, +/obj/item/pen/fountain{ + pixel_x = -6; + pixel_y = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"pF" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"pG" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pJ" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pK" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"pQ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"pY" = ( +/obj/item/stack/ore/iron, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/shard, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/clothing/head/caphat/cowboy, +/obj/structure/sign/poster/retro/smile{ + pixel_x = -28 + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"qd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"qo" = ( +/obj/machinery/door/airlock, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qs" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/structure/sign/warning/nosmoking/burnt{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qt" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qu" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"qw" = ( +/obj/machinery/vending/cola/pwr_game, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qy" = ( +/obj/structure/toilet{ + pixel_y = 11 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"qB" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qL" = ( +/turf/open/floor/plating/asteroid/wasteplanet/lit, +/area/ruin/wasteplanet) +"qS" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/machinery/light/small/broken/directional/south, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"rd" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"re" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"rp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"rv" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/folder/yellow{ + pixel_x = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"rw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/catwalk/over, +/obj/structure/spawner/hivebot, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ry" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"rQ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sf" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"sm" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"sx" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"sz" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"sB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"sF" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sK" = ( +/obj/structure/girder, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"sL" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sO" = ( +/obj/structure/fence/door, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"sT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/sign/poster/contraband/space_cola{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ta" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"td" = ( +/obj/structure/fence, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"tn" = ( +/turf/template_noop, +/area/template_noop) +"to" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"tu" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/structure/sink/kitchen{ + dir = 4 + }, +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"tv" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"ty" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"tK" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tL" = ( +/obj/machinery/door/airlock/maintenance/external/glass, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tT" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/broken_bottle, +/obj/item/shard, +/obj/item/reagent_containers/food/drinks/bottle/hooch, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"tX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"tY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ul" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/poster/contraband/engis_unite{ + pixel_y = -28 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"um" = ( +/obj/structure/table, +/obj/structure/showcase/machinery/tv{ + name = "\improper television"; + desc = "A mess of wires and duct tape that barely functions" + }, +/obj/item/toy/plush/among{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10 + }, +/obj/item/kitchen/fork{ + pixel_x = 12; + name = "load bearing fork" + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/obj/item/trash/raisins{ + pixel_x = -12; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"un" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"up" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/stack/ore/salvage/scrapplasma, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"ut" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"uw" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/blue, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"uD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uN" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uU" = ( +/obj/structure/chair/comfy/orange/old/alt/directional/south, +/obj/item/toy/plush/snakeplushie, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uZ" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/snacks/badrecipe, +/obj/item/reagent_containers/food/drinks/soda_cans/lunapunch{ + pixel_y = 9; + pixel_x = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vb" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"vf" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vh" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/flashlight/lamp/green, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"vv" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vB" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"vC" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vH" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"vN" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/floodlight_frame, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vU" = ( +/obj/effect/turf_decal/miskilamo_small/right, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"vV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vX" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vZ" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"wb" = ( +/obj/machinery/light/dim/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"wc" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"wf" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"wg" = ( +/obj/structure/fence/end{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"wr" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"wv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ww" = ( +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"wZ" = ( +/obj/machinery/suit_storage_unit/independent/engineering, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"xe" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"xf" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"xh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"xl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/obj/item/trash/raisins{ + pixel_x = 15; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"xs" = ( +/obj/structure/chair/office{ + dir = 4; + pixel_x = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"xO" = ( +/obj/effect/turf_decal/corner/transparent/orange, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yb" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yi" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"yp" = ( +/obj/structure/table, +/obj/item/storage/ration/chicken_wings_hot_sauce, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"yr" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"yz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yA" = ( +/obj/structure/bed, +/obj/item/bedsheet/grey, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yC" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yK" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yR" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"yU" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 5 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zp" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zt" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zv" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zB" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/atmospheric_technician, +/obj/item/clothing/head/hardhat, +/obj/item/pipe_dispenser, +/obj/structure/sign/poster/contraband/atmosia_independence{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"zN" = ( +/obj/structure/spawner/hivebot, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"zP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zQ" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"zZ" = ( +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ab" = ( +/obj/effect/turf_decal/industrial/hatch/blue, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"An" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/tank/jetpack/void, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/suit/space/nasavoid{ + name = "Old Voidsuit"; + desc = "An old space suit that hasn't seen use in several decades." + }, +/obj/item/clothing/head/helmet/space/nasavoid{ + name = "Voidsuit Helmet"; + desc = "An old space suit helmet with a scratched visor." + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ap" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Aq" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Av" = ( +/obj/structure/bed, +/obj/item/bedsheet/hos, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"AS" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"AZ" = ( +/obj/machinery/ltsrbt, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Bk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Bn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Bs" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/canned/peaches{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/trash/can/food/peaches{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"BJ" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"BO" = ( +/obj/machinery/vending/snack/teal, +/obj/item/stack/tape/industrial/electrical{ + pixel_y = 16 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BP" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BS" = ( +/obj/machinery/suit_storage_unit/independent/engineering, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"BW" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Cf" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Ci" = ( +/obj/item/chair{ + pixel_x = -13; + pixel_y = -7 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Cs" = ( +/obj/structure/fence/cut/large, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Cw" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Cx" = ( +/obj/machinery/computer/monitor/retro{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"CC" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/stack/ore/salvage/scrapuranium, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"CK" = ( +/obj/machinery/door/airlock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"CU" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"CV" = ( +/obj/structure/fence/cut/medium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Dc" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"De" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Dk" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Dp" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Dz" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"DA" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"DE" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"DJ" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/chair, +/obj/item/instrument/banjo, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"DN" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ea" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/boritos, +/obj/item/trash/candy, +/obj/item/trash/candy, +/obj/item/trash/raisins, +/obj/item/trash/syndi_cakes, +/obj/item/trash/sosjerky, +/obj/item/toy/beach_ball/holoball, +/obj/machinery/light/directional/south, +/obj/item/trash/can, +/obj/item/trash/can, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ei" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"El" = ( +/obj/structure/bed/double{ + dir = 4 + }, +/obj/item/bedsheet/double/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Ep" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 1 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_y = 12; + pixel_x = -16 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_x = -13; + pixel_y = 19 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_y = 4; + pixel_x = -14 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Er" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/miskilamo_small, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"EH" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"EK" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"EM" = ( +/obj/structure/mecha_wreckage/ripley/firefighter, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"EU" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"EX" = ( +/obj/structure/table/wood, +/obj/structure/sink/chem, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ff" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/absinthe, +/obj/item/clothing/head/hardhat{ + pixel_x = 11 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fh" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Fm" = ( +/obj/structure/closet/wall/directional/north, +/obj/item/toy/figure/bartender, +/obj/item/gun/energy/laser/retro, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fn" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Fq" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"FC" = ( +/obj/machinery/door/airlock, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"FG" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"FH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/item/reagent_containers/food/snacks/ration/side/beef_sticks{ + pixel_x = 10 + }, +/obj/item/reagent_containers/food/snacks/chips, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"FP" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"FW" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Gf" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Gj" = ( +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Gk" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Gl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Go" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Gq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"GK" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/floodlight_frame, +/obj/item/shard, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"GM" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"GN" = ( +/obj/structure/table, +/obj/item/stamp/qm{ + pixel_y = 4; + pixel_x = 14 + }, +/obj/item/stamp{ + pixel_x = 14 + }, +/obj/item/stamp/denied{ + pixel_y = -4; + pixel_x = 14 + }, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"GO" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/structure/closet/firecloset/full, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"GV" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"GX" = ( +/obj/machinery/power/smes, +/obj/structure/cable/yellow, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hf" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4; + pixel_x = -8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 22 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Hh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hm" = ( +/obj/machinery/door/airlock/engineering, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hp" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass/twenty, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"HD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/orange, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"HR" = ( +/obj/structure/chair/sofa/brown/left{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"HY" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ic" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"If" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Il" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/toy/plush/moth/firewatch, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Iq" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"IB" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"IF" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"IM" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"IQ" = ( +/obj/item/cutting_board, +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/item/melee/knife/kitchen, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"IS" = ( +/obj/item/radio/intercom/wideband/table{ + dir = 8 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Je" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"JL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"JR" = ( +/obj/structure/chair/sofa/brown/directional{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"JX" = ( +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Kc" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Km" = ( +/obj/machinery/vending/cola/red, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Kx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"KG" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"KI" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"KM" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"KW" = ( +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Lc" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-10" + }, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Lq" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Lu" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/qm{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Lv" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Lw" = ( +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"LA" = ( +/obj/item/stack/sheet/plastic, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/circuitboard/computer/shuttle/helm, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"LB" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"LX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/closet/wall/directional/west, +/obj/item/gun/ballistic/revolver, +/obj/item/clothing/suit/hooded/wintercoat/captain, +/obj/item/storage/firstaid/o2, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mf" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Mh" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mi" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ml" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Mm" = ( +/obj/effect/turf_decal/miskilamo_small/left, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Mn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Mt" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Mx" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 1 + }, +/obj/structure/spawner/hivebot, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"MB" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ME" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"MF" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"MJ" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"MO" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"MX" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"MZ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Na" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Nd" = ( +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Nf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Nu" = ( +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ny" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"NG" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"NI" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/mineral/titanium/twenty, +/obj/item/stack/ore/salvage/scraptitanium/five, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet) +"NO" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Of" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/item/stack/ore/salvage/scrapuranium/five, +/obj/item/stack/ore/salvage/scrapuranium/five{ + pixel_y = -6 + }, +/obj/item/stack/ore/salvage/scrapuranium{ + pixel_y = 5 + }, +/obj/structure/closet/crate/radiation, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Og" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Oi" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ok" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Oq" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -28 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ow" = ( +/obj/structure/spawner/hivebot, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OB" = ( +/obj/structure/marker_beacon{ + picked_color = "Lime" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OK" = ( +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"OM" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"OY" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Pi" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ps" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"PJ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"PK" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"PX" = ( +/obj/structure/janitorialcart, +/obj/item/storage/bag/trash, +/obj/item/mop{ + pixel_x = -6 + }, +/obj/item/clothing/shoes/galoshes{ + pixel_x = 16; + pixel_y = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Qc" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/industrial/warning/full, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Qe" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ql" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/clothing/suit/space/hardsuit/engine, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"QS" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Ri" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Rn" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Rt" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/syndi_cakes, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Rv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"RD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RE" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"RO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RR" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RX" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Se" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Sg" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Sl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Sm" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/item/chair{ + pixel_x = -7; + pixel_y = -7 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Sq" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Sw" = ( +/obj/structure/girder, +/obj/item/stack/sheet/mineral/titanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"SA" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"SP" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/clothing/gloves/color/yellow, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"SZ" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Te" = ( +/obj/machinery/cell_charger, +/obj/structure/table, +/obj/item/stock_parts/cell/hyper/empty, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Tf" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Th" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/lasercannon, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Tj" = ( +/obj/structure/closet/wall/directional/east, +/obj/item/clothing/under/utility, +/obj/item/clothing/under/utility, +/obj/item/clothing/shoes/workboots, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/ration/entree/beef_strips, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ts" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"TB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"TE" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"TK" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"TN" = ( +/obj/machinery/vending/snack/orange, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"TX" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/obj/item/seeds/kudzu, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"TY" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ub" = ( +/obj/structure/sign/warning/coldtemp{ + pixel_x = 32 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Uc" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ud" = ( +/obj/item/storage/bag/plants, +/obj/item/plant_analyzer, +/obj/item/cultivator{ + pixel_x = -4 + }, +/obj/item/shovel/spade{ + pixel_x = 6 + }, +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Uj" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/closet/crate/engineering/electrical, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Us" = ( +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Uz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"UF" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"UP" = ( +/obj/structure/table_frame, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/paper/crumpled{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"UR" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/waterbottle/large{ + pixel_y = 20; + pixel_x = 10 + }, +/obj/item/radio/intercom/wideband/table{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/east, +/obj/item/reagent_containers/food/snacks/ration/pack/orange_beverage{ + pixel_x = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"UW" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Va" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_y = 8; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_y = -8; + pixel_x = -4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Vp" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Vq" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"Vx" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/structure/frame, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"VG" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/warning/explosives{ + pixel_x = -28 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"VO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/mineral/stacking_unit_console{ + pixel_y = 28 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VQ" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"VS" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = 28 + }, +/obj/machinery/light/broken/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VZ" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Wc" = ( +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Wn" = ( +/obj/structure/fence, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Wu" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Wy" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/grey{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Wz" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"WB" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/volume_pump/on, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"WL" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WP" = ( +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WQ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"WS" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/drone{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/drone{ + pixel_y = -8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WW" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/cowboy, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Xr" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/floodlight, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"XG" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"XI" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/obj/item/kirbyplants/dead{ + pixel_x = 10; + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"XY" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ya" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Yb" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yh" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yi" = ( +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_y = 32 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yp" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yq" = ( +/obj/structure/table, +/obj/item/radio/old{ + pixel_y = 12; + pixel_x = -11 + }, +/obj/item/radio/weather_monitor{ + pixel_y = 11 + }, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10 + }, +/obj/item/stack/tape/industrial/electrical, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yu" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/structure/crate_shelf, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Yy" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"YE" = ( +/obj/structure/fence/door/opened, +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"YJ" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"YK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"YW" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Za" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small/broken/directional/west, +/obj/item/ration_heater, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ze" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Zr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Zu" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/small/broken/directional/west, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Zy" = ( +/obj/structure/fence/end{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ZO" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ZP" = ( +/obj/structure/chair/sofa/brown/right{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"ZQ" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"ZW" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) + +(1,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +pj +pj +td +td +td +cg +td +td +td +cg +td +td +td +cg +td +td +td +pj +pj +"} +(2,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +pj +gx +VQ +OM +wr +wr +wr +OM +OM +wr +wr +wr +wr +wr +wr +OM +OB +XG +pj +"} +(3,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +Lw +ry +OM +OM +OM +OM +OM +jt +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +de +ry +"} +(4,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +pj +gg +gg +gg +gg +gg +tn +tn +tn +tn +gg +gg +gg +gg +Lw +ry +DA +LB +LB +OM +LB +LB +LB +LB +LB +OM +OM +OM +LB +LB +LB +jt +de +ry +"} +(5,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +GM +GM +GM +GM +Mi +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +pj +gg +Lw +Lw +ry +DA +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +de +ry +"} +(6,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +GM +GM +GM +GM +GM +cv +qw +jT +Mi +Mi +Mi +Mi +Mi +Mi +Mi +Mi +gg +gg +gg +gg +gg +gg +gg +Lw +Lw +mK +DA +MJ +OM +px +Qe +Qe +px +OM +OM +OM +px +Qe +Qe +px +OM +lB +OM +mK +"} +(7,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +GM +IS +sL +AZ +MF +kY +ek +ok +gs +zZ +vN +Te +RX +MO +BW +Mi +Mi +gg +pj +gg +gg +Lw +Lw +Lw +Lw +ry +DA +OM +OM +px +Ze +Ze +px +px +Uc +px +px +Ze +Ze +px +OM +OM +OM +ry +"} +(8,1,1) = {" +tn +tn +gg +gg +gg +pj +gg +GM +bp +iB +Yp +nH +BL +ba +kS +Hm +MZ +ke +Gl +sB +fe +GV +ul +Mi +gg +gg +gg +Lw +Lw +Lw +Lw +Lw +Se +OM +OM +sK +px +oe +nr +px +An +KI +Vx +px +nr +oe +px +px +LB +de +ry +"} +(9,1,1) = {" +tn +tn +gg +gg +gg +gg +gg +GM +MF +MF +MF +MF +kY +Sl +ok +gs +fz +iW +OY +CU +GX +tK +lY +Mi +gg +gg +gg +Lw +Vq +Lw +Lw +Lw +ry +DA +OM +sK +VZ +NG +Na +lb +jY +nf +eN +gk +Gq +tY +RR +px +OM +de +ry +"} +(10,1,1) = {" +tn +gg +gg +gg +gg +GM +GM +GM +tT +bi +PX +MF +oK +Fq +wb +gs +gs +gs +gs +gs +gs +gs +Mi +Mi +Mi +Mi +Mi +mZ +Wn +mZ +mZ +UF +mK +NO +Dp +sK +fA +Bn +Ap +px +px +vb +px +px +Ud +Mh +lV +Uc +lB +de +mK +"} +(11,1,1) = {" +tn +gg +gg +gg +gg +GM +Va +bu +Yh +JL +Yh +MF +kY +Sl +ok +gs +qt +qs +lq +Zr +Oi +zv +Mi +Lq +BS +wZ +Mi +ME +lG +df +df +OM +ry +zw +OM +sK +sz +RO +px +px +SA +VK +DE +px +px +oW +TX +px +OM +de +vZ +"} +(12,1,1) = {" +tn +gg +gg +gg +gg +GM +Fm +Wu +Aq +nx +Wu +MF +kY +Sl +ok +gs +Gk +Ny +EU +qB +Of +dv +Mt +aM +kJ +pr +IF +ey +lG +lT +df +de +ry +zw +OM +sK +px +px +px +Zu +IB +eL +kw +Za +px +px +px +px +LB +de +ry +"} +(13,1,1) = {" +gg +gg +pj +gg +GM +GM +sF +MF +MF +Gf +MF +MF +aH +Fb +kS +tL +hn +Ny +Th +kD +qB +Dc +hA +Tf +lO +WB +MB +je +yi +df +jt +OM +vZ +zw +OM +px +Yu +dY +px +bA +pt +eL +kw +dP +px +ah +ni +px +OM +de +ry +"} +(14,1,1) = {" +gg +gg +gg +gg +GM +TY +ix +EX +Rn +cF +Km +MF +kY +Sl +Lv +gs +MX +eS +iK +iK +is +jI +Mt +ne +ty +pr +IF +ki +EK +qd +qd +Nf +mK +zw +zt +Mx +hr +mi +RD +TB +to +Mz +tD +TB +CK +oh +Tj +wf +lB +jt +mK +"} +(15,1,1) = {" +gg +gg +gg +gg +GM +gP +Yh +aI +Je +YK +hO +MF +kY +cz +ok +gs +le +Hb +Hp +bB +HD +GO +Mi +ut +aQ +PJ +Mi +Vp +OM +Ab +Ab +xf +ry +zw +hW +XY +il +Pi +px +px +al +Bk +oz +px +px +in +px +px +OM +jt +ry +"} +(16,1,1) = {" +gg +gg +gg +gg +GM +Hf +aI +Ff +uw +WI +cI +gO +Lv +rQ +ok +Rv +yR +nL +bc +ga +re +Mi +Mi +bU +bU +bU +Mi +wg +OM +Ab +nV +hP +YE +KM +Wz +Lc +iR +os +qS +px +px +dI +px +px +dn +kc +WQ +wf +LB +de +ry +"} +(17,1,1) = {" +gg +pj +gg +gg +GM +pF +gb +Dz +oS +fH +Iq +MF +Lv +rQ +Lv +iD +Sg +vf +mS +cd +De +Mi +Oq +pG +Ml +WS +VG +oT +Mm +jt +Ab +OM +ry +jt +OM +px +sK +IB +sK +px +LX +aw +pY +px +px +qy +px +px +OM +de +ry +"} +(18,1,1) = {" +gg +gg +gg +gg +GM +sT +OX +OX +bO +Er +kn +qo +xh +rw +Lv +Rv +Qc +Go +Ny +Ny +De +Rv +RE +WP +RE +RE +RE +mq +hH +OM +OM +OM +mK +jt +Dp +OM +Sw +IB +sK +Ep +zQ +zQ +HY +IM +px +et +px +OM +Fh +de +mK +"} +(19,1,1) = {" +gg +gg +gg +gg +GM +lW +Ci +vX +Yb +jd +EH +MF +Lv +rQ +OK +Rv +TK +eO +bS +mS +De +Mi +VS +pG +fp +Ts +Nu +oT +vU +NI +jy +OM +ry +DA +OM +vB +Kc +Kc +sK +Ya +nP +rd +gV +pz +px +px +px +OM +OM +OM +ry +"} +(20,1,1) = {" +gg +gg +gg +gg +GM +yp +pQ +pQ +vV +yn +xl +gO +OK +rQ +Lv +Rv +yR +ZO +Uj +dw +vC +Mi +Mi +bU +bU +bU +Mi +Zy +OM +jt +jy +mA +sO +pu +LB +LB +LB +Dk +Sw +Uc +Cx +UR +LA +Uc +px +px +LB +LB +jt +de +ry +"} +(21,1,1) = {" +gg +gg +gg +gg +GM +Yq +pQ +uZ +Yh +aj +Ea +MF +kY +Sl +Lv +gs +sx +nd +mS +bZ +Hh +WL +Mi +DN +ZW +un +Mi +Xr +OM +YW +jy +yD +ry +zw +OM +OM +OM +kZ +OM +Uc +Uc +px +Gj +Uc +OM +OM +OM +OM +OM +de +ry +"} +(22,1,1) = {" +gg +gg +pj +gg +GM +jh +jh +jh +YJ +nx +TN +MF +Yi +Sl +ok +gs +vv +zP +iK +iK +pd +wv +kd +aM +kJ +pr +Nd +ki +Ps +qd +pB +Yy +mK +zw +MJ +OM +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +lB +de +mK +"} +(23,1,1) = {" +tn +gg +gg +gg +GM +GM +MF +MF +MF +Gf +MF +MF +Wc +Fb +qr +tL +hJ +Ny +mS +Ql +KW +oA +cx +Tf +lO +WB +ww +xe +rp +jy +jy +de +ry +zw +OM +jt +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +ry +"} +(24,1,1) = {" +tn +gg +gg +gg +gg +GM +wc +ar +MF +oJ +tu +MF +DJ +rQ +ok +gs +ph +Ny +Ny +mS +zp +dv +Nd +ne +ty +pr +Nd +ey +lG +jt +jy +de +ry +zw +LB +jt +AS +LB +LB +LB +OM +LB +OM +LB +LB +fP +KG +LB +LB +OM +ry +"} +(25,1,1) = {" +tn +gg +gg +gg +gg +GM +jo +Ub +FC +Kx +IQ +MF +Sm +Sl +OK +gs +VO +hs +kW +Uz +hs +pJ +Mi +yr +FG +mG +Mi +ZQ +lG +jy +jt +OM +ry +zw +OM +OM +OM +OM +OM +yb +jt +OM +OM +OM +OM +OM +OM +OM +OM +de +ry +"} +(26,1,1) = {" +tn +gg +gg +gg +gg +GM +GM +GM +MF +jC +Bs +MF +aV +Sl +JX +gs +gs +gs +gs +gs +gs +gs +Mi +Mi +Mi +Mi +Mi +TE +ov +Cs +TE +Ic +mK +GK +Dp +CC +OM +OM +jt +OM +jt +OM +Ow +OM +OM +OM +OM +jt +lB +de +mK +"} +(27,1,1) = {" +tn +tn +gg +gg +gg +gg +gg +yK +UW +UW +UW +UW +UP +FW +jq +UW +FH +Wy +UW +ge +Lu +UW +vh +El +Il +yK +qL +qL +cj +qL +qL +qL +ry +DA +OM +OM +EM +OM +Og +jt +jt +OM +OM +OM +OM +OM +OM +jt +OM +de +ry +"} +(28,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +yK +Sq +Sq +Ok +UW +yz +iF +Mn +UW +uN +lx +UW +GN +kM +UW +lx +cP +lx +cA +qL +qL +qL +gg +gg +qL +ry +DA +LB +jt +OM +lf +LB +LB +LB +LB +jt +LB +LB +LB +LB +LB +LB +OM +ry +"} +(29,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +yK +Us +Us +SP +UW +vH +FW +jq +UW +gF +lx +UW +rv +cp +UW +eD +lx +yK +yK +qL +qL +qL +gg +gg +qL +ry +DA +OM +OM +up +OM +OM +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +OM +ry +"} +(30,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +UW +nZ +UW +UW +vH +FW +jq +UW +UW +mU +UW +UW +yC +UW +UW +sm +yK +qL +qL +gg +qL +gg +gg +gg +mK +OM +Fh +gH +OM +QS +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +lB +de +mK +"} +(31,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +dd +bD +SZ +pb +uD +PK +iJ +Fn +Fn +Fn +nJ +pb +Ei +bD +bD +bD +yK +qL +qL +qL +qL +gg +gg +gg +ry +DA +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +jt +OM +OM +ry +"} +(32,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +bq +bq +pK +bq +Ri +kP +xO +bq +bq +bq +pK +bq +bq +bq +bq +bq +yK +qL +qL +qL +qL +qL +qL +gg +ry +DA +jt +LB +LB +LB +OM +LB +LB +LB +LB +LB +LB +LB +LB +LB +jt +de +ry +"} +(33,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +UW +ta +UW +UW +qu +BJ +Mf +UW +UW +yC +UW +UW +mU +UW +UW +yC +yK +gg +gg +qL +qL +qL +qL +qL +ry +DA +OM +OM +OM +jt +OM +OM +OM +OM +OM +OM +OM +OM +jt +jt +jt +de +ry +"} +(34,1,1) = {" +tn +tn +tn +tn +gg +pj +gg +yK +aL +Us +ks +UW +XI +Cw +Rt +UW +bF +lx +UW +zB +lx +UW +WW +lx +yK +gg +gg +qL +qL +qL +qL +qL +pj +yU +If +tv +OM +OM +OM +tv +OM +jt +tv +tv +OM +tv +tv +OM +lB +Cf +pj +"} +(35,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +hK +Us +hG +UW +BO +Cw +HR +UW +xs +lx +UW +BP +lx +UW +uU +lx +yK +gg +gg +gg +qL +qL +qL +qL +pj +pj +td +td +td +cg +td +td +td +cg +td +td +CV +cg +td +td +td +pj +pj +"} +(36,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +yK +yK +yK +yK +um +zN +JR +UW +kH +Av +UW +bf +yA +UW +FP +ht +yK +gg +gg +gg +qL +qL +qL +qL +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(37,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +yK +ng +Cw +ZP +yK +yK +yK +yK +yK +yK +yK +yK +yK +yK +gg +gg +qL +qL +qL +qL +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(38,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +pj +gg +gg +yK +hY +tX +tX +yK +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +qL +qL +qL +qL +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(39,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +Lw +Lw +Lw +Lw +Lw +gg +gg +gg +gg +gg +pj +gg +gg +pj +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(40,1,1) = {" +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +sf +Lw +Lw +Lw +gg +pj +gg +gg +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(41,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +pj +gg +gg +Lw +Lw +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(42,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +Lw +Lw +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(43,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +Lw +Lw +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} diff --git a/_maps/configs/nanotrasen_ranger.json b/_maps/configs/nanotrasen_ranger.json index d9c2e207e4d9..fedc351e03b0 100644 --- a/_maps/configs/nanotrasen_ranger.json +++ b/_maps/configs/nanotrasen_ranger.json @@ -1,24 +1,23 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "prefix": "VISV", "map_name": "Ranger-class Aid Vessel", - "faction": "/datum/faction/nt", - "prefix": "NTSV", + "faction": "/datum/faction/nt/vigilitas", "namelists": [ "NANOTRASEN", "NATURAL_AGGRESSIVE", "WEAPONS" ], "map_short_name": "Ranger-class", - "description": "A Nanotrasen rescue and aid vessel. Equipped with an AI core, moderate combat gear, and equipment fit for rescue and general aid operations. Nanotrasen often deploys these ships in lieu of a proper ERT to aid their allies in the Frontier without committing their full might. The shipowner is the Lieutenant of a Loss Prevention squad, with a Commissioner to aid with operations on the ship proper.", + "description": "A Vigilitas Interstellar aid vessel, manufactured by NT Spaceworks. Equipped with a Nanotrasen AI core, moderate combat gear, and equipment fit for rescue and general aid operations. Vigitilas Interstellar often deploys these ships in lieu of a proper ERT to aid their allies in the Frontier without committing their full might. The shipowner is the Lieutenant of a Loss Prevention squad.", "tags": [ "Combat", - "Riot", - "Robotics", "Medical", + "Firefighting", "Telecomms", "Generalist" ], - "starting_funds": 4000, + "starting_funds": 6000, "map_path": "_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm", "limit": 1, "job_slots": { @@ -39,6 +38,10 @@ "outfit": "/datum/outfit/job/nanotrasen/doctor/lp", "slots": 1 }, + "N+S Logistics Specialist": { + "outfit": "/datum/outfit/job/nanotrasen/quartermaster", + "slots": 1 + }, "Intern": { "outfit": "/datum/outfit/job/nanotrasen/assistant", "slots": 1 diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt new file mode 100644 index 000000000000..35eb2db0bb16 --- /dev/null +++ b/_maps/map_catalogue.txt @@ -0,0 +1,242 @@ +Find the key for using this catalogue in "map_catalogue_key.txt" + + + IceRuins: + File Name = _maps\RandomRuins\IceRuins\icemoon_hydroponics_lab.dmm + Size = (x = 33)(y = 33)(z = 1) + Tags = "Medium Loot", "Medium Combat Challenge", "Antag_Gear", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_surface_corporate_rejects.dmm + Size = (x = 34)(y = 38)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Antag Gear", "Shelter", "Lava" + + File Name = _maps\RandomRuins\IceRuins\icemoon_surface_engioutpost.dmm + Size = (x = 40)(y = 20)(z = 1) + Tags = "No Combat", "Minor Loot", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_abandoned_newcops.dmm + Size = (x = 37)(y = 32)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_abandoned_village.dmm + Size = (x = 28)(y = 28)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Antag Gear", "Inhospitable" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_brazillianlab.dmm + Size = (x = 40)(y = 30)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Inhospitable" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_burnies_lair.dmm + Size = (x = 20)(y = 20)(z = 1) + Tags = "Boss Combat Challenge", "Minor Loot", "Shelter", "Antag Gear" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_drakelair.dmm + Size = (x = 29)(y = 30)(z = 1) + Tags = "Boss Combat Challenge", "Megafauna", "Major Loot", "Shelter", "Necropolis Loot" + + File Name = _maps\RandomRuins\IceRuins\icemoon_crashed_holemaker.dmm + Size = (x = 47)(y = 37)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + + + + JungleRuins: + File Name = "_maps\RandomRuins\JungleRuins\jungle_syndicate.dmm" + Size = (x = 15)(y = 15)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable", "Antag Gear" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_interceptor.dmm" + Size = (x = 53)(y = 51)(z = 1) + Tags = "No Combat", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_medtech_outbreak.dmm" + Size = (x = 31)(y = 25)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_paradise.dmm" + Size = (x = 70)(y = 66)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable", "Hazardous" + + File Name "_maps\RandomRuins\JungleRuins\jungle_bombed_starport + Size = (x = 100)(y = 75)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Liveable" + + File Name "_maps\RandomRuins\JungleRuins\jungle_cavecrew + Size = (x = 43)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Hazardous", "Liveable", "Major Loot" + + File Name "_maps\RandomRuins\JungleRuins\jungle_abandoned_library + Size = (x = 36)(y = 35)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Antag Gear", "Necropolis Loot", "Liveable" + + LavaRuins: + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_buried_shrine.dmm" + Size = (x = 67)(y = 55)(z = 1) + Tags = "Medium Combat", "Medium Loot", "Hazardous", "Lava", "Inhospitable" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_biodome_winter.dmm" + Size = (x = 46)(y = 42)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_elephant_graveyard.dmm" + Size = (x = 29)(y = 35)(z = 1) + Tags = "No Combat", "Minor Loot", "Hazardous", "Inhospitable" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_lava_canyon.dmm" + Size = (x = 90)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Megafauna", "Necropolis Loot", "Inhospitable", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_wrecked_factory.dmm" + Size = (x = 47)(y = 47)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Shelter", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_crashed_starwalker.dmm" + Size = (x = 33)(y = 56)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_abandonedlisteningpost.dmm" + Size = (x = 33)(y = 56)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" + + + ReebeRuins: + File Name = "_maps\RandomRuins\Ruins\reebe_swarmers.dmm" + Size = (x = 20)(y = 20)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Liveable" + + File Name = "_maps\RandomRuins\Ruins\reebe_arena.dmm" + Size = (x = 79)(y = 60)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\Ruins\reebe_decayed_sm.dmm" + Size = (x = 10)(y = 10)(z = 1) + Tags = "No Combat", "Medium Loot", "Liveable", "Hazardous" + + File Name = "_maps\RandomRuins\Ruins\reebe_floating_island.dmm" + Size = (x = 20)(y = 20)(z = 1) + Tags = "Boss Combat Challenge", "Minor Loot", "Liveable" + + + RockRuins: + File Name = "_maps\RandomRuins\RockRuins\rockplanet_budgetcuts.dmm" + Size = (x = 52)(y = 44)(z = 1) + Tags = "Hard Combat Challenge", "Medium Loot", "hospitable" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_harmfactory.dmm" + Size = (x = 42)(y = 41)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", Shelter", "Antag Gear", "Hazardous" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_shippingdock.dmm" + Size = (x = 85)(y = 73)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Shelter" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm" + Size = (x = 58)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Hospitable" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_distillery.dmm" + Size = (x = 44)(y = 45)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Hospitable" + + + SandRuins: + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_saloon.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_combination.dmm" + Size = (x = 59)(y = 59)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable", "Hazardous" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_medipen_plant.dmm" + Size = (x = 23)(y = 29)(z = 1) + Tags = "No Combat", "Major Loot", "Shelter" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_pubbyslopcrash.dmm" + Size = (x = 40)(y = 25)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" + + + + SpaceRuins: + File Name = "_maps\RandomRuins\SpaceRuins\astraeus.dmm" + Size = (x = 47)(y = 35)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Inhospitable" + + File Name = "_maps\RandomRuins\SpaceRuins\bigderelict1.dmm" + Size = (x = 40)(y = 34)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\corporate_mining.dmm" + Size = (x = 50)(y = 50)(z = 1) + Tags = "No Combat", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\onehalf.dmm" + Size = (x = 29)(y = 20)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "inhospitable" + + File Name = "_maps\RandomRuins\SpaceRuins\power_puzzle.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Minor Combat Challenge", "Major Loot", "Shelter", "Hazardous" + + File Name = "_maps\RandomRuins\SpaceRuins\singularitylab.dmm" + Size = (x = 118)(y = 75)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\spacemall.dmm" + Size = (x = 86)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Shelter" + + BeachRuins: + File Name = "_maps\RandomRuins\BeachRuins\beach_ancient_ruin.dmm" + Size = (x = 75)(y = 76)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_colony.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Minor Combat Challenge", "Minor Loot" + + File Name = "_maps\RandomRuins\BeachRuins\beach_fishing_hut.dmm" + Size = (x = 30)(y = 40)(z = 1) + Tags = "Hard Combat Challenge, "Major Loot", "Hazardous" + + File Name = "_maps\RandomRuins\BeachRuins\beach_crashed_engineer.dmm" + Size = (x = 32)(y = 32)(z = 1) + Tags = "Minor Combat Challenge, "Medium Loot", "Hazardous" + + File Name = "_maps\RandomRuins\BeachRuins\beach_pirate_crash.dmm" + Size = (x = 33)(y = 26)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_ocean_town.dmm" + Size = (x = 80)(y = 83)(z = 1) + Tags = "No Combat", "Minor loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_treasure_cove.dmm" + Size = (x = 37)(y = 43)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_float_resort.dmm" + Size = (x = 38)(y = 52)(z = 1) + Tags = "No Combat", "Minor Loot", "Liveable" + + Waste Ruins: + File name ="_maps\RandomRuins\wasteruins\wasteplanet_lab.dmm" + Size = (x = 26)(y = 25)(z = 1) + Tags = "No Combat", "Medium Loot" "Shelter" "hazardous" "hospitable" + + File name ="_maps\RandomRuins\wasteruins\wasteplanet_pandora.dmm" + Size = (x = 18)(y = 21)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot" "Megafauna", "hospitable" + + File name ="_maps\RandomRuins\wasteruins\wasteplanet_unhonorable.dmm" + Size = (x = 34)(y = 34)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter", "Hazardous" + + File name = "_maps\RandomRuins\wasteruins\wasteplanet_abandoned_mechbay.dmm" + Size = (x = 45)(y = 47)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot", "Shelter", "Hazardous" + + File name = "_maps\RandomRuins\wasteruins\wasteplanet_yard.dmm" + Size = (x = 43)(y = 51)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter", "Hazardous" diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 59c844e1be4a..228c94960aaa 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -26,7 +26,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "afh" = ( -/obj/machinery/computer/helm{ +/obj/machinery/computer{ dir = 4 }, /obj/effect/turf_decal/industrial/warning{ @@ -1356,7 +1356,7 @@ /turf/open/floor/plasteel, /area/wizard_station) "ara" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /turf/open/floor/plasteel, /area/wizard_station) "ard" = ( @@ -3939,7 +3939,7 @@ /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "aLP" = ( -/obj/machinery/computer/helm{ +/obj/machinery/computer{ dir = 1 }, /turf/open/floor/mineral/titanium/blue, @@ -4407,7 +4407,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "aOO" = ( -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/book/manual/wiki/drinks, /obj/structure/closet/crate, @@ -4515,11 +4515,11 @@ "aPq" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, /obj/item/reagent_containers/food/drinks/mug, @@ -8827,7 +8827,7 @@ }, /area/centcom) "gFU" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/industrial/warning{ dir = 6 }, @@ -10956,11 +10956,11 @@ /area/centcom/control) "lii" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, /obj/item/melee/knife/kitchen, @@ -12230,7 +12230,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "nEL" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/industrial/warning{ dir = 10 }, @@ -14482,7 +14482,7 @@ "rUH" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/mint, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 5 }, /obj/effect/turf_decal/corner/transparent/neutral{ @@ -15778,7 +15778,7 @@ /turf/open/floor/plasteel/dark, /area/ctf) "vcL" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/corner/transparent/bar, /obj/effect/turf_decal/corner/transparent/bar{ dir = 1 diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index cc6986e98b8d..f537143c31e9 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -4357,7 +4357,7 @@ /area/outpost/maintenance/fore) "qg" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -4713,12 +4713,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -5019,12 +5019,12 @@ /area/outpost/cargo) "rZ" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -10121,12 +10121,12 @@ /area/outpost/operations) "Ju" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = 9; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = 9; pixel_y = 12 @@ -11242,7 +11242,7 @@ /area/outpost/maintenance/fore) "NA" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -11758,7 +11758,7 @@ pixel_x = -5; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = -6; pixel_y = 7 }, @@ -12992,7 +12992,7 @@ /obj/structure/table/reinforced, /obj/machinery/light/directional/south, /obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -14096,12 +14096,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index 6158b206d67c..ca90adbeabe5 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -1454,29 +1454,29 @@ /obj/item/storage/bag/tray{ pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = 6; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -5; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -3; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, @@ -3192,42 +3192,42 @@ /area/ship/crew/dorm) "EP" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/north, -/obj/item/reagent_containers/food/condiment/rice{ +/obj/item/reagent_containers/condiment/rice{ pixel_y = 17 }, -/obj/item/reagent_containers/food/condiment/flour{ +/obj/item/reagent_containers/condiment/flour{ pixel_x = 6; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/flour{ +/obj/item/reagent_containers/condiment/flour{ pixel_x = 6; pixel_y = 4 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = -7; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = -7; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/soymilk{ +/obj/item/reagent_containers/condiment/soymilk{ pixel_y = -5; pixel_x = -4 }, -/obj/item/reagent_containers/food/condiment/soymilk{ +/obj/item/reagent_containers/condiment/soymilk{ pixel_y = -5; pixel_x = -4 }, @@ -4139,7 +4139,7 @@ pixel_y = 17; pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -6; pixel_y = 10 }, diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index a0383e507ec1..d1cc698c0c92 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -886,12 +886,15 @@ dir = 1 }, /obj/item/radio/weather_monitor{ - pixel_x = 5; + pixel_x = 8; pixel_y = 7 }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -8 +/obj/machinery/newscaster/directional/west, +/obj/item/paper_bin{ + pixel_x = -8; + pixel_y = 6 }, +/obj/item/pen/fountain, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "mR" = ( @@ -2686,9 +2689,8 @@ "Oz" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/machinery/newscaster/directional/west, -/obj/item/megaphone/cargo{ - pixel_y = 5 +/obj/machinery/fax/indie{ + pixel_y = 7 }, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) @@ -2711,6 +2713,7 @@ /obj/item/ammo_box/c38, /obj/item/ammo_box/c38, /obj/item/gun/ballistic/revolver/detective, +/obj/item/megaphone/cargo, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "OP" = ( diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm index 0dad29cb9f9b..35f955ff0b3d 100644 --- a/_maps/shuttles/independent/independent_kilo.dmm +++ b/_maps/shuttles/independent/independent_kilo.dmm @@ -22,6 +22,9 @@ dir = 4; id = "kilothrusters" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating/airless, /area/ship/engineering) "av" = ( @@ -1581,6 +1584,9 @@ dir = 4; id = "kilothrusters" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering) "MY" = ( @@ -1890,7 +1896,7 @@ /obj/effect/decal/cleanable/oil, /obj/machinery/button/door{ dir = 8; - id = "amogusthrusters"; + id = "kilothrusters"; name = "Thruster Lockdown"; pixel_x = 21 }, diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 16f3ad2cbfa1..1c8c2307a7e8 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -1366,7 +1366,7 @@ icon_state = "2-4" }, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/effect/turf_decal/corner/opaque/white/diagonal, /obj/item/radio/intercom/directional/west, /turf/open/floor/plasteel, @@ -1569,12 +1569,12 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/effect/turf_decal/corner/opaque/white/diagonal, /obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel, @@ -2347,7 +2347,7 @@ }, /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, /obj/item/clothing/gloves/color/black, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 8; pixel_x = 28 }, @@ -3931,11 +3931,11 @@ /area/ship/hallway/aft) "An" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 5; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/corner/opaque/white/diagonal, /turf/open/floor/plasteel, diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index ac2be582662a..26474b9c4c2f 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -1096,6 +1096,9 @@ dir = 4; id = "mudskipper_engine" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering/engine) "zR" = ( @@ -1670,6 +1673,9 @@ dir = 4; id = "mudskipper_engine" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering/engine) "MK" = ( @@ -1875,11 +1881,11 @@ "Rl" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 10; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 18; pixel_y = 2 }, diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm index da493fcdf548..d6cb54aed39c 100644 --- a/_maps/shuttles/independent/independent_rigger.dmm +++ b/_maps/shuttles/independent/independent_rigger.dmm @@ -241,8 +241,8 @@ /obj/item/storage/cans/sixbeer, /obj/effect/spawner/lootdrop/ration, /obj/effect/spawner/lootdrop/ration, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, /obj/item/radio/intercom/directional/north, /turf/open/floor/plasteel/white, /area/ship/crew/canteen) @@ -4398,10 +4398,10 @@ }, /obj/effect/turf_decal/corner/opaque/yellow/diagonal, /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -14 }, /turf/open/floor/plasteel/white, diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm index 891e3bd2ce9a..3ae3915db4d3 100644 --- a/_maps/shuttles/independent/independent_schmiedeberg.dmm +++ b/_maps/shuttles/independent/independent_schmiedeberg.dmm @@ -68,13 +68,13 @@ "aO" = ( /obj/structure/table, /obj/item/storage/bag/tray, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/melee/knife/kitchen, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -5; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 3; pixel_y = 11 }, @@ -2516,13 +2516,13 @@ /obj/structure/closet/secure_closet/freezer/wall/directional/north, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/peppermill, /obj/effect/decal/cleanable/food/flour, /turf/open/floor/concrete/slab_3, /area/ship/crew/canteen) diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 256e9bc75c88..3bf95ea99b6f 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -1492,7 +1492,7 @@ }, /obj/machinery/button/door{ dir = 1; - id = "amogusthrusters"; + id = "shetportthrusters"; name = "Thruster Lockdown"; pixel_y = -21 }, @@ -2297,7 +2297,7 @@ pixel_y = 5 }, /obj/machinery/button/door{ - id = "amogusthrusters"; + id = "shetstarboardengine"; name = "Thruster Lockdown"; pixel_y = 24 }, @@ -2748,11 +2748,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetstarboardengine" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "wU" = ( @@ -2849,11 +2852,11 @@ "xz" = ( /obj/effect/turf_decal/corner/opaque/neutral/half, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 4; pixel_y = 10 }, @@ -3438,8 +3441,8 @@ populate = 0 }, /obj/effect/turf_decal/corner/opaque/neutral/half, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "CK" = ( @@ -4423,11 +4426,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetportthrusters" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "Lx" = ( @@ -4989,11 +4995,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetportthrusters" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "PR" = ( @@ -5157,11 +5166,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetstarboardengine" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Ri" = ( diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm index a5fcf740be59..3edffc72acbc 100644 --- a/_maps/shuttles/independent/independent_sunskipper.dmm +++ b/_maps/shuttles/independent/independent_sunskipper.dmm @@ -196,11 +196,11 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = 6; pixel_y = 8 }, @@ -349,11 +349,11 @@ pixel_x = -7; pixel_y = 9 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 13; pixel_x = 4 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 13; pixel_x = 11 }, @@ -3172,11 +3172,11 @@ /area/template_noop) "Pe" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/oliveoil{ +/obj/item/reagent_containers/condiment/oliveoil{ pixel_x = 6; pixel_y = 8 }, @@ -3273,7 +3273,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/effect/turf_decal/borderfloorblack, /obj/effect/turf_decal/box, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen/kitchen) "QB" = ( @@ -3554,10 +3554,10 @@ /obj/structure/closet/crate{ name = "supplies crate" }, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /obj/item/storage/box/lights/mixed, /obj/item/storage/box/drinkingglasses, /obj/item/storage/fancy/candle_box, @@ -3656,11 +3656,11 @@ "VG" = ( /obj/machinery/light/directional/west, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/bbqsauce{ +/obj/item/reagent_containers/condiment/bbqsauce{ pixel_x = 6; pixel_y = 8 }, diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index 6a26f5e7b264..fe5a2993e2fc 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -544,20 +544,20 @@ dir = 1 }, /obj/effect/turf_decal/corner/transparent/bar, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/item/storage/box/ingredients/carnivore, /obj/item/storage/box/ingredients/fruity, /obj/item/storage/box/ingredients/grains, /obj/item/storage/box/ingredients/vegetarian, /obj/item/storage/box/ingredients/wildcard, /obj/item/storage/box/ingredients/wildcard, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/mayonnaise, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/item/storage/box/condimentbottles, /obj/structure/closet/secure_closet/wall/directional/west{ name = "Kitchen Cabinet" @@ -1160,7 +1160,7 @@ /area/ship/crew/dorm) "iq" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -11; pixel_y = 6 }, @@ -3002,7 +3002,7 @@ /area/ship/hallway/port) "yL" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 13; pixel_y = 2 }, @@ -5415,10 +5415,10 @@ /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, /obj/structure/closet/secure_closet/wall/directional/east{ diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 195852c9fd5c..6b05aa78caaa 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -2090,7 +2090,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 1; pixel_y = -32 }, diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm index 737e424096fd..dac3ac7a0ebb 100644 --- a/_maps/shuttles/inteq/inteq_valor.dmm +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -123,7 +123,7 @@ /obj/effect/turf_decal/borderfloorwhite, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "bJ" = ( /obj/effect/turf_decal/siding/thinplating/dark, /obj/effect/turf_decal/trimline/opaque/brown/line, @@ -136,7 +136,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "bN" = ( /obj/structure/catwalk/over/plated_catwalk, /obj/machinery/power/apc/auto_name/directional/east, @@ -353,7 +353,7 @@ }, /obj/structure/chair, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "dG" = ( /obj/effect/turf_decal/industrial/traffic/corner{ dir = 4 @@ -366,6 +366,12 @@ dir = 8; name = "Custodian Closet" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "dM" = ( @@ -407,7 +413,7 @@ name = "Surgery" }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "dO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -546,7 +552,7 @@ pixel_y = 8 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "eV" = ( /obj/structure/cable{ icon_state = "1-4" @@ -733,8 +739,13 @@ dir = 5 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "gq" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20; + pixel_x = -3 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "gt" = ( @@ -762,7 +773,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "gZ" = ( /obj/machinery/door/airlock/external{ dir = 4 @@ -840,6 +851,9 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) +"hJ" = ( +/turf/open/floor/plasteel/dark, +/area/ship/medical/surgery) "hN" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 4 @@ -862,8 +876,13 @@ dir = 8; pixel_x = 12 }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 8 + }, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "id" = ( /obj/structure/cable{ icon_state = "1-2" @@ -1018,7 +1037,7 @@ id = "valor_external" }, /turf/open/floor/plating, -/area/ship/medical) +/area/ship/medical/surgery) "jN" = ( /obj/structure/chair/office, /obj/machinery/power/apc/auto_name/directional/west, @@ -1063,6 +1082,11 @@ pixel_x = 1; pixel_y = 16 }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20; + pixel_x = 4 + }, /turf/open/floor/plasteel/patterned/ridged, /area/ship/medical) "jU" = ( @@ -1094,6 +1118,12 @@ dir = 4; name = "Starboard Engines" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/maintenance/starboard) "kx" = ( @@ -1178,6 +1208,10 @@ /obj/machinery/door/airlock/grunge{ name = "Medbay" }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "lc" = ( @@ -1329,6 +1363,10 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"ml" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/medical) "mp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1338,6 +1376,9 @@ }, /turf/open/floor/plasteel/tech, /area/ship/medical) +"mr" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/medical/surgery) "mt" = ( /obj/structure/rack, /obj/item/tank/internals/plasmaman/full, @@ -1479,8 +1520,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/light/directional/north, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "nz" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -1509,8 +1551,12 @@ /obj/machinery/door/airlock/medical/glass{ name = "Surgical Bay" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "nU" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -1551,6 +1597,9 @@ /obj/item/flashlight/lamp/green, /turf/open/floor/carpet/black, /area/ship/crew/dorm) +"ou" = ( +/turf/open/floor/plasteel/mono/dark, +/area/ship/cargo) "oy" = ( /obj/effect/turf_decal/trimline/opaque/brown/warning{ dir = 6 @@ -1569,7 +1618,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "oz" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1719,7 +1768,7 @@ /obj/structure/table/optable, /obj/structure/curtain, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "pL" = ( /obj/machinery/power/terminal{ dir = 8 @@ -1789,8 +1838,12 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/patterned, -/area/ship/medical) +/area/ship/medical/surgery) "qt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -1846,7 +1899,7 @@ id = "valor_surgery" }, /turf/open/floor/plating, -/area/ship/medical) +/area/ship/medical/surgery) "qW" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ dir = 4 @@ -1890,6 +1943,20 @@ }, /turf/open/floor/plating, /area/ship/crew/dorm) +"rh" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/ship/hallway/central) "rL" = ( /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) @@ -1905,7 +1972,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "rX" = ( /obj/structure/sign/poster/contraband/inteq_gec{ pixel_y = 32 @@ -1996,8 +2063,12 @@ /obj/machinery/door/airlock/medical{ name = "Morgue" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "ss" = ( /obj/structure/rack, /obj/item/pickaxe/emergency, @@ -2011,8 +2082,12 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "sy" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -2083,6 +2158,11 @@ pixel_y = 10 }, /obj/machinery/firealarm/directional/west, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -10 + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "sM" = ( @@ -2192,6 +2272,10 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "tZ" = ( @@ -2234,7 +2318,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "uA" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 4 @@ -2466,12 +2550,11 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "xg" = ( -/obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "xj" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) @@ -2727,7 +2810,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/structure/bodycontainer/morgue, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "zE" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -2768,8 +2851,12 @@ "zI" = ( /obj/effect/turf_decal/borderfloorblack, /obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/patterned, -/area/ship/medical) +/area/ship/medical/surgery) "zK" = ( /obj/docking_port/stationary{ dir = 4; @@ -2800,6 +2887,10 @@ /obj/effect/turf_decal/siding/thinplating/dark{ dir = 9 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "zT" = ( @@ -2889,7 +2980,7 @@ pixel_y = -4 }, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "AG" = ( /obj/structure/bed, /obj/item/bedsheet/hos{ @@ -2968,6 +3059,10 @@ desc = "A poster encouraging you to work for your future."; pixel_y = 32 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "Bc" = ( @@ -2984,6 +3079,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"BB" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/template_noop, +/area/template_noop) "BC" = ( /obj/structure/filingcabinet/double, /obj/structure/sign/poster/official/help_others{ @@ -3082,7 +3184,7 @@ pixel_x = 28 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "CH" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, /obj/structure/cable{ @@ -3330,8 +3432,9 @@ /obj/effect/turf_decal/trimline/opaque/brown/line{ dir = 5 }, +/obj/machinery/light/directional/north, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "EJ" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 1 @@ -3463,7 +3566,7 @@ /area/ship/crew/canteen) "FY" = ( /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "FZ" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -3532,6 +3635,20 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) +"GT" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/ship/hallway/central) "Hg" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -3567,6 +3684,9 @@ /obj/machinery/door/airlock/hatch{ name = "Port Hallway" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "HA" = ( @@ -3631,6 +3751,10 @@ /obj/structure/mirror{ pixel_y = -24 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ship/crew/canteen) "HT" = ( @@ -4042,7 +4166,7 @@ pixel_y = -23 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "LL" = ( /obj/structure/closet/secure_closet{ icon_state = "med_secure"; @@ -4089,6 +4213,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, /turf/open/floor/plasteel/stairs{ dir = 8 }, @@ -4158,6 +4286,14 @@ "Nh" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/cargo) +"Nk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical/surgery) "Nn" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/cobweb, @@ -4175,6 +4311,10 @@ /obj/item/soap{ pixel_x = -6 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "NA" = ( @@ -4309,6 +4449,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "Ok" = ( @@ -4318,6 +4459,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned, /area/ship/cargo) +"Ox" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/medical/surgery) "Oz" = ( /obj/structure/table, /obj/item/folder{ @@ -4351,7 +4500,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "OM" = ( /turf/open/floor/pod, /area/ship/cargo) @@ -4410,14 +4559,19 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Pg" = ( /obj/structure/sink{ dir = 4; pixel_x = -12 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 8 + }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "Pk" = ( /obj/effect/turf_decal/corner/opaque/brown{ dir = 4 @@ -4451,10 +4605,9 @@ /obj/effect/turf_decal/trimline/opaque/brown/line{ dir = 1 }, -/obj/machinery/light/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "PU" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/crew/cryo) @@ -4582,8 +4735,12 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "Re" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Rh" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/security) @@ -4704,6 +4861,9 @@ }, /turf/open/floor/carpet/black, /area/ship/crew/dorm) +"SL" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/medical/surgery) "SX" = ( /obj/machinery/power/terminal{ dir = 1 @@ -4808,7 +4968,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Uj" = ( /obj/effect/turf_decal/siding/thinplating/dark, /obj/structure/cable{ @@ -4860,6 +5020,15 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"UD" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) "UN" = ( /obj/effect/turf_decal/siding/thinplating, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -5046,10 +5215,12 @@ dir = 9 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/firealarm/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_y = 4 + }, /obj/structure/chair, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "WQ" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -5221,12 +5392,18 @@ /area/ship/medical) "Yi" = ( /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "Yn" = ( /obj/machinery/door/airlock/grunge{ dir = 8; name = "Restroom" }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ship/crew/canteen) "Yt" = ( @@ -5262,14 +5439,16 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "YL" = ( -/obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "YM" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -5304,6 +5483,12 @@ dir = 4; name = "Port Engines" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "Zc" = ( @@ -5481,7 +5666,7 @@ cu Td Td Td -Td +BB Nh xj qG @@ -5595,13 +5780,13 @@ xj Td Td Td -bB -LI +mr +SL ns -LI +SL pC zD -LI +SL "} (8,1,1) = {" Zu @@ -5628,13 +5813,13 @@ xj Td Td Td -WC +Ox WO gp -LI +SL FY OK -LI +SL "} (9,1,1) = {" Zu @@ -5661,13 +5846,13 @@ xj Td Td Td -WC +Ox dA Pe si hW AE -LI +SL "} (10,1,1) = {" Zu @@ -5690,17 +5875,17 @@ OM OM Kz ZF -LI +SL jL jL jL -LI +SL PL bJ -LI -LI -LI -LI +SL +SL +SL +SL "} (11,1,1) = {" Zu @@ -5724,8 +5909,8 @@ Mn de KU zI -Re -Re +hJ +hJ xg Re Ui @@ -5733,7 +5918,7 @@ gU nK Pg eU -LI +SL "} (12,1,1) = {" tZ @@ -5758,15 +5943,15 @@ Fa MR qk su -su +Nk +Nk YL -su ux rO qR Yi bI -LI +SL "} (13,1,1) = {" tZ @@ -5799,7 +5984,7 @@ oy qR CF LJ -LI +SL "} (14,1,1) = {" tZ @@ -5824,15 +6009,15 @@ zT nX LI jG -Io +ml Au LI -LI +SL dN -LI -LI -LI -LI +SL +SL +SL +SL "} (15,1,1) = {" tZ @@ -5842,9 +6027,9 @@ tZ Qc AP HC -gq -gq -gq +ou +ou +ou Hw nX ct @@ -5875,8 +6060,8 @@ ME iN xl HC -gq -gq +ou +ou gq xj Rc @@ -5908,9 +6093,9 @@ tZ VD Um DT +UD Oj -Oj -Oj +UD DT DT DT @@ -5974,7 +6159,7 @@ mB ma CH jk -lc +GT Sh lc ht @@ -5990,7 +6175,7 @@ hj id lc Sh -lc +rh bR XD NZ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index b469bbaa0984..7d8db3ebb68b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -7054,11 +7054,11 @@ /area/ship/hallway/fore) "zN" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = 3; pixel_y = 3 }, -/obj/item/reagent_containers/food/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/mayonnaise, /obj/effect/turf_decal/box/corners{ dir = 4 }, @@ -9209,12 +9209,12 @@ "HT" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -9319,11 +9319,11 @@ "Ip" = ( /obj/structure/table, /obj/item/reagent_containers/food/snacks/mint, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = 5; pixel_y = 5 }, @@ -12148,12 +12148,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -13621,7 +13621,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 27 }, /obj/structure/closet/secure_closet/engineering_electrical, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index 1f645758f3cb..eaf4abc2b9b3 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -543,11 +543,11 @@ pixel_y = 3 }, /obj/effect/turf_decal/corner/transparent/bar/diagonal, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_y = 14; pixel_x = 9 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_y = 14 }, /obj/item/reagent_containers/food/drinks/soda_cans/cola{ @@ -1808,10 +1808,10 @@ /area/ship/engineering) "lH" = ( /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat{ pixel_x = -3; pixel_y = 3 @@ -1827,10 +1827,10 @@ name = "fridge"; anchored = 1 }, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) "lK" = ( @@ -2758,11 +2758,11 @@ /area/ship/cargo) "EX" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8; pixel_y = 4 }, @@ -2869,11 +2869,11 @@ pixel_y = 6 }, /obj/effect/turf_decal/corner/opaque/white/diagonal, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8; pixel_y = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 708933a2287a..aa2a0aad5b1f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -2814,18 +2814,18 @@ }, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, /obj/item/reagent_containers/food/snacks/tofu, /obj/item/reagent_containers/food/snacks/tofu, /turf/open/floor/plasteel/mono/white, @@ -3878,14 +3878,14 @@ /area/ship/crew/canteen/kitchen) "xb" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 4 }, -/obj/item/reagent_containers/food/condiment/rice{ +/obj/item/reagent_containers/condiment/rice{ pixel_y = 10; pixel_x = 3 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -5; pixel_y = 5 }, @@ -4466,11 +4466,11 @@ /obj/item/toy/figure/chef, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 10; pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 8; pixel_y = 9 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index a44e00c41303..e99a4cd360a8 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -2797,11 +2797,11 @@ /area/ship/hallway/central) "sl" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 10 }, @@ -5577,7 +5577,7 @@ "JL" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, @@ -5632,7 +5632,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 32 }, /obj/structure/cable{ @@ -7646,8 +7646,8 @@ /obj/structure/table/reinforced, /obj/item/melee/knife/kitchen, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index fcd049fb153f..4e194b4bdb98 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -6,12 +6,16 @@ pixel_y = 11; layer = 4.2 }, -/obj/structure/railing{ +/obj/item/toy/plush/moth/redish{ + pixel_x = -4 + }, +/obj/structure/window/reinforced/tinted{ dir = 4 }, -/obj/item/toy/plush/moth/redish{ +/obj/item/folder/red{ pixel_x = -4; - layer = 4.3 + layer = 3.01; + pixel_y = -8 }, /turf/open/floor/wood, /area/ship/security) @@ -29,7 +33,8 @@ pixel_x = 8; pixel_y = 22 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "am" = ( /obj/structure/urinal{ @@ -39,7 +44,7 @@ /obj/structure/cable{ icon_state = "0-4" }, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "an" = ( /obj/structure/railing/corner, @@ -56,34 +61,47 @@ icon_state = "1-2" }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "aD" = ( /obj/machinery/light/dim/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "aG" = ( -/obj/structure/railing{ - dir = 4 +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/head/beret/eng/hazard, +/obj/item/storage/backpack/satchel/eng, +/obj/item/storage/backpack/messenger/engi, +/obj/item/storage/backpack/industrial, +/obj/item/storage/backpack/duffelbag/engineering, +/obj/item/clothing/under/rank/engineering/engineer/nt/lp, +/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp, +/obj/item/storage/backpack/ert/engineer, +/obj/item/clothing/suit/nanotrasen/vest, +/obj/structure/window/reinforced/tinted{ + dir = 1 }, -/obj/structure/table/reinforced, -/obj/item/storage/box/stockparts/basic, -/obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/mono/dark, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, /area/ship/engineering) "aI" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_FireFighting_Shut" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -99,15 +117,33 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_FireFighting_Shut"; + name = "Ready Room" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/storage/equip) "aK" = ( /obj/machinery/light/dim/directional/north, -/obj/item/radio/intercom/directional/east, -/obj/structure/reagent_dispensers/foamtank, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire/corner{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/clothing/suit/space/hardsuit/ancient/lp, +/obj/item/clothing/mask/breath, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "aO" = ( /obj/structure/closet/secure_closet/lp/medical, /obj/item/storage/box/gloves, @@ -119,6 +155,25 @@ /obj/item/pinpointer/crew, /obj/item/storage/box/bodybags, /obj/item/storage/firstaid/regular, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/defibrillator/loaded, +/obj/item/roller{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/roller{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/gps, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health/prescription, /turf/open/floor/wood, /area/ship/medical) "aP" = ( @@ -129,6 +184,7 @@ dir = 1 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "bf" = ( @@ -141,7 +197,7 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "bn" = ( /obj/machinery/light/dim/directional/south, @@ -150,10 +206,10 @@ pixel_x = -21; pixel_y = 7 }, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "br" = ( /obj/machinery/atmospherics/components/unary/shuttle/heater{ @@ -164,12 +220,14 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "bu" = ( -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "bw" = ( /obj/structure/closet/secure_closet/lp/security, @@ -184,31 +242,47 @@ /obj/item/clothing/suit/armor/vest/security, /obj/item/clothing/mask/gas/sechailer, /obj/item/gps, -/obj/structure/railing{ - dir = 4 - }, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, /obj/item/ammo_box/magazine/co9mm, /obj/item/storage/belt/security/webbing, /obj/item/storage/pistolcase/commander, +/obj/item/clothing/glasses/hud/security/sunglasses, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/security) "bD" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) -"bN" = ( -/obj/structure/window/reinforced{ +"bK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"bN" = ( +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/pen/red{ + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security) "bX" = ( /obj/machinery/telecomms/bus/preset_four{ @@ -217,25 +291,41 @@ id = "Nanotrasen Communications Bus"; freq_listening = list(1353,1447,1459) }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) -"cj" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/secure/loot, +"ci" = ( +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/maintenance/port) +"cj" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/medical/paramedic/skirt/lp, +/obj/item/clothing/under/rank/medical/paramedic/lp, +/obj/item/clothing/suit/hooded/wintercoat/medical, +/obj/item/clothing/head/beret/med, +/obj/item/storage/backpack/satchel/med, +/obj/item/storage/backpack/messenger/med, +/obj/item/storage/backpack/medic, +/obj/item/storage/backpack/duffelbag/med, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/storage/backpack/ert/medical, +/turf/open/floor/wood, +/area/ship/medical) "cv" = ( /obj/structure/chair/comfy/shuttle{ dir = 4; - name = "Operations" + name = "Navigator's Chair" }, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "cx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -247,7 +337,6 @@ /obj/machinery/camera/autoname{ dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/machinery/firealarm/directional/south, /obj/structure/cable{ icon_state = "4-8" @@ -255,7 +344,8 @@ /obj/structure/cable{ icon_state = "4-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "cE" = ( /obj/structure/railing{ @@ -263,20 +353,28 @@ }, /obj/effect/decal/cleanable/glass, /obj/machinery/light/dim/directional/south, +/obj/structure/janitorialcart{ + dir = 4 + }, +/obj/item/mop, +/obj/item/reagent_containers/food/drinks/sillycup{ + pixel_x = -8; + pixel_y = 10 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "cI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 +/obj/structure/chair/handrail{ + dir = 8; + pixel_x = 2 }, -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Cycler_Shutters" +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" }, -/turf/open/floor/plating, /area/ship/hallway/central) "cN" = ( /obj/structure/cable{ @@ -288,13 +386,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 - }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "cR" = ( /obj/structure/cable{ @@ -305,9 +403,15 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "cW" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "dd" = ( @@ -315,22 +419,71 @@ /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) -"dl" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_FireFighting_Shut" +"df" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/table/wood, +/obj/item/toy/plush/moth/deadhead{ + pixel_x = -7; + layer = 4.3 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 13; + layer = 4.2 }, +/obj/item/folder/yellow{ + pixel_y = -4; + pixel_x = 4 + }, +/obj/item/pen/survival{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ship/engineering) +"dl" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_FireFighting_Shut"; + name = "Ready Room" + }, +/turf/open/floor/plasteel/dark, +/area/ship/storage/equip) +"dm" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 10 + }, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/hallway/starboard) "dn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -341,15 +494,15 @@ /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 4 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "dq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "dr" = ( /obj/machinery/power/smes{ @@ -358,25 +511,33 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, /area/ship/engineering) +"dx" = ( +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "dC" = ( /obj/effect/turf_decal/ntspaceworks_small/right, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/blue, /turf/open/floor/plasteel/dark, /area/ship/bridge) "dG" = ( /obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/binary/valve/layer4{ - dir = 8; - name = "Disposals Outlet Valve" - }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/hallway/central) "dK" = ( @@ -387,10 +548,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "dM" = ( /obj/structure/cable/cyan{ @@ -399,34 +560,38 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/ship/maintenance/port) +"dN" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/port) "dP" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/poddoor/shutters{ - id = "Engineering_Specialist_Shutters" + id = "Engineering_Specialist_Shutters"; + name = "Communications Shutters" }, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "ec" = ( /obj/effect/turf_decal/ntspaceworks_small/left, -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/structure/cable{ icon_state = "5-8" }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -7; - pixel_y = -19 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/effect/turf_decal/spline/fancy/opaque/blue, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "ef" = ( @@ -438,15 +603,19 @@ /turf/template_noop, /area/template_noop) "eo" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/machinery/camera/autoname{ + dir = 5 }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/obj/machinery/power/ship_gravity, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "er" = ( /obj/structure/cable{ icon_state = "4-8" @@ -460,13 +629,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "eE" = ( /obj/machinery/computer/cargo{ dir = 1 }, +/obj/structure/railing{ + dir = 8 + }, /turf/open/floor/plasteel/tech, /area/ship/cargo) "eN" = ( @@ -481,7 +653,8 @@ dir = 1; pixel_y = -21; id = "Rangar_Starboard_Blasts"; - name = "Blast Doors" + name = "Blast Doors"; + req_ship_access = 1 }, /obj/machinery/button/shieldwallgen{ dir = 1; @@ -495,23 +668,50 @@ /obj/structure/cable{ icon_state = "4-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "eU" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/sprayweb, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 5 + }, +/obj/item/stack/tape{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/stack/tape{ + pixel_y = 24; + pixel_x = 6; + layer = 3.02 + }, +/obj/item/stack/tape{ + pixel_y = 17; + pixel_x = 7; + layer = 3.01 + }, +/obj/item/hand_labeler{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/folder/yellow{ + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "eY" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/shrink_ccw{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "fd" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/border{ - dir = 8 - }, /obj/structure/cable{ icon_state = "6-8" }, @@ -524,85 +724,139 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "ff" = ( /obj/structure/railing{ dir = 1 }, /obj/effect/turf_decal/techfloor/hole/right, -/obj/machinery/telecomms/message_server/preset{ - autolinkers = list("messaging","hub"); - network = "nt_commnet"; - layer = 3.1 +/obj/effect/turf_decal/spline/fancy/opaque/blue/corner{ + dir = 8 }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel/dark, /area/ship/bridge) "fo" = ( -/obj/structure/window/reinforced/tinted/frosted, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plastic, -/area/ship/crew/toilet) +/obj/structure/girder/reinforced, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "fy" = ( -/obj/structure/table/wood, /obj/item/newspaper, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "fz" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 8; - name = "Cargo Bay"; - id = "Ranger_Cargo_Door" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 10 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Cargo Bay"; + id = "Ranger_Cargo_Door" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "fU" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor/hole/right, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "fV" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/security) +"gd" = ( +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) "gg" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/toilet) "gh" = ( -/obj/structure/chair/comfy/blue/directional/east, -/obj/item/toy/plush/moth/lovers, /obj/item/radio/intercom/directional/north, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cyan, +/obj/item/stack/sheet/rglass{ + amount = 25 + }, +/obj/item/aicard, +/turf/open/floor/circuit, /area/ship/engineering/communications) "gi" = ( -/obj/machinery/light_switch{ - pixel_x = 8; - pixel_y = 22 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, /obj/effect/turf_decal/siding/red{ dir = 1 }, -/obj/machinery/camera/autoname, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "gk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + name = "Intelligence Core"; + id = "AiCore" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering/glass{ + dir = 4; + name = "Intelligence Core"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) +"gr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "RangerCryoShutters"; + name = "Cryogenic Storage" + }, +/obj/machinery/button/door{ + pixel_x = -21; + dir = 4; + pixel_y = 3; + name = "Cryogenics Access"; + id = "RangerCryoShutters" + }, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, +/area/ship/crew/cryo) "gz" = ( /obj/machinery/camera/autoname{ dir = 9 @@ -610,7 +864,7 @@ /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/closet/crate/trashcart, /obj/item/storage/bag/trash, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "gD" = ( /obj/structure/cable/cyan{ @@ -619,12 +873,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/vomit/old{ + color = "#30b7e5"; + name = "blueish dried vomit" + }, +/obj/item/broken_bottle{ + pixel_x = -10 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "gG" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/machinery/door/airlock/medical/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -634,13 +893,13 @@ dir = 1 }, /obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Medical Bay" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "gL" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/crate_shelf, /turf/open/floor/plasteel/tech, /area/ship/cargo) "gN" = ( @@ -655,16 +914,18 @@ /turf/open/floor/plating, /area/ship/engineering) "gT" = ( -/obj/structure/cable{ - icon_state = "2-5" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/turf_decal/siding/blue, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "gW" = ( @@ -676,14 +937,21 @@ dir = 8 }, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "hf" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CellHallShutters"; + name = "Holding Cell Hall Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/security) "hk" = ( /obj/structure/cable{ @@ -699,7 +967,7 @@ /obj/structure/cable{ icon_state = "1-10" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "hl" = ( /obj/structure/cable/cyan{ @@ -708,35 +976,42 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "hn" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/structure/railing/corner, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/turf_decal/siding/yellow, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/spline/fancy/opaque/orange, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "hp" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/maintenance/port) "hx" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp, +/obj/item/clothing/under/rank/security/head_of_security/alt/lp, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/jacket/miljacket, +/obj/item/storage/backpack/messenger/com, +/obj/item/storage/backpack/satchel/cap, +/obj/item/storage/backpack/captain, +/obj/item/storage/backpack/duffelbag/captain, +/obj/item/storage/backpack/ert, /obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, +/obj/item/clothing/head/nanotrasen/beret/security/command, +/obj/item/clothing/suit/armor/nanotrasen/sec_director, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "hz" = ( /obj/docking_port/mobile{ dir = 2; @@ -746,12 +1021,8 @@ /obj/machinery/camera/autoname, /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "hF" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "hJ" = ( @@ -761,22 +1032,23 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "hK" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "Engineering_Specialist_Shutters"; - dir = 4 + dir = 4; + name = "Communications Shutters" }, -/obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "hN" = ( @@ -785,33 +1057,34 @@ }, /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "hQ" = ( +/obj/machinery/door/window/survival_pod{ + dir = 4; + opacity = 1; + req_access_txt = "1"; + name = "Security Specialist Quarters"; + req_ship_access = 1 + }, /turf/open/floor/plasteel/stairs/wood{ dir = 8 }, /area/ship/security) "hZ" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 13; - layer = 4.2 - }, -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 +/obj/machinery/camera/autoname{ + dir = 4 }, -/obj/item/toy/plush/moth/deadhead{ - pixel_x = -7; - layer = 4.3 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 }, -/turf/open/floor/wood, -/area/ship/engineering) +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "ib" = ( /obj/structure/cable/cyan{ icon_state = "5-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, /area/ship/maintenance/starboard) "id" = ( @@ -833,6 +1106,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "ih" = ( @@ -851,7 +1130,7 @@ pixel_x = 7; pixel_y = -20 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "iq" = ( /obj/effect/turf_decal/industrial/warning{ @@ -859,25 +1138,35 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/firealarm/directional/east, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) +"iv" = ( +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "ix" = ( -/obj/structure/table/greyscale, +/obj/machinery/camera/autoname, /obj/effect/turf_decal/siding/blue{ - dir = 1 + dir = 5 }, -/obj/item/storage/firstaid/medical{ - pixel_y = 7; - pixel_x = -2 +/obj/item/storage/firstaid/toxin{ + pixel_x = 4; + pixel_y = -3 }, /obj/item/storage/firstaid/o2{ pixel_x = 1; pixel_y = 2 }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 4; - pixel_y = -3 +/obj/item/storage/firstaid/medical{ + pixel_y = 7; + pixel_x = -2 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/ship/medical) "iC" = ( @@ -885,22 +1174,23 @@ dir = 4 }, /obj/effect/decal/cleanable/robot_debris/old, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/ship/maintenance/starboard) "iD" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "iF" = ( /obj/structure/railing{ @@ -914,23 +1204,35 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/effect/spawner/lootdrop/lpaid{ - pixel_x = -4; +/obj/item/stamp/captain{ + pixel_x = 7 + }, +/obj/item/folder/blue{ + pixel_x = 8; pixel_y = 10 }, -/obj/effect/spawner/lootdrop/lpcombat{ - pixel_y = 6 +/obj/effect/turf_decal/techfloor{ + dir = 10 }, -/obj/effect/spawner/lootdrop/lpretrieval{ - pixel_x = 3; - pixel_y = 1 +/obj/item/clipboard{ + pixel_y = -2; + pixel_x = -7 }, -/turf/open/floor/plasteel/dark, +/obj/item/pen{ + pixel_x = -7; + pixel_y = -1 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "iH" = ( -/obj/structure/bed, -/obj/item/bedsheet/grey, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "SecCellWindowShutters"; + name = "Brig Cell Window Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/security) "iI" = ( /obj/structure/closet/emcloset/wall/directional/north, @@ -940,27 +1242,37 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"iS" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "iX" = ( /obj/effect/turf_decal/siding/yellow{ dir = 10 }, /obj/structure/ore_box, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "iZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "jb" = ( /obj/machinery/power/shuttle/engine/fueled/plasma{ @@ -968,30 +1280,61 @@ }, /turf/open/floor/plating, /area/ship/maintenance/port) +"jd" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CellHallShutters"; + name = "Holding Cell Hall Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/security) "ji" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/mopbucket, -/obj/item/mop, -/turf/open/floor/plasteel/white, +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "jj" = ( /obj/machinery/holopad/emergency, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "jk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "jr" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/engi, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/electrical{ + pixel_x = 3; + pixel_y = 7 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "js" = ( @@ -999,12 +1342,22 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/crew/cryo) "jt" = ( -/obj/machinery/autolathe, /obj/effect/turf_decal/techfloor{ dir = 1 }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/computer/atmos_control/external{ + dir = 4; + icon_state = "computer-right" + }, +/obj/machinery/light_switch{ + pixel_y = 23; + name = "External Lighting Switch"; + color = "#efbc43"; + pixel_x = 6 + }, /turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) +/area/ship/external/dark) "jv" = ( /obj/structure/closet/cabinet, /obj/item/clothing/shoes/jackboots, @@ -1016,29 +1369,43 @@ /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/under/rank/security/head_of_security/alt/lp, /obj/machinery/light/dim/directional/west, +/obj/item/storage/backpack/ert/security, /turf/open/floor/wood, /area/ship/security) "jA" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/port) "jC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ - dir = 8 +/obj/structure/bed, +/obj/item/bedsheet/nanotrasen, +/obj/item/toy/plush/moth/royal{ + pixel_x = 5; + pixel_y = 1 }, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) "jF" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "1-4" }, /obj/structure/cable{ icon_state = "1-10" }, -/obj/effect/turf_decal/siding/yellow{ - dir = 10 +/obj/structure/table/reinforced, +/obj/item/weldingtool{ + pixel_x = -6 }, -/turf/open/floor/plasteel/tech, +/obj/item/multitool, +/obj/item/t_scanner{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/stack/cable_coil/random, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "jH" = ( /obj/machinery/power/apc/auto_name/directional/north, @@ -1051,8 +1418,12 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) +"jQ" = ( +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) "jZ" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1063,38 +1434,87 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "kh" = ( /obj/machinery/light_switch{ dir = 1; pixel_x = 7; pixel_y = -20 }, -/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = -4 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, +/obj/machinery/computer/cryopod/directional/west, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "ks" = ( /obj/effect/decal/cleanable/cobweb, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/camera/autoname, /turf/open/floor/plating, /area/ship/maintenance/port) "kt" = ( -/obj/effect/turf_decal/borderfloorblack, -/turf/open/floor/plasteel/tech/airless, -/area/ship/engineering/communications) +/obj/machinery/light/dim/directional/south, +/obj/machinery/airalarm/directional/east, +/obj/structure/filingcabinet/double{ + dir = 1 + }, +/obj/item/folder/blue{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/folder/red{ + pixel_x = -4; + layer = 3.01; + pixel_y = -8 + }, +/obj/item/folder, +/obj/item/pen, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/pen{ + pixel_x = -4; + pixel_y = -6 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "kw" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + name = "Intelligence Core"; + id = "AiCore" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering/communications) "kK" = ( -/obj/structure/table/wood, -/obj/item/storage/box/cups, /obj/machinery/light/dim/directional/south, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/item/cutting_board, +/obj/item/reagent_containers/food/snacks/donkpocket/warm, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "kO" = ( /obj/structure/cable{ @@ -1103,8 +1523,9 @@ /obj/structure/cable{ icon_state = "2-5" }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "kQ" = ( /obj/structure/grille, @@ -1118,8 +1539,8 @@ /area/ship/engineering/communications) "kS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 +/obj/effect/turf_decal/siding/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1132,14 +1553,11 @@ dir = 4; railing_color = "#0C119E" }, -/obj/machinery/computer/cryopod/directional/south, +/obj/machinery/recharge_station, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "lj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, /obj/machinery/button/door{ dir = 4; pixel_x = -22; @@ -1147,10 +1565,14 @@ id = "Ranger_Cycler_Shutters"; name = "Air Cycler Shutters" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "lp" = ( /obj/machinery/button/door{ @@ -1158,7 +1580,10 @@ pixel_y = 6; pixel_x = 22; id = "Ranger_FireFighting_Shut"; - name = "Shutters" + name = "Ready Room"; + req_ship_access = 1; + req_one_access_txt = "50,10,5,1,20"; + req_one_access = list(50, 10, 5, 1, 20) }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 @@ -1166,89 +1591,98 @@ /obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner{ dir = 4 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "lv" = ( -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding{ + color = "#474747"; + dir = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "lw" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/closet/crate/large, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 9 + }, +/obj/structure/fluff/hedge/opaque, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "lB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "lD" = ( /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/camera/autoname{ - dir = 5 - }, /turf/open/floor/plasteel/stairs{ - dir = 1 + dir = 1; + color = "#a8b2b6" }, /area/ship/bridge) "lL" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, /obj/effect/turf_decal/siding/blue{ - dir = 1 + dir = 5 }, /turf/open/floor/plasteel/white, /area/ship/medical) "lU" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, /obj/machinery/light_switch{ dir = 4; pixel_x = -21; pixel_y = 7 }, +/obj/structure/crate_shelf, /turf/open/floor/plasteel/tech, /area/ship/cargo) "lW" = ( -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/wideband/directional/south, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "lX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow, -/obj/structure/railing{ - dir = 2; - layer = 4.1 +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 }, -/obj/effect/turf_decal/siding/yellow, /turf/open/floor/plasteel/tech, /area/ship/engineering) "mh" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/light/floor, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "ml" = ( /obj/structure/cable{ @@ -1259,46 +1693,46 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "mn" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/modular_computer/laptop/preset/civilian, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/item/computer_hardware/card_slot, +/obj/machinery/modular_computer/console/preset/research{ + name = "modular console" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "mv" = ( -/obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 8 }, -/mob/living/simple_animal/pet/dog/corgi/Lisa, -/obj/structure/bed/dogbed, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "mw" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "my" = ( -/obj/structure/urinal{ - pixel_y = 29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/plasteel/tech, +/area/ship/security) "mJ" = ( -/obj/machinery/portable_atmospherics/pump, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/light_switch{ dir = 4; @@ -1308,13 +1742,37 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire{ + dir = 1 + }, +/obj/structure/closet/crate/secure/gear{ + name = "Ammunition Crate" + }, +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm/rubbershot, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "mQ" = ( /obj/structure/cable{ icon_state = "2-4" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "nh" = ( @@ -1322,38 +1780,43 @@ dir = 1 }, /obj/effect/turf_decal/siding/red, -/obj/machinery/door/window/brigdoor{ - req_ship_access = 1; - req_access_txt = "1"; - id = "ranger_brig"; - name = "Holding Cell Door" +/obj/effect/turf_decal/siding/red{ + dir = 6 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "no" = ( /obj/structure/cable{ icon_state = "6-8" }, -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"nq" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "SecShutters"; + name = "Security Specialist's Office" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/security) "nA" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "nE" = ( /obj/machinery/button/door{ dir = 2; pixel_x = -2; - name = "Blast Doors"; + name = "Access Blast Doors"; id = "Ranger_AI_Core_Blasts"; - pixel_y = 22 + pixel_y = 22; + req_access_txt = "10" }, /obj/machinery/button/shieldwallgen{ dir = 2; @@ -1361,7 +1824,14 @@ pixel_y = 20; id = "AI_Core_Field_Engi" }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "nJ" = ( /obj/structure/cable/cyan{ @@ -1383,12 +1853,11 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "of" = ( -/obj/machinery/light/dim/directional/south, /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "og" = ( /obj/structure/railing{ @@ -1398,12 +1867,22 @@ dir = 8; icon_state = "computer-right" }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "oi" = ( -/obj/structure/railing/corner{ +/obj/effect/turf_decal/siding/blue{ dir = 8 }, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "ok" = ( @@ -1413,13 +1892,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/door/poddoor{ + dir = 4; + id = "Ranger_Cycler_Shutters"; + name = "Air Cycler Lockdown" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "oq" = ( /obj/structure/cable/cyan{ @@ -1428,16 +1917,38 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "or" = ( +/obj/item/bodypart/leg/right/robot, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/leg/left/robot, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/chest/robot, +/obj/item/bodypart/head/robot, +/obj/item/borg/upgrade/ai, +/obj/item/robot_suit, +/obj/structure/closet/crate/engineering{ + name = "Robotics Crate" + }, +/obj/item/stock_parts/cell/high, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/borg/upgrade/restart, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plating, /area/ship/engineering) "ox" = ( /obj/structure/chair/sofa/brown/corner/directional/south, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/obj/item/ammo_casing/spent{ + pixel_x = 13; + desc = "A spent bullet-casing that someone hid behind the couch, likely to avoid the Lieutenant's ire." + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "oz" = ( -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "oI" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -1446,37 +1957,33 @@ /obj/machinery/door/window/northleft{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Port_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" + }, /turf/open/floor/plating, /area/ship/maintenance/port) -"oM" = ( -/obj/machinery/door/window/eastleft{ - dir = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) "oQ" = ( /obj/item/radio/intercom/directional/west, +/obj/machinery/camera/autoname{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/medical) "pa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "pf" = ( /obj/structure/closet/emcloset/wall/directional/south, @@ -1484,39 +1991,72 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "pi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/structure/table/rolling, +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_y = 4 + }, +/obj/item/chair/plastic{ + pixel_y = 6 + }, +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "pn" = ( /obj/structure/chair/wood, /obj/item/toy/figure/assistant{ layer = 3.1 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/molten_object{ + pixel_x = 10 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "pp" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 13; - pixel_y = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/structure/mirror{ - pixel_x = 24 +/obj/structure/window/reinforced/tinted, +/obj/structure/dresser{ + dir = 1 + }, +/obj/structure/bedsheetbin/empty{ + pixel_y = 7 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 }, -/turf/open/floor/plastic, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "ps" = ( -/obj/structure/closet/secure_closet/lp/engineer, /obj/machinery/light/dim/directional/north, /obj/item/clothing/gloves/color/yellow{ pixel_y = -9 @@ -1551,10 +2091,19 @@ /obj/item/clothing/head/welding{ pixel_y = -9 }, -/obj/item/clothing/glasses/meson/gar{ - pixel_y = 8 +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/hud/diagnostic, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/obj/structure/closet/secure_closet/lp/engineer, /obj/item/gun/energy/plasmacutter, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -10 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "pA" = ( @@ -1562,56 +2111,68 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/stairs{ - dir = 1 + dir = 1; + color = "#a8b2b6" }, /area/ship/bridge) "pD" = ( +/obj/structure/closet/crate/secure/loot, /turf/open/floor/plasteel/tech, /area/ship/cargo) "pL" = ( /obj/structure/chair/comfy/blue/directional/east, -/obj/item/toy/plush/moth/royal, +/obj/item/toy/plush/moth/royal{ + layer = 3.05; + pixel_x = -6; + pixel_y = 11 + }, /obj/item/radio/intercom/wideband/directional/south, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/item/toy/plush/moth/lovers{ + layer = 3.05; + pixel_x = 4 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "pU" = ( /obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "qb" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/industrial/outline/blue, -/obj/structure/janitorialcart{ - dir = 4 - }, -/obj/item/mop, -/turf/open/floor/plating, +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "qe" = ( -/obj/structure/urinal{ - pixel_y = 29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/girder/reinforced, +/obj/machinery/camera/autoname{ dir = 6 }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) -"qs" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"qn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/corgi/Lisa, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) +"qs" = ( /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/power/shuttle/engine/electric/premium, /turf/open/floor/plating, /area/ship/maintenance/starboard) "qQ" = ( @@ -1621,10 +2182,6 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "qR" = ( -/obj/machinery/door/airlock/security/glass, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only{ @@ -1632,6 +2189,13 @@ }, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/corner/opaque/red/full, +/obj/machinery/door/airlock/security{ + name = "Security Specialist's Office"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/security) "qS" = ( @@ -1640,38 +2204,55 @@ }, /obj/effect/decal/cleanable/oil/streak, /obj/machinery/light/dim/directional/north, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/ship/maintenance/port) "qZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/machinery/holopad, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "rg" = ( -/obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "rq" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/stairs, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, /area/ship/crew/cryo) +"rw" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "rA" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/siding/yellow, -/obj/machinery/holopad, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"rC" = ( +/obj/structure/chair/office{ + dir = 8; + name = "tactical swivel chair" + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"rC" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -1693,31 +2274,31 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "rM" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "rT" = ( -/obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light_switch{ dir = 1; pixel_x = -7; pixel_y = -19 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "rW" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -1728,7 +2309,8 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -1736,21 +2318,20 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "rX" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 +/obj/structure/railing{ + dir = 5; + layer = 4.1 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/obj/structure/closet/firecloset/wall/directional/west, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "rZ" = ( /obj/effect/turf_decal/atmos/air, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 }, /turf/open/floor/engine/air, /area/ship/hallway/central) @@ -1763,13 +2344,28 @@ color = "#c1b6a5" }, /obj/machinery/fax/nanotrasen, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera/autoname{ + dir = 6 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/button/door{ + pixel_y = 21; + id = "BridgeAtrium"; + name = "Atrium Shutters"; + pixel_x = 9 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "sl" = ( -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "sm" = ( /obj/structure/cable{ @@ -1782,8 +2378,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) +"sp" = ( +/obj/machinery/camera/autoname, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "sw" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1794,10 +2396,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "sF" = ( -/obj/structure/table/greyscale, /obj/item/storage/box/syringes{ pixel_y = 10; pixel_x = -5 @@ -1813,28 +2414,51 @@ pixel_x = 5 }, /obj/machinery/light/dim/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/white, /area/ship/medical) "sJ" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/central) "sR" = ( -/obj/structure/table/wood, /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/siding/red/end, -/obj/item/toy/plush/spider, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/computer/security/telescreen{ + dir = 1; + pixel_y = -32; + network = list("ss13") + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "sU" = ( -/obj/structure/table/greyscale, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-10" +/obj/effect/turf_decal/industrial/warning{ + dir = 9 }, -/obj/effect/turf_decal/siding/blue{ - dir = 5 +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloorwhite/corner, +/obj/structure/sink{ + dir = 8; + pixel_x = 12; + pixel_y = 4 + }, +/obj/machinery/button/door{ + pixel_x = 26; + dir = 8; + name = "Medical Shutters"; + id = "MedShutters"; + req_ship_access = 1; + req_access_txt = "5" + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 25; + pixel_y = -9 }, -/obj/item/defibrillator/loaded, /turf/open/floor/plasteel/white, /area/ship/medical) "tb" = ( @@ -1865,20 +2489,20 @@ /obj/structure/cable{ icon_state = "4-10" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "tg" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/power/shuttle/engine/electric/premium, /turf/open/floor/plating, /area/ship/maintenance/port) "tj" = ( /obj/machinery/door/airlock/command{ - dir = 4 + dir = 4; + name = "Bridge"; + req_one_access_txt = list(50, 10, 5, 1, 20) }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1898,8 +2522,10 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "tk" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow, +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 6 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "tq" = ( @@ -1921,7 +2547,10 @@ dir = 8; icon_state = "computer-left" }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "tQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -1931,49 +2560,63 @@ /obj/effect/turf_decal/siding/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-6" +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/siding/red{ + dir = 5 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/light_switch{ + pixel_x = 20; + pixel_y = 11; + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/security) "tR" = ( /obj/structure/cable{ icon_state = "4-9" }, /obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "tT" = ( -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "tZ" = ( /obj/machinery/button/door{ dir = 4; pixel_x = -21; name = "Shutters"; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + req_ship_access = 1; + pixel_y = 5 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "uk" = ( -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/mask/breath, -/obj/structure/closet/emcloset/empty{ - name = "emergency EVA gear" - }, /obj/item/tank/internals/emergency_oxygen, /obj/effect/turf_decal/siding/yellow{ dir = 5 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "up" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/airalarm/directional/north, /obj/structure/cable{ icon_state = "2-4" @@ -1981,10 +2624,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/holopad, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 1 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -1993,7 +2637,20 @@ /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "ux" = ( /obj/machinery/light/dim/directional/south, @@ -2003,9 +2660,13 @@ name = "Nanotrasen relay"; network = "nt_commnet" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 10 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "uE" = ( /obj/structure/cable{ @@ -2014,22 +2675,25 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "uH" = ( -/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Port"; + id = "RangerPortShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "uW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2039,27 +2703,30 @@ dir = 4 }, /obj/effect/turf_decal/siding/blue, -/obj/machinery/iv_drip, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/ship/medical) "vh" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/machinery/door/window, +/obj/machinery/door/window{ + req_ship_access = 1; + name = "Surgical Compartment" + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "vj" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/camera/autoname{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "vk" = ( /obj/structure/sink{ @@ -2074,11 +2741,36 @@ pixel_x = -7; pixel_y = 21 }, -/turf/open/floor/plastic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/item/towel{ + pixel_x = 10; + pixel_y = 14 + }, +/obj/item/towel{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/structure/railing{ + dir = 1; + name = "towel holder" + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "vm" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/medical) +"vo" = ( +/obj/structure/crate_shelf, +/obj/structure/sign/nanotrasen/ns{ + pixel_x = 32 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) "vp" = ( /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 5 @@ -2086,47 +2778,76 @@ /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "vr" = ( /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine/air, /area/ship/hallway/central) "vv" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, /area/ship/maintenance/starboard) "vz" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/dim/directional/south, +/obj/structure/closet/crate/hydroponics{ + name = "Sustenance Crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/storage/ration/assorted_salted_offal, +/obj/item/storage/ration/battered_fish_sticks, +/obj/item/storage/ration/beef_goulash, +/obj/item/storage/ration/beef_strips, +/obj/item/storage/ration/fried_fish, +/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel/tech, /area/ship/cargo) "vB" = ( -/obj/machinery/cryopod, /obj/machinery/camera/autoname, +/obj/machinery/cryopod, /turf/open/floor/plasteel/telecomms_floor, /area/ship/crew/cryo) "vF" = ( -/obj/effect/turf_decal/siding/blue, -/obj/structure/closet/crate/freezer/blood, -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/survival_pod{ + dir = 4; + opacity = 1; + name = "Medical Specialist's Quarters"; + req_access_txt = "5"; + req_ship_access = 1 + }, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8 }, -/turf/open/floor/plasteel/white, /area/ship/medical) "vO" = ( -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "vR" = ( -/obj/machinery/light/dim/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, @@ -2136,15 +2857,16 @@ /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light/dim/directional/west, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "vS" = ( -/obj/structure/table/optable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/obj/effect/turf_decal/siding/blue, -/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "vT" = ( @@ -2166,20 +2888,23 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "vV" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/structure/window/reinforced/spawner{ - dir = 4 + dir = 8 }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/med, -/obj/item/clothing/mask/breath, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/siding/blue{ - dir = 5 +/obj/effect/turf_decal/borderfloorwhite{ + dir = 4 }, -/obj/item/tank/internals/emergency_oxygen, +/obj/machinery/computer/operating, /turf/open/floor/plasteel/white, /area/ship/medical) "wc" = ( @@ -2189,25 +2914,27 @@ /obj/machinery/door/window/northright{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Port_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" + }, +/turf/open/floor/plating, /area/ship/maintenance/port) "wf" = ( -/obj/machinery/telecomms/receiver/preset_right{ - autolinkers = list("receiverB","hub"); - freq_listening = list(1353,1447,1459); - network = "nt_commnet" - }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 12 }, -/area/ship/engineering/communications) +/obj/machinery/photocopier, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "wh" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 4; @@ -2224,57 +2951,66 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "wp" = ( -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/mask/breath, /obj/item/tank/internals/emergency_oxygen, -/obj/structure/closet/emcloset/empty{ - name = "emergency EVA gear" - }, /obj/effect/turf_decal/siding/yellow{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "wq" = ( /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "wu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) -"ww" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/turf_decal/siding/thinplating/dark, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/storage/equip) +"ww" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/chair/handrail, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "wC" = ( /obj/effect/turf_decal/steeldecal/steel_decals6, -/obj/effect/turf_decal/borderfloorblack{ - dir = 6 +/obj/machinery/telecomms/receiver/preset_right{ + autolinkers = list("receiverB","hub"); + freq_listening = list(1353,1447,1459); + network = "nt_commnet" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/circuit, /area/ship/engineering/communications) "wE" = ( /obj/machinery/button/door{ pixel_y = 21; name = "Blast Doors"; - id = "Ranger_Port_Blasts" + id = "Ranger_Port_Blasts"; + req_ship_access = 1 }, /obj/machinery/button/shieldwallgen{ pixel_y = 20; pixel_x = 8; id = "Ranger_Port_holofields" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "wT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2284,26 +3020,10 @@ dir = 4 }, /obj/effect/turf_decal/trimline/opaque/red/filled/corner, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "wU" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 19; - pixel_y = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow{ - dir = 6 - }, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plasteel/tech, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering) "xj" = ( /obj/structure/cable{ @@ -2315,27 +3035,48 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "xp" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/ship/medical) +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/lighter/greyscale{ + pixel_x = 8; + pixel_y = -8 + }, +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/pen/fourcolor{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "xq" = ( /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/engineering) "xv" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/crew/toilet) +/obj/structure/curtain/bounty, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plating/catwalk_floor, +/area/ship/security) "xw" = ( -/obj/structure/table/wood, /obj/machinery/microwave, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "xA" = ( /obj/structure/tank_dispenser/oxygen, @@ -2343,7 +3084,11 @@ /obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "xB" = ( /obj/structure/cable{ @@ -2361,38 +3106,40 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "xK" = ( /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/folder/blue{ - pixel_x = -6 - }, -/obj/item/folder/red{ - pixel_y = 2 - }, -/obj/item/folder{ - pixel_y = 5; - pixel_x = 7 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/item/binoculars, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "yi" = ( /obj/effect/turf_decal/industrial/warning, /obj/machinery/button/shieldwallgen{ dir = 8; pixel_x = 20; - pixel_y = -7; + pixel_y = 9; id = "AI_Core_Field_Engi" }, /obj/machinery/button/door{ dir = 8; pixel_x = 22; - name = "Blast Doors"; + name = "Access Blast Doors"; id = "Ranger_AI_Core_Blasts"; - pixel_y = 1 + pixel_y = 1; + req_access_txt = "10" }, /obj/structure/cable{ icon_state = "1-2" @@ -2402,17 +3149,34 @@ }, /turf/open/floor/plating, /area/ship/engineering) +"yk" = ( +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/ship/security) "ym" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "yo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "yA" = ( /obj/machinery/telecomms/hub{ @@ -2420,50 +3184,64 @@ id = "Nanotrasen Communications Hub"; autolinkers = list("hub","bus","relay","messaging","nanotrasen","broadcasterB","receiverB") }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "yC" = ( -/obj/structure/toilet{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" }, -/turf/open/floor/plastic, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/noslip, /area/ship/crew/toilet) -"yK" = ( -/obj/item/soap/nanotrasen, -/obj/structure/window/reinforced/tinted/frosted{ +"yG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/crew/toilet) +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"yK" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "yU" = ( /obj/structure/table/reinforced, -/obj/item/storage/belt/utility, -/obj/item/t_scanner{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/item/weldingtool{ - pixel_x = -6 +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/item/stack/cable_coil/random, -/obj/item/multitool, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "yZ" = ( -/obj/structure/reagent_dispensers/watertank, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ icon_state = "0-9" }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/machinery/suit_storage_unit/inherit{ + name = "Medical Specialist's Storage Unit" + }, +/obj/item/clothing/suit/space/hardsuit/ert/lp/med, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen, +/obj/effect/turf_decal/industrial/outline/blue, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "zc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, @@ -2473,7 +3251,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "zi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -2483,23 +3263,24 @@ dir = 1 }, /obj/machinery/door/airlock/public/glass, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "zB" = ( -/obj/machinery/camera/autoname{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/nsorange/line, +/obj/structure/railing/corner{ + dir = 8 }, -/obj/machinery/door/window{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/circuit/green/airless, -/area/ship/engineering/communications) +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) "zC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2510,60 +3291,111 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 8; - name = "Cargo Bay"; - id = "Ranger_Cargo_Door" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Cargo Bay"; + id = "Ranger_Cargo_Door" + }, +/obj/machinery/button/door{ + name = "Cargo Bay Shutters"; + id = "Ranger_Cargo_Door"; + pixel_y = 23; + req_ship_access = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "zF" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "zW" = ( /turf/template_noop, /area/template_noop) +"Ab" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/ship/security) "Ao" = ( /obj/structure/cable{ icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Av" = ( -/obj/structure/table/wood, /obj/item/toy/cards/deck{ pixel_x = -1; pixel_y = 10 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Aw" = ( /turf/open/floor/wood, /area/ship/medical) "AF" = ( /obj/structure/chair/comfy/shuttle{ - dir = 4 + dir = 4; + name = "Operations Monitoring" }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/button/door{ + pixel_y = 20; + pixel_x = -5; + name = "Starboard Corridor Shutters"; + id = "RangerStarboardShutters" + }, +/obj/machinery/button/door{ + pixel_y = 20; + pixel_x = 5; + name = "Port Corridor Shutters"; + id = "RangerPortShutters" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "AH" = ( -/obj/effect/turf_decal/borderfloorblack/corner{ - dir = 8 - }, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/button/door{ + dir = 4; + pixel_x = -26; + id = "AiCore"; + name = "Core Access"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "AP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2575,29 +3407,44 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "AT" = ( /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "AZ" = ( /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, /area/ship/security) "Be" = ( -/obj/structure/reagent_dispensers/fueltank, /obj/machinery/light/dim/directional/south, /obj/machinery/button/door{ dir = 4; id = "Ranger_FireFighting_Shut"; - name = "Shutters"; + name = "Ready Room"; pixel_x = -22; - pixel_y = 6 + pixel_y = 6; + req_one_access_txt = "50,10,5,1,20"; + req_ship_access = 1; + req_one_access = list(50, 10, 5, 1, 20) }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/item/clothing/suit/space/hardsuit/ert/lp/sec, +/obj/machinery/suit_storage_unit/inherit{ + name = "Security Specialist's Storage Unit" + }, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen/red, +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "Bg" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 8; @@ -2616,22 +3463,28 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "Bh" = ( -/turf/open/floor/plasteel/stairs/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/turf/open/floor/wood, /area/ship/engineering) "Bl" = ( -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 4 +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "Bo" = ( /obj/effect/turf_decal/steeldecal/steel_decals4, -/obj/effect/turf_decal/borderfloorblack{ - dir = 4 - }, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 }, @@ -2641,19 +3494,30 @@ /obj/effect/turf_decal/steeldecal/steel_decals6{ dir = 8 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "BA" = ( -/obj/machinery/shower{ +/obj/machinery/light/small/directional/east, +/obj/structure/toilet{ dir = 1 }, -/obj/structure/curtain, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "BI" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/plasteel/white, +/obj/machinery/door/airlock/wood{ + name = "Toilets"; + req_ship_access = 0 + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "BO" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -2662,38 +3526,37 @@ /obj/machinery/door/window/northleft{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_SB_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "BX" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/firecloset/wall/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "BY" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-9" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Ca" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" @@ -2704,7 +3567,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/effect/turf_decal/spline/fancy/opaque/orange/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -2717,7 +3583,9 @@ dir = 6 }, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/industrial/hatch/blue, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Cg" = ( /obj/structure/cable{ @@ -2727,47 +3595,50 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Cq" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/turf/open/floor/circuit/green/airless, +/obj/machinery/blackbox_recorder, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ct" = ( -/obj/structure/table/greyscale, /obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/siding/blue{ - dir = 6 +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/item/roller{ - pixel_x = 5; - pixel_y = 12 +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 10 }, -/obj/item/roller{ - pixel_x = -3; - pixel_y = 7 +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 8; + pixel_y = 2 }, /turf/open/floor/plasteel/white, /area/ship/medical) "CB" = ( -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 10 }, -/obj/effect/turf_decal/techfloor/hole/right, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "CD" = ( -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/machinery/computer/helm/viewscreen/directional/east, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "CG" = ( /obj/machinery/door/airlock/public/glass, @@ -2777,23 +3648,25 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "CI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, /area/ship/bridge) "CJ" = ( -/obj/machinery/atmospherics/components/binary/pump/layer2{ - dir = 8; - name = "Air Supply Pump" - }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/hallway/central) "CN" = ( @@ -2805,65 +3678,192 @@ /obj/structure/window/reinforced{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/engine/air, /area/ship/hallway/central) "CP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "Ranger_Cycler_Shutters"; + name = "Air Cycler Lockdown" + }, +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, +/area/ship/hallway/central) +"CW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/button/door{ + pixel_x = 21; + dir = 8; + pixel_y = 3; + name = "Cryogenics Access"; + id = "RangerCryoShutters" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "RangerCryoShutters"; + name = "Cryogenic Storage" + }, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, +/area/ship/crew/cryo) +"Dd" = ( +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Dr" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "AI_Core_Field_Engi"; + dir = 8 + }, +/obj/machinery/door/poddoor{ + dir = 2; + id = "Ranger_AI_Core_Blasts"; + name = "Communications Access" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/noslip, +/area/ship/engineering) +"Ds" = ( /obj/machinery/camera/autoname{ - dir = 10 + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) +"Dx" = ( +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/machinery/button/door{ + id = "SecureCell"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = 10; + specialfunctions = 4; + req_access_txt = "1"; + req_ship_access = 1; + name = "Cell Bolt Controls" + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/machinery/button/door{ + id = "SecShutters"; + name = "Privacy Shutters"; + layer = 2.92; + req_ship_access = 1; + req_access_txt = "1"; + pixel_x = -5; + pixel_y = 10 + }, +/obj/machinery/button/door{ + id = "CellHallShutters"; + name = "Cell Hall Shutters"; + req_access_txt = "1"; + req_ship_access = 1; + pixel_x = -5; + pixel_y = 2; + layer = 2.91 + }, +/obj/machinery/button/door{ + pixel_y = -6; + pixel_x = -5; + id = "SecCellWindowShutters"; + name = "Cell Window Shutters"; + req_access_txt = "1"; + req_ship_access = 1 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/ship/security) +"DE" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/recharger{ + dir = 4; + pixel_x = -8 + }, +/obj/machinery/cell_charger{ + dir = 4; + pixel_x = 5 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"Dd" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/industrial/outline/orange, -/turf/open/floor/plasteel/tech, -/area/ship/maintenance/starboard) -"Dr" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "AI_Core_Field_Engi"; - dir = 8 +/obj/structure/table/reinforced, +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = -9; + pixel_y = 13; + amount = 100 }, -/obj/machinery/door/poddoor{ - dir = 2; - id = "Ranger_AI_Core_Blasts" +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = 11; + pixel_y = 13; + amount = 100 }, -/obj/structure/cable, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = 5; + pixel_y = 13; + amount = 100 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Ds" = ( -/obj/machinery/camera/autoname{ - dir = 6 +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = -2; + pixel_y = 13; + amount = 100 }, -/obj/effect/turf_decal/borderfloorblack/corner, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 8 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 4 +/obj/item/stock_parts/cell/gun, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) +"DQ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/steeldecal/steel_decals6{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/turf/open/floor/plasteel/tech/airless, -/area/ship/engineering/communications) -"Dx" = ( -/turf/open/floor/plasteel/dark, -/area/ship/security) -"DE" = ( -/obj/item/storage/box/metalfoam, -/obj/item/watertank/atmos, -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/hallway/central) "DW" = ( /obj/structure/cable/cyan{ icon_state = "0-4" @@ -2876,23 +3876,41 @@ /area/ship/maintenance/starboard) "DZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/button/door{ - dir = 4; - pixel_x = -20; - name = "Cargo Bay Shutters"; - id = "Ranger_Cargo_Door"; - pixel_y = 1 - }, +/obj/structure/filingcabinet/double, /turf/open/floor/plasteel/tech, /area/ship/cargo) "Ek" = ( /obj/machinery/computer/telecomms/server, -/turf/open/floor/plasteel/dark, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) +"Ep" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "Eq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning, +/obj/effect/turf_decal/siding{ + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) +"EA" = ( +/obj/structure/crate_shelf, +/obj/machinery/light/dim/directional/west, /turf/open/floor/plasteel/tech, /area/ship/cargo) "EL" = ( @@ -2903,45 +3921,52 @@ /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "EP" = ( /obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ff" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Fg" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/trimline/opaque/nsorange/corner{ dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Fh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 +/obj/item/paper/crumpled, +/obj/item/paper/crumpled{ + pixel_x = 6; + pixel_y = -1 }, -/obj/machinery/door/airlock/external{ - dir = 4 +/obj/item/paper/crumpled{ + pixel_x = -10; + pixel_y = 6 }, -/obj/machinery/door/firedoor/border_only{ +/obj/item/paper/crumpled{ + pixel_y = -6; + pixel_x = -4 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) +"Fh" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" }, -/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Fw" = ( /obj/structure/cable{ @@ -2953,11 +3978,13 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/airlock/wood, +/obj/machinery/door/airlock/wood{ + name = "Restroom"; + req_ship_access = 0 + }, /turf/open/floor/plasteel/white, /area/ship/crew/toilet) "Fx" = ( -/obj/structure/table/wood, /obj/item/storage/box/matches{ pixel_y = 4 }, @@ -2969,7 +3996,13 @@ pixel_y = 2; pixel_x = -5 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "FB" = ( /obj/structure/cable{ @@ -2978,15 +4011,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering Sector" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 }, /turf/open/floor/plasteel/tech, /area/ship/engineering) @@ -3001,32 +4043,33 @@ dir = 4 }, /obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "Gc" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp, -/obj/item/clothing/under/rank/security/head_of_security/alt/lp, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/suit/jacket/leather/duster/command, -/obj/item/storage/backpack/messenger/com, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/storage/backpack/duffelbag/captain, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/ert/lp, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/emergency_oxygen/double, +/turf/open/floor/plasteel/tech, +/area/ship/crew/dorm/captain) "Ge" = ( /obj/structure/cable{ icon_state = "0-8" }, /obj/machinery/power/port_gen/pacman, -/obj/item/stack/sheet/mineral/plasma/twenty, /obj/effect/turf_decal/industrial/outline/orange, +/obj/item/stack/sheet/mineral/plasma/twenty, /turf/open/floor/plating, /area/ship/engineering) "Gh" = ( @@ -3036,24 +4079,20 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Gk" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/closet/emcloset/wall/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Gn" = ( /obj/structure/table/wood, @@ -3064,8 +4103,22 @@ /obj/item/toy/plush/moth/snow{ pixel_x = -3 }, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/item/flashlight/pen{ + pixel_x = -5; + pixel_y = -9 + }, /turf/open/floor/wood, /area/ship/medical) +"Gs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Gz" = ( /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 @@ -3076,22 +4129,29 @@ /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 4 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "GC" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal, +/obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced/spawner{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/siding/blue{ +/obj/structure/cable{ + icon_state = "6-8" + }, +/obj/effect/turf_decal/borderfloorwhite/corner{ dir = 4 }, /turf/open/floor/plasteel/white, /area/ship/medical) "GE" = ( -/obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, +/obj/structure/table/optable, +/obj/effect/turf_decal/borderfloorwhite/full, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 24 + }, +/turf/open/floor/noslip, /area/ship/medical) "GG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3103,50 +4163,54 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "GY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/effect/turf_decal/siding/wood, /obj/item/radio/intercom/directional/south, +/obj/item/bedsheet/orange, +/obj/structure/bed, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/open/floor/wood, /area/ship/engineering) "Ha" = ( -/obj/structure/closet/secure_closet/lp/lieutenant, -/obj/item/stock_parts/cell/gun, /obj/item/melee/classic_baton/telescopic, /obj/item/melee/knife/survival, /obj/item/gps, /obj/item/screwdriver, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, /obj/machinery/light_switch{ dir = 1; pixel_x = 7; pixel_y = -20 }, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm/rubbershot, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/storage/pistolcase/commander, /obj/item/storage/pistolcase/egun, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Hd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/shutters{ - id = "Engineering_Specialist_Shutters"; +/obj/item/megaphone/command, +/obj/structure/closet/secure_closet/lp/lieutenant, +/obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/dorm/captain) +"Hd" = ( +/obj/structure/grille, /obj/structure/cable{ icon_state = "5-8" }, /obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters{ + id = "Engineering_Specialist_Shutters"; + dir = 4; + name = "Communications Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "Hs" = ( @@ -3156,27 +4220,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange/full, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 5 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "Hy" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "HA" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ @@ -3193,6 +4255,7 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/ship/hallway/port) "HZ" = ( @@ -3207,10 +4270,30 @@ dir = 4; pixel_x = -21; name = "Shutters"; - id = "Ranger_Port_maint_shut" + id = "Ranger_Port_maint_shut"; + req_ship_access = 1 }, +/obj/effect/spawner/lootdrop/waste/trash, /turf/open/floor/plating, /area/ship/maintenance/port) +"Ih" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = 14; + pixel_y = 4 + }, +/obj/item/stack/medical/suture{ + amount = 1; + name = "bloody suture" + }, +/obj/item/melee/knife/kitchen{ + pixel_y = -12 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "Iy" = ( /obj/structure/table/wood, /obj/machinery/light/dim/directional/north, @@ -3229,6 +4312,10 @@ /obj/item/radio{ pixel_x = -2 }, +/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{ + pixel_x = 8; + pixel_y = 9 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "Iz" = ( @@ -3236,11 +4323,45 @@ /obj/structure/cable{ icon_state = "0-10" }, +/obj/structure/closet/secure_closet{ + icon_state = "qm"; + name = "Logistics Specialist's Locker"; + req_ship_access = 1; + req_one_access = list(50) + }, +/obj/item/clothing/suit/hooded/wintercoat/cargo{ + pixel_x = 14 + }, +/obj/item/clothing/shoes/sneakers/brown{ + pixel_x = -10; + pixel_y = -12 + }, +/obj/item/storage/backpack/satchel/leather{ + pixel_y = -6 + }, +/obj/item/clothing/under/nanotrasen/supply/qm, +/obj/item/gps{ + pixel_x = 11; + pixel_y = 9 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10; + pixel_y = 6 + }, /turf/open/floor/plasteel/tech, /area/ship/cargo) "IC" = ( /obj/effect/turf_decal/corner/opaque/orange/full, -/obj/machinery/door/airlock/engineering/glass, +/obj/machinery/door/airlock/engineering/glass{ + name = "Electrical Bay" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3250,18 +4371,28 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/tech, /area/ship/engineering) "IE" = ( /obj/machinery/light/floor, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "IM" = ( /obj/structure/chair/sofa/brown/directional/west, /obj/item/toy/plush/blahaj{ layer = 3.1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "IQ" = ( /obj/machinery/cryopod, @@ -3273,19 +4404,19 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Ji" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/sec, -/obj/item/clothing/mask/breath, -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/siding/red{ - dir = 5 +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/chair/handrail{ + dir = 4 }, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "Js" = ( /obj/machinery/holopad, @@ -3293,7 +4424,7 @@ dir = 8 }, /obj/effect/turf_decal/siding/red/corner, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Jw" = ( /obj/structure/cable/cyan{ @@ -3305,20 +4436,14 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "JK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_x = -25 - }, -/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/ship/engineering) "JO" = ( -/obj/machinery/door/airlock/command, +/obj/machinery/door/airlock/command{ + req_access_txt = "20"; + name = "Lieutenant's Quarters" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3327,7 +4452,7 @@ }, /obj/machinery/door/firedoor/border_only, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "JP" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3341,38 +4466,40 @@ /turf/open/floor/plating, /area/ship/engineering) "JR" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/cryo) "Kf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Kg" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering/communications) "Kj" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ dir = 8 }, /obj/effect/decal/cleanable/plasma, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "Kl" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Kt" = ( -/obj/machinery/holopad, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "Kw" = ( @@ -3381,18 +4508,17 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 5 }, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "KC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "KQ" = ( /obj/structure/closet, /obj/item/pickaxe, @@ -3405,7 +4531,11 @@ /obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "KX" = ( /obj/structure/cable{ @@ -3424,24 +4554,29 @@ /obj/effect/turf_decal/trimline/opaque/red/filled/corner{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Lg" = ( -/obj/structure/window/reinforced, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, /obj/effect/turf_decal/siding/red, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Lk" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/bridge) "Lt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/turf/open/floor/plastic, +/obj/machinery/airalarm/directional/west, +/obj/machinery/door/window{ + opacity = 1; + name = "Toilet" + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "Lu" = ( /obj/structure/cable{ @@ -3453,31 +4588,27 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Lw" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/engineering) +/obj/effect/turf_decal/industrial/outline/orange, +/obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) "LM" = ( /obj/machinery/telecomms/processor/preset_four{ autolinkers = list("processor4","bus"); network = "nt_commnet"; id = "Nanotrasen Communications Processor" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "LQ" = ( /obj/structure/cable{ @@ -3486,6 +4617,7 @@ /obj/effect/turf_decal/industrial/outline/orange, /obj/machinery/power/port_gen/pacman/super, /obj/item/stack/sheet/mineral/uranium/five, +/obj/effect/decal/cleanable/greenglow, /turf/open/floor/plating, /area/ship/engineering) "LU" = ( @@ -3494,39 +4626,46 @@ id = "Ranger_Bridge_Shutters" }, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/bridge) "LV" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/port) "Ma" = ( -/obj/structure/chair/wood, /obj/effect/turf_decal/siding/red{ dir = 4 }, /obj/effect/turf_decal/siding/red{ dir = 8 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Mc" = ( -/obj/structure/toilet{ +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/machinery/shower{ dir = 1 }, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plastic, +/obj/item/soap/nanotrasen, +/turf/open/floor/noslip, /area/ship/crew/toilet) "Md" = ( /obj/structure/AIcore, /obj/item/mmi/posibrain, /obj/item/circuitboard/aicore, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Mf" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/dorm) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/captain) "Mg" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3534,17 +4673,21 @@ /obj/structure/cable{ icon_state = "1-6" }, -/obj/effect/turf_decal/corner/opaque/orange/border{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "Mh" = ( /obj/machinery/computer/apc_control{ - dir = 4 + dir = 4; + icon_state = "computer-left" }, /obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/mono/dark, @@ -3553,12 +4696,16 @@ /obj/structure/cable{ icon_state = "5-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Mn" = ( -/obj/machinery/holopad, +/obj/machinery/holopad{ + pixel_x = 1; + pixel_y = 1 + }, /obj/effect/turf_decal/trimline/opaque/ntblue, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ms" = ( /obj/machinery/button/door{ @@ -3568,24 +4715,31 @@ dir = 1; pixel_x = 6 }, +/obj/effect/turf_decal/steeldecal/steel_decals4, /obj/effect/turf_decal/techfloor{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/steeldecal/steel_decals4, -/turf/open/floor/plasteel/dark, +/obj/machinery/door/window/survival_pod{ + dir = 8; + name = "Captain's Nest"; + req_one_access_txt = list(50, 10, 5, 1, 20) + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Mt" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -3608,32 +4762,32 @@ dir = 5 }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Mx" = ( /obj/machinery/light_switch{ dir = 8; pixel_x = 19; pixel_y = 8 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "Mz" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "1-2" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/siding/yellow{ - dir = 9 - }, /obj/machinery/button/door{ dir = 4; pixel_y = 6; pixel_x = -22; id = "Engineering_Specialist_Shutters"; - name = "Privacy Shutters" + name = "Comms Shutters" }, /obj/machinery/camera/autoname{ dir = 5 @@ -3644,12 +4798,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 9 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "MD" = ( -/obj/item/disk/design_disk/ammo_c9mm, -/turf/open/floor/plating, -/area/ship/engineering) +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "MI" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3658,33 +4824,55 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "MK" = ( -/obj/structure/table/reinforced, -/obj/item/aicard, -/obj/item/stack/sheet/rglass{ - amount = 25 +/obj/structure/sign/nanotrasen{ + pixel_x = 32 }, -/obj/item/wrench, -/obj/item/stack/cable_coil/cyan, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "ML" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/closet/crate/trashcart/laundry, -/turf/open/floor/plating, +/obj/item/clothing/under/nanotrasen, +/obj/item/clothing/under/nanotrasen, +/obj/item/clothing/shoes/sneakers/black{ + pixel_y = -10 + }, +/obj/item/clothing/shoes/sneakers/black{ + pixel_y = -10 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) +"MR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) "MW" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/computer/helm{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "MY" = ( /obj/effect/turf_decal/corner/opaque/ntblue/border{ @@ -3699,7 +4887,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Nd" = ( /obj/structure/cable{ @@ -3709,6 +4897,9 @@ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering) "Nf" = ( @@ -3719,74 +4910,81 @@ id = "Ranger_AI_Core_Ext_Blasts" }, /obj/machinery/light/dim/directional/south, -/turf/open/floor/circuit/green/airless, +/obj/machinery/telecomms/message_server/preset{ + autolinkers = list("messaging","hub"); + network = "nt_commnet"; + layer = 3.1 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Nn" = ( /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Nu" = ( /obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ny" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/item/clothing/head/beret/eng/hazard, -/obj/item/storage/backpack/satchel/eng, -/obj/item/storage/backpack/messenger/engi, -/obj/item/storage/backpack/industrial, -/obj/item/storage/backpack/duffelbag/engineering, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/item/clothing/under/rank/engineering/engineer/nt/lp, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp, +/obj/machinery/door/window/survival_pod{ + dir = 1; + opacity = 1; + req_one_access_txt = "10"; + name = "Engineering Specialist's Quarters" + }, /turf/open/floor/wood, /area/ship/engineering) "NC" = ( /obj/machinery/camera/autoname{ dir = 6 }, -/obj/machinery/light/floor, +/obj/machinery/light/floor{ + pixel_y = -9 + }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "NM" = ( /turf/open/floor/plasteel/stairs{ - dir = 4 + dir = 4; + color = "#a8b2b6" }, /area/ship/bridge) "NR" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "NS" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/structure/closet/crate/medical{ - name = "anesthetics crate" - }, -/obj/item/tank/internals/anesthetic, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical{ - pixel_x = 3 +/obj/structure/crate_shelf, +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/siding/blue{ + dir = 10 }, +/obj/machinery/iv_drip, /turf/open/floor/plasteel/white, /area/ship/medical) "NZ" = ( @@ -3796,24 +4994,61 @@ /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) +"Og" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/air_sensor/external, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Om" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/rank/medical/paramedic/skirt/lp, -/obj/item/clothing/under/rank/medical/paramedic/lp, -/obj/item/clothing/suit/hooded/wintercoat/medical, -/obj/item/clothing/head/beret/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/messenger/med, -/obj/item/storage/backpack/medic, -/obj/item/storage/backpack/duffelbag/med, -/turf/open/floor/wood, -/area/ship/medical) +/obj/effect/turf_decal/trimline/opaque/nsorange/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1; + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) "On" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/sprayweb, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 6 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_y = 16 + }, +/obj/item/paper_bin{ + pixel_x = 7; + pixel_y = -4 + }, +/obj/item/pen/fountain{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/toy/plush/moth/atlas{ + pixel_x = 9; + pixel_y = 16 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/item/paper/crumpled{ + pixel_y = -6; + pixel_x = -4 + }, +/obj/item/paper/crumpled/muddy{ + name = "coffee-stained paper scrap"; + pixel_x = -9; + pixel_y = 6 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "Ou" = ( /obj/structure/cable{ @@ -3823,10 +5058,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Ov" = ( /obj/machinery/light/dim/directional/east, @@ -3834,19 +5069,25 @@ autolinkers = list("broadcasterB","hub"); network = "nt_commnet" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ox" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) +/obj/item/gps/computer{ + pixel_x = 32; + pixel_y = 0; + density = 0 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "OC" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3855,44 +5096,39 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 - }, /obj/structure/cable{ icon_state = "0-6" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "OK" = ( -/obj/machinery/light_switch{ - pixel_x = -7; - pixel_y = 21 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, +/obj/machinery/autolathe, +/obj/item/disk/design_disk/ammo_c9mm, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/sheet/glass{ + amount = 10 }, -/obj/machinery/button/door{ - dir = 8; - pixel_x = 20; - name = "Cargo Bay Shutters"; - id = "Ranger_Cargo_Door"; - pixel_y = 1 +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "OP" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Pd" = ( -/obj/structure/table/reinforced, /obj/item/aiModule/core/freeformcore{ pixel_x = -2; pixel_y = 1 @@ -3905,12 +5141,12 @@ pixel_x = 4; pixel_y = -2 }, -/obj/item/aiModule/zeroth{ - pixel_x = -5; - pixel_y = -6 - }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ph" = ( /obj/effect/turf_decal/industrial/warning, @@ -3925,18 +5161,31 @@ /obj/effect/turf_decal/siding/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "Pr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"Pu" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating, +/area/ship/engineering) +"PB" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "PG" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3948,72 +5197,93 @@ dir = 4 }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "PR" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "PV" = ( /obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 3; - pixel_y = 7 - }, /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/stack/cable_coil/cut/red, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "Qf" = ( -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "Qt" = ( -/obj/item/bodypart/leg/right/robot, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/leg/left/robot, -/obj/item/bodypart/l_arm/robot, -/obj/item/bodypart/chest/robot, -/obj/item/bodypart/head/robot, -/obj/item/borg/upgrade/ai, -/obj/item/robot_suit, -/obj/structure/closet/crate/engineering, /obj/effect/turf_decal/industrial/hatch/orange, -/obj/item/stock_parts/cell/high, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/ship/engineering) "Qu" = ( /obj/machinery/door/firedoor/window, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "MedShutters"; + name = "Medical Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/medical) "QT" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/starboard) "QV" = ( /obj/machinery/light/dim/directional/west, +/obj/structure/chair/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4 + }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "Rn" = ( -/obj/machinery/portable_atmospherics/pump, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/structure/crate_shelf, +/obj/machinery/door/window/brigdoor/eastleft{ + dir = 2; + req_access_txt = "1"; + name = "Armory"; + req_ship_access = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "Ro" = ( /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, /obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "RA" = ( /obj/structure/closet/firecloset/wall/directional/south, @@ -4023,25 +5293,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "RB" = ( -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ - dir = 8 +/obj/machinery/camera/autoname{ + dir = 10 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/white, -/area/ship/hallway/port) +/turf/open/floor/engine/hull, +/area/ship/external/dark) "RM" = ( /obj/structure/chair/sofa/brown/left/directional/west, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "RS" = ( /obj/machinery/portable_atmospherics/canister/toxins, @@ -4057,13 +5327,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/blue, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Sl" = ( -/obj/machinery/light/dim/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/rack, +/obj/structure/closet/crate/secure/plasma{ + name = "Relay Parts Crate" + }, +/obj/item/storage/box/stockparts/basic, /obj/item/circuitboard/machine/telecomms/relay{ pixel_x = -5; pixel_y = 9 @@ -4076,6 +5347,15 @@ pixel_x = -5; pixel_y = 9 }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = -1 + }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = 3 + }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = 7 + }, /obj/item/stack/cable_coil/cyan{ pixel_x = 6 }, @@ -4121,6 +5401,9 @@ pixel_x = 7; pixel_y = 7 }, +/obj/structure/crate_shelf, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/light/dim/directional/east, /turf/open/floor/plating, /area/ship/engineering) "So" = ( @@ -4133,10 +5416,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding{ + color = "#474747"; + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) +"Sv" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "SC" = ( -/obj/structure/table/wood, /obj/item/storage/box/donkpockets{ pixel_x = -3 }, @@ -4148,32 +5445,36 @@ pixel_y = 9; pixel_x = 7 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "SE" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) +"SG" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plating/catwalk_floor, +/area/ship/security) "SN" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) -"SU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ship/hallway/central) "Tb" = ( -/turf/closed/wall/r_wall, -/area/ship/storage) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/equip) "Te" = ( /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "Tg" = ( /obj/structure/railing/corner{ dir = 4 @@ -4184,60 +5485,89 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "Tl" = ( -/obj/machinery/light/dim/directional/north, -/obj/machinery/light/floor, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) "Tz" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering) +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"TG" = ( +/obj/item/toy/plush/spider, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/plasteel/tech, +/area/ship/security) "TL" = ( -/obj/structure/closet/crate, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 5 + }, +/obj/item/bedsheet/qm, +/obj/structure/bed, +/obj/structure/curtain/bounty, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "TR" = ( -/obj/structure/table/wood, /obj/machinery/light/dim/directional/north, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "TZ" = ( -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/structure/chair/handrail{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Ua" = ( /obj/machinery/camera/autoname{ dir = 9 }, -/turf/open/floor/circuit/green/airless, +/obj/machinery/button/door{ + dir = 8; + pixel_x = 26; + id = "AiCore"; + name = "Core Access"; + req_access_txt = "20"; + pixel_y = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Uj" = ( /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/paper_bin{ - pixel_y = 8; - pixel_x = 5 - }, -/obj/item/pen/fountain{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/machinery/recharger{ - pixel_x = -4 +/obj/effect/turf_decal/techfloor{ + dir = 5 }, -/obj/item/stamp/captain{ - pixel_x = 7 +/obj/effect/spawner/lootdrop/lpaid{ + pixel_x = 2; + pixel_y = -2 }, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/lootdrop/lpretrieval{ + pixel_x = -10; + pixel_y = 10 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Ur" = ( /obj/structure/cable{ @@ -4246,36 +5576,38 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/structure/chair/handrail{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Us" = ( /obj/effect/turf_decal/siding/red{ dir = 9 }, -/obj/machinery/door_timer{ - pixel_y = 28; - id = "ranger_brig" +/obj/structure/closet/crate/bin, +/obj/machinery/camera/autoname{ + dir = 4 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Ut" = ( /obj/structure/urinal{ pixel_y = 29 }, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "UQ" = ( /turf/open/floor/engine/air, /area/ship/hallway/central) "UU" = ( -/obj/machinery/door/airlock/public/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -4283,31 +5615,31 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Port"; + id = "RangerPortShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "UW" = ( /obj/structure/cable/cyan{ icon_state = "6-9" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "Vg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Cycler_Shutters" +/obj/machinery/camera/autoname{ + dir = 10 }, -/turf/open/floor/plating, -/area/ship/hallway/central) +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Vh" = ( /obj/structure/cable{ icon_state = "2-4" @@ -4319,21 +5651,14 @@ dir = 1 }, /obj/effect/turf_decal/trimline/opaque/red/filled/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Vk" = ( -/obj/structure/bed, -/obj/item/bedsheet/nanotrasen, -/obj/machinery/firealarm/directional/north, -/obj/item/toy/plush/moth/royal{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Vm" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8 @@ -4341,12 +5666,13 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Vp" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/starboard) "Vq" = ( -/obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/industrial/outline/orange, /obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Vt" = ( @@ -4355,16 +5681,27 @@ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/space_heater, +/obj/structure/railing, /turf/open/floor/plating, /area/ship/maintenance/port) "VC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/stairs, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, /area/ship/crew/cryo) -"VJ" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4 +"VE" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + name = "Bridge-Atrium Shutters"; + id = "BridgeAtrium" }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/bridge) +"VJ" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -4374,39 +5711,52 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/solgovgold/border{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) "VM" = ( /obj/effect/turf_decal/industrial/outline/blue, -/obj/item/storage/box/lights/mixed{ - pixel_x = -4; - pixel_y = 6 +/obj/machinery/washing_machine, +/obj/structure/railing{ + dir = 8 }, -/obj/item/storage/box/mousetraps{ - pixel_y = -1; - pixel_x = 3 +/obj/item/toy/plush/tali{ + pixel_y = 14 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "VP" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/newscaster/security_unit/directional/south, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" }, -/obj/structure/closet, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security) "VQ" = ( /obj/machinery/camera/autoname{ dir = 5 }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) +"We" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "Wj" = ( /obj/structure/bed, /obj/item/radio/intercom/directional/south, @@ -4416,7 +5766,8 @@ "Wp" = ( /obj/machinery/door/poddoor{ dir = 2; - id = "Ranger_AI_Core_Blasts" + id = "Ranger_AI_Core_Blasts"; + name = "Communications Access" }, /obj/machinery/power/shieldwallgen/atmos/roundstart{ id = "AI_Core_Field_Engi"; @@ -4429,7 +5780,7 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plating, +/turf/open/floor/noslip, /area/ship/engineering) "Wr" = ( /obj/structure/cable{ @@ -4438,10 +5789,10 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Wv" = ( /obj/structure/chair/sofa/brown/right/directional/south, @@ -4452,12 +5803,28 @@ pixel_x = -7; pixel_y = 21 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) +"Wz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "WF" = ( -/obj/item/radio/intercom/wideband, -/turf/closed/wall/r_wall, -/area/ship/bridge) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/engineering/communications) "WG" = ( /obj/machinery/telecomms/server/presets/nanotrasen{ autolinkers = list("nanotrasen","hub"); @@ -4465,20 +5832,23 @@ freq_listening = list(1353,1447,1459) }, /obj/item/disk/holodisk/lp/stations, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "WR" = ( -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "WZ" = ( /obj/machinery/computer/telecomms/server{ - dir = 4 + dir = 4; + icon_state = "computer-middle" }, /obj/machinery/light/dim/directional/west, /turf/open/floor/plasteel/mono/dark, @@ -4486,44 +5856,84 @@ "Xb" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/structure/window/reinforced/spawner, -/obj/structure/closet, +/obj/structure/closet/wall/med/directional/east{ + name = "Anesthetics Closet" + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = -2 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 1 + }, +/obj/structure/table/chem, +/obj/structure/sink/chem{ + pixel_x = 2; + pixel_y = 3 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "Xt" = ( -/obj/machinery/space_heater, /obj/machinery/light/dim/directional/south, /obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/machinery/suit_storage_unit/inherit{ + name = "Engineering Specialist's Storage Unit" + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/hardsuit/ert/lp/engi, +/obj/item/tank/internals/oxygen/yellow, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "XA" = ( /obj/structure/cable{ icon_state = "1-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable{ + icon_state = "5-10" + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "XE" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-5" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "XH" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/closet/wall/directional/south, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "XL" = ( -/obj/machinery/door/airlock/public/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -4531,10 +5941,18 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Starboard"; + id = "RangerStarboardShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "XQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -4546,7 +5964,7 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "XR" = ( /obj/machinery/door/airlock/public/glass, @@ -4557,20 +5975,27 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "XS" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/structure/table/greyscale, /obj/machinery/light/dim/directional/east, -/obj/item/toy/plush/moth/ragged, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/item/toy/plush/moth/ragged{ + pixel_y = 11 + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 8 + }, +/obj/structure/table/chem, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/white, /area/ship/medical) "XT" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo) "XV" = ( /obj/machinery/camera/autoname{ @@ -4582,24 +6007,30 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Yk" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning, +/obj/effect/turf_decal/siding{ + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "Yw" = ( -/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Starboard"; + id = "RangerStarboardShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Yy" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ @@ -4619,33 +6050,47 @@ /turf/open/floor/plasteel, /area/ship/hallway/port) "Yz" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/siding/red{ - dir = 6 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-9" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/door/airlock/security/brig{ + dir = 8; + id_tag = "SecureCell"; + name = "Holding Cell"; + req_access_txt = "1" + }, +/turf/open/floor/plating, /area/ship/security) "YJ" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ancient/lp, -/obj/item/clothing/mask/breath, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) -"YK" = ( -/obj/machinery/light_switch{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/obj/structure/table/reinforced, +/obj/item/screwdriver{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/item/hand_labeler{ pixel_x = 8; - pixel_y = 22 + pixel_y = 13 }, -/turf/open/floor/plasteel/stairs/wood{ +/obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) +"YK" = ( +/obj/machinery/firealarm/directional/north{ + pixel_x = -4 + }, +/obj/structure/table/reinforced, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/white, /area/ship/medical) "YP" = ( /obj/structure/cable{ @@ -4663,21 +6108,29 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "YW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/camera/autoname{ dir = 4 }, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Zj" = ( /obj/machinery/atmospherics/components/unary/shuttle/heater{ @@ -4688,22 +6141,33 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_Port_maint_shut" + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/port) "Zk" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 4 - }, /obj/machinery/advanced_airlock_controller{ pixel_y = 24 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/clothing/suit/space/fragile, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "Zl" = ( -/obj/machinery/portable_atmospherics/canister, /obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Zs" = ( @@ -4717,70 +6181,113 @@ /obj/structure/cable{ icon_state = "1-6" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/port) +"Zu" = ( +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Zv" = ( /obj/machinery/firealarm/directional/west, +/obj/machinery/camera/autoname{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/security) "Zw" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Zx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "ZF" = ( /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "ZI" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, -/turf/open/floor/plasteel/white, +/obj/structure/chair/handrail{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "ZJ" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "ZL" = ( /obj/machinery/vending/coffee, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "ZS" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/structure/closet/syndicate{ + desc = "It's the armory closet. A closet with shelving, in an armory!" + }, +/obj/machinery/door/window/brigdoor/eastright{ + dir = 2; + req_access_txt = "1"; + name = "Armory"; + req_ship_access = 1 + }, +/obj/item/storage/pistolcase/commander, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/storage/pistolcase, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "ZW" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "ZY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/chair/handrail{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) (1,1,1) = {" @@ -4795,6 +6302,7 @@ tg tg LV zW +yK zW zW zW @@ -4808,8 +6316,7 @@ zW zW zW zW -zW -zW +yK zW QT qs @@ -4937,8 +6444,8 @@ zW zW zW LV -Zl -Vq +ci +hp aW UW hl @@ -4962,7 +6469,7 @@ qQ gD ib eN -RS +Lw Dd QT zW @@ -5045,10 +6552,10 @@ zW (8,1,1) = {" zW zW -zW +hN vm -xp -Aw +vm +cj oQ tq LV @@ -5060,9 +6567,9 @@ zW zW Kg Pd -vO +Ox IE -vO +Ep Nf Kg zW @@ -5077,7 +6584,7 @@ Zv AZ Wj fV -zW +sp "} (9,1,1) = {" zW @@ -5086,7 +6593,7 @@ vm vm YK aO -Om +Aw Gn LV vT @@ -5094,7 +6601,7 @@ LV LV zW zW -wq +yK Kg MK Ua @@ -5102,7 +6609,7 @@ vO Nn Cq Kg -wq +yK zW zW QT @@ -5130,14 +6637,14 @@ zc jA zW zW -Tz -Tz +wU +wU Kg Kg Kg kw gk -zB +Kg Kg Kg Kg @@ -5146,7 +6653,7 @@ zW Vp cN vR -fV +nq Us Js Ma @@ -5165,25 +6672,25 @@ Qu Cb NR jA -zW -Tz -Tz +qe +wU +wU jt WZ Mh -Tz +wU nE -fU -kt +WF +Kg LM bX Kg Kg -zW +fo Vp Ff wT -fV +nq gi Lg bN @@ -5203,10 +6710,10 @@ XQ PR jA zW -Tz +wU LQ -MD aP +Pu xq Wp Gz @@ -5224,7 +6731,7 @@ qR tQ nh Dx -Dx +yk fV "} (13,1,1) = {" @@ -5240,7 +6747,7 @@ cR pU jA zW -Tz +wU gN dr rC @@ -5249,7 +6756,7 @@ Dr ZJ fU Mx -tT +MD tT ux Kg @@ -5258,9 +6765,9 @@ Vp TR KX fV -Ji +fV Yz -hf +iH iH fV "} @@ -5277,15 +6784,15 @@ bf tR jA zW -Tz +wU Ge or JP -Tz -Tz +wU +wU hK Hd -Tz +wU Ds Bo WG @@ -5294,11 +6801,11 @@ zW Vp bD iD -fV -fV -fV -fV -fV +dm +hf +Ab +Ji +SG fV "} (15,1,1) = {" @@ -5314,8 +6821,8 @@ jH uE jA zW -Tz -Tz +wU +wU Sl Nd IC @@ -5332,11 +6839,11 @@ Vp yo Cg of -gg -Ut -BI +jd +TG +my xv -gg +fV "} (16,1,1) = {" zW @@ -5352,15 +6859,15 @@ Kf jA zW zW -Tz -Tz +wU +wU Qt -Tz +wU Ca rA yU -dP -wf +wU +Kg Kg Kg zW @@ -5370,7 +6877,7 @@ pi iZ ji gg -am +gg gg gg gg @@ -5382,24 +6889,24 @@ JR Iy ym VC -VC +CW EL ml -jA +Tz jA zW zW -zW -Tz -Tz -Tz +Vg +wU +wU +wU up hn aG -Tz +df Kg Kg -zW +sp zW zW Vp @@ -5407,8 +6914,8 @@ Vp MI zF gg -my -fo +Ut +BI BA gg "} @@ -5428,13 +6935,13 @@ zW zW zW zW -Tz +wU jr Mt lX Ny JK -Tz +wU zW zW zW @@ -5444,9 +6951,9 @@ Vp dK ZI gg -qe -oM -yK +am +gg +gg gg "} (19,1,1) = {" @@ -5456,7 +6963,7 @@ JR tb mQ rq -rq +gr Zs pf jA @@ -5465,13 +6972,13 @@ zW zW zW zW -Tz +wU ps Hs tk Bh GY -Tz +wU zW zW zW @@ -5501,15 +7008,15 @@ jA zW zW zW -Tz -Tz -eo +wU +wU +wU FB wU -hZ -Lw -Tz -Tz +wU +wU +wU +wU zW zW zW @@ -5539,13 +7046,13 @@ sJ sJ sJ sJ -sJ -sJ +We +hZ VJ -sJ -sJ -sJ -sJ +rX +Sv +Kl +eo sJ sJ sJ @@ -5565,7 +7072,7 @@ zW zW zW QV -jA +gd KQ wp oz @@ -5576,13 +7083,13 @@ gW ZY CG mw -rX +MR vj fd -Ox +yG BX Gk -Kl +bK mw zi lj @@ -5593,19 +7100,19 @@ nA Mm uk xA -Vp -QV +jQ +ww zW "} (23,1,1) = {" zW zW zW -wq +Gs HA TZ -RB -oz +Zu +dN pa kO UU @@ -5613,7 +7120,7 @@ PG Gh XR OP -OP +DQ OP OP BY @@ -5652,14 +7159,14 @@ sJ Wv Fx fy -bu +PB pn Av tf -bu +iS rT sJ -Vg +sJ ok sJ OK @@ -5674,8 +7181,8 @@ zW (25,1,1) = {" zW zW -zW -hN +ef +Og jA Po iX @@ -5690,10 +7197,10 @@ ox IM RM Mn -bu +iv bu AP -bu +Ih kK sJ Zk @@ -5709,7 +7216,7 @@ hz zW "} (26,1,1) = {" -ef +zW zW zW zW @@ -5740,7 +7247,7 @@ DZ So Eq lU -cj +EA XT zW zW @@ -5758,14 +7265,14 @@ jZ Be Tb sJ -SU +sJ Mf Gc Ha Lk -Lk -Lk -Lk +VE +VE +VE tj Lk sJ @@ -5775,8 +7282,8 @@ CP XT Iz lv +Yk pD -ww vz XT zW @@ -5795,8 +7302,8 @@ wu yZ Tb NC -jC Mf +jC mv Ao JO @@ -5804,17 +7311,17 @@ pA lD hF ec +wf Lk -Te -wq -zW -zW +Wz +dx +RB XT lw -pD +Om Yk -hp gL +vo XT zW zW @@ -5832,8 +7339,8 @@ Qf Xt Tb zW -zW Mf +Mu Vk NZ Lk @@ -5841,15 +7348,15 @@ sf iF XA Sa +xp Lk wq zW zW -zW XT TL -pD -pD +Fg +zB eE XT XT @@ -5869,18 +7376,18 @@ YJ Tb Tb zW -zW Mf -Mu +Mf +qn hx Lk AF vp CI dC +kt Lk -zW -zW +wq zW zW XT @@ -5909,14 +7416,14 @@ zW zW Mf Mf -Fg +Mf Lk tK og NM ff Lk -zW +Lk zW zW zW @@ -5982,14 +7489,14 @@ zW zW zW zW -wq +VQ wq Lk mn cv lW -WF -VQ +Lk +rw zW zW zW diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index e69aa1de47ca..a8f5bc22c7f4 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -472,7 +472,7 @@ /turf/open/floor/plasteel/white, /area/ship/medical) "dZ" = ( -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = -29 }, /obj/structure/catwalk/over/plated_catwalk/dark, @@ -2621,11 +2621,11 @@ /obj/effect/turf_decal/corner/opaque/white/mono, /obj/structure/table/reinforced, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -2; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 6; pixel_x = -8 }, @@ -4971,11 +4971,11 @@ /obj/effect/turf_decal/corner/opaque/neutral/half{ dir = 1 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 6; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -2; pixel_y = 11 }, @@ -5142,12 +5142,12 @@ /obj/structure/closet/secure_closet/freezer{ anchored = 1 }, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /obj/effect/turf_decal/corner/opaque/green/mono, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm index eb5211a95ac9..0c740842e5d9 100644 --- a/_maps/shuttles/pgf/pgf_crying_sun.dmm +++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm @@ -2584,11 +2584,11 @@ pixel_x = 9; pixel_y = -5 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 10; pixel_x = -6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 10 }, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm index b1bf098571c0..46d00806edd7 100644 --- a/_maps/shuttles/pirate/pirate_libertatia.dmm +++ b/_maps/shuttles/pirate/pirate_libertatia.dmm @@ -299,7 +299,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 32 }, /turf/open/floor/pod/light, diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm index e8af1166a200..bacabd6cc23c 100644 --- a/_maps/shuttles/solgov/solgov_chronicle.dmm +++ b/_maps/shuttles/solgov/solgov_chronicle.dmm @@ -2476,8 +2476,8 @@ color = "#543C30"; dir = 4 }, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, /turf/open/floor/wood/mahogany, /area/ship/crew) "zh" = ( @@ -2528,10 +2528,10 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, /obj/structure/closet/crate/secure/gear{ desc = "For emergency use only"; name = "emergency sauerkraut supplies"; diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm index 5d2c0fbe0ccc..27427f9bbfa2 100644 --- a/_maps/shuttles/solgov/solgov_inkwell.dmm +++ b/_maps/shuttles/solgov/solgov_inkwell.dmm @@ -3343,10 +3343,10 @@ /obj/structure/table/wood, /obj/item/cutting_board, /obj/item/melee/knife/kitchen, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -17 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -10; pixel_y = 6 }, @@ -3950,17 +3950,17 @@ /area/ship/crew/dorm/dormtwo) "yE" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /turf/open/floor/wood/walnut, /area/ship/crew/canteen/kitchen) "yG" = ( @@ -7366,10 +7366,10 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, /obj/structure/closet/crate/secure/gear{ desc = "For emergency use only"; name = "emergency sauerkraut supplies"; diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm index ef642488ef50..9cfda7a14c0d 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -3538,11 +3538,11 @@ pixel_x = -7; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 10; pixel_y = 10 }, @@ -4004,17 +4004,17 @@ /turf/open/floor/carpet/royalblue, /area/ship/crew/office) "ML" = ( -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/enzyme, /obj/structure/closet/secure_closet/freezer{ anchored = 1; name = "refrigerator" diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 2b4cfd484e98..c466f5351f9c 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -2048,7 +2048,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 8; pixel_x = 27 }, diff --git a/_maps/shuttles/syndicate/syndicate_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm index 71526c69198f..3d26ff6512b5 100644 --- a/_maps/shuttles/syndicate/syndicate_panacea.dmm +++ b/_maps/shuttles/syndicate/syndicate_panacea.dmm @@ -6496,15 +6496,15 @@ /area/ship/crew/dorm/dormtwo) "LY" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -2; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 14; pixel_x = 14 }, @@ -6798,15 +6798,15 @@ /area/ship/crew/office) "Nz" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = 2; pixel_y = 15 }, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_x = 11; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/hotsauce{ +/obj/item/reagent_containers/condiment/hotsauce{ pixel_y = 16; pixel_x = -8 }, diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index ca7bd7705efd..29f4bc28922b 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -2993,18 +2993,18 @@ "qP" = ( /obj/machinery/light/directional/north, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, /obj/item/storage/box/ingredients/carnivore, /obj/item/storage/box/ingredients/vegetarian, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, /obj/effect/spawner/lootdrop/donkpockets, /obj/effect/spawner/lootdrop/donkpockets, /turf/open/floor/carpet/red, @@ -3500,7 +3500,7 @@ pixel_y = 4 }, /obj/item/storage/toolbox/electrical, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = -32; dir = 1 }, diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index dd4f6645a518..570483a06a1d 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -187,11 +187,11 @@ /area/survivalpod) "F" = ( /obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 4 }, diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 22e69cd06d9f..2870e31eff97 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -281,6 +281,8 @@ #define ATMOS_GAS_MONITOR_WASTE_ENGINE "engine-waste_out" #define ATMOS_GAS_MONITOR_WASTE_ATMOS "atmos-waste_out" +#define GAS_MONITOR_SENSOR_EXTERNAL "GAS_MONITOR_SENSOR_EXTERNAL" + //AIRLOCK CONTROLLER TAGS //RnD toxins burn chamber diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index aa530ada845a..6fc80cf98207 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -730,3 +730,9 @@ ///sent when the access on an id is changed/updated, ensures wallets get updated once ids generate there access #define COSMIG_ACCESS_UPDATED "acces_updated" + +// Point of interest signals +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi) +#define COMSIG_ADDED_POINT_OF_INTEREST "added_point_of_interest" +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi) +#define COMSIG_REMOVED_POINT_OF_INTEREST "removed_point_of_interest" diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm new file mode 100644 index 000000000000..957bb6083674 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -0,0 +1,59 @@ +// Atom reagent signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +//#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" + /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] + //#define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +//#define COMSIG_ATOM_AFTER_EXPOSE_REAGENTS "atom_after_expose_reagents" +///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) +//#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" +///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" +///from base of [/datum/reagent/proc/expose_atom]: (/obj, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" +///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents. +//#define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" +///from base of [/datum/reagent/proc/expose_atom]: (/turf, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" + +///from base of [/datum/materials_controller/proc/InitializeMaterial]: (/datum/material) +//#define COMSIG_MATERIALS_INIT_MAT "SSmaterials_init_mat" + +///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left) +//#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn" + +///from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react) +//#define COMSIG_REAGENTS_PRE_ADD_REAGENT "reagents_pre_add_reagent" + /// Prevents the reagent from being added. + //#define COMPONENT_CANCEL_REAGENT_ADD (1<<0) +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_NEW_REAGENT "reagents_new_reagent" +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_ADD_REAGENT "reagents_add_reagent" +///from base of [/datum/reagents/proc/del_reagent]: (/datum/reagent) +#define COMSIG_REAGENTS_DEL_REAGENT "reagents_del_reagent" +///from base of [/datum/reagents/proc/remove_reagent]: (/datum/reagent, amount) +#define COMSIG_REAGENTS_REM_REAGENT "reagents_rem_reagent" +///from base of [/datum/reagents/proc/clear_reagents]: () +#define COMSIG_REAGENTS_CLEAR_REAGENTS "reagents_clear_reagents" +///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp) +//#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change" +///from base of [/datum/reagents/proc/handle_reactions]: (num_reactions) +//#define COMSIG_REAGENTS_REACTED "reagents_reacted" +///from base of [/datum/reagents/proc/process]: (num_reactions) +//#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" +///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom" +///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" +///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) +//#define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" +///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" +/// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to) +//#define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to" +/// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from) +//#define COMSIG_REAGENTS_CUP_TRANSFER_FROM "reagents_cup_transfer_from" diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 921b45c1fc27..781fc13ab672 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -303,6 +303,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_TELEPORT "no-teleport" //you just can't /// A transforming item that is actively extended / transformed #define TRAIT_TRANSFORM_ACTIVE "active_transform" +#define TRAIT_WIELDED "wielded" //The item is currently being wielded //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 435b83e29797..b231b4e944c9 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -87,6 +87,42 @@ };\ } while(FALSE) + +/** + * Custom binary search sorted insert utilising comparison procs instead of vars. + * INPUT: Object to be inserted + * LIST: List to insert object into + * TYPECONT: The typepath of the contents of the list + * COMPARE: The object to compare against, usualy the same as INPUT + * COMPARISON: The plaintext name of a proc on INPUT that takes a single argument to accept a single element from LIST and returns a positive, negative or zero number to perform a comparison. + * COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE. + */ +#define BINARY_INSERT_PROC_COMPARE(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ + do {\ + var/list/__BIN_LIST = LIST;\ + var/__BIN_CTTL = length(__BIN_LIST);\ + if(!__BIN_CTTL) {\ + __BIN_LIST += INPUT;\ + } else {\ + var/__BIN_LEFT = 1;\ + var/__BIN_RIGHT = __BIN_CTTL;\ + var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + var ##TYPECONT/__BIN_ITEM;\ + while(__BIN_LEFT < __BIN_RIGHT) {\ + __BIN_ITEM = COMPTYPE;\ + if(__BIN_ITEM.##COMPARISON(COMPARE) <= 0) {\ + __BIN_LEFT = __BIN_MID + 1;\ + } else {\ + __BIN_RIGHT = __BIN_MID;\ + };\ + __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + };\ + __BIN_ITEM = COMPTYPE;\ + __BIN_MID = __BIN_ITEM.##COMPARISON(COMPARE) > 0 ? __BIN_MID : __BIN_MID + 1;\ + __BIN_LIST.Insert(__BIN_MID, INPUT);\ + };\ + } while(FALSE) + //Returns a list in plain english as a string /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = length(input) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 97740a79537e..01fd964120ea 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -116,7 +116,7 @@ SSblackbox.record_feedback("associative", "antagonists", 1, antag_info) /datum/controller/subsystem/ticker/proc/record_nuke_disk_location() - var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/N = locate() in SSpoints_of_interest.other_points_of_interest if(N) var/list/data = list() var/turf/T = get_turf(N) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 36764c6bae9f..7bd6f72771cc 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -294,65 +294,6 @@ Turf and target are separate in case you want to teleport some distance from a t /proc/ionnum() return "[pick("!","@","#","$","%","^","&")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]" -//Returns a list of all items of interest with their name -/proc/getpois(mobs_only = FALSE, skip_mindless = FALSE, specify_dead_role = TRUE) - var/list/mobs = sortmobs() - var/list/namecounts = list() - var/list/pois = list() - for(var/mob/M in mobs) - if(skip_mindless && (!M.mind && !M.ckey)) - if(!isbot(M) && !iscameramob(M) && !ismegafauna(M)) - continue - if(M.client && M.client.holder && M.client.holder.fakekey) //stealthmins - continue - var/name = avoid_assoc_duplicate_keys(M.name, namecounts) + M.get_realname_string() - - if(M.stat == DEAD && specify_dead_role) - if(isobserver(M)) - name += " \[ghost\]" - else - name += " \[dead\]" - pois[name] = M - - if(!mobs_only) - for(var/atom/A in GLOB.poi_list) - if(!A || !A.loc) - continue - pois[avoid_assoc_duplicate_keys(A.name, namecounts)] = A - - return pois -//Orders mobs by type then by name -/proc/sortmobs() - var/list/moblist = list() - var/list/sortmob = sortNames(GLOB.mob_list) - for(var/mob/living/silicon/ai/M in sortmob) - moblist.Add(M) - for(var/mob/camera/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/pai/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/robot/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/human/M in sortmob) - moblist.Add(M) - for(var/mob/living/brain/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/alien/M in sortmob) - moblist.Add(M) - for(var/mob/dead/observer/M in sortmob) - moblist.Add(M) - for(var/mob/dead/new_player/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/monkey/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/slime/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/true_devil/M in sortmob) - moblist.Add(M) - return moblist - // Format a power value in W, kW, MW, or GW. /proc/DisplayPower(powerused) if(powerused < 1000) //Less than a kW @@ -384,7 +325,7 @@ Turf and target are separate in case you want to teleport some distance from a t /proc/get_mob_by_ckey(key) if(!key) return - var/list/mobs = sortmobs() + var/list/mobs = SSpoints_of_interest.get_mob_pois() for(var/mob/M in mobs) if(M.ckey == key) return M @@ -739,7 +680,7 @@ GLOBAL_LIST_INIT(WALLITEMS, typecacheof(list( /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, /obj/item/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, - /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment, + /obj/structure/mirror, /obj/structure/cabinet, /obj/machinery/computer/security/telescreen/entertainment, /obj/structure/sign/picture_frame, /obj/machinery/bounty_board ))) diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 7ee53ec1f37b..6d08f1d1bceb 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -46,8 +46,6 @@ GLOBAL_LIST_EMPTY(apcs_list) GLOBAL_LIST_EMPTY(tracked_implants) /// List of implants the prisoner console can track and send inject commands too GLOBAL_LIST_EMPTY(tracked_chem_implants) -/// List of points of interest for observe/follow -GLOBAL_LIST_EMPTY(poi_list) /// List of all pinpointers. Used to change stuff they are pointing to all at once. GLOBAL_LIST_EMPTY(pinpointer_list) /// List of all zombie_infection organs, for any mass "animation" diff --git a/code/controllers/subsystem/points_of_interest.dm b/code/controllers/subsystem/points_of_interest.dm new file mode 100644 index 000000000000..6de327bc8666 --- /dev/null +++ b/code/controllers/subsystem/points_of_interest.dm @@ -0,0 +1,227 @@ +/// Subsystem for managing all POIs. +SUBSYSTEM_DEF(points_of_interest) + name = "Points of Interest" + + flags = SS_NO_FIRE | SS_NO_INIT + + /// List of mob POIs. This list is automatically sorted. + var/list/datum/point_of_interest/mob_poi/mob_points_of_interest = list() + /// List of non-mob POIs. This list is automatically sorted. + var/list/datum/point_of_interest/other_points_of_interest = list() + /// List of all value:POI datums by their key:target refs. + var/list/datum/point_of_interest/points_of_interest_by_target_ref = list() + +/** + * Turns new_poi into a new point of interest by adding the /datum/element/point_of_interest element to it. + */ +/datum/controller/subsystem/points_of_interest/proc/make_point_of_interest(atom/new_poi) + new_poi.AddElement(/datum/element/point_of_interest) + +/** + * Stops old_poi from being a point of interest by removing the /datum/element/point_of_interest element from it. + */ +/datum/controller/subsystem/points_of_interest/proc/remove_point_of_interest(atom/old_poi) + old_poi.RemoveElement(/datum/element/point_of_interest) + +/** + * Called by [/datum/element/point_of_interest] when it gets removed from old_poi. + */ +/datum/controller/subsystem/points_of_interest/proc/on_poi_element_added(atom/new_poi) + var/datum/point_of_interest/new_poi_datum + if(ismob(new_poi)) + new_poi_datum = new /datum/point_of_interest/mob_poi(new_poi) + BINARY_INSERT_PROC_COMPARE(new_poi_datum, mob_points_of_interest, /datum/point_of_interest/mob_poi, new_poi_datum, compare_to, COMPARE_KEY) + points_of_interest_by_target_ref[REF(new_poi)] = new_poi_datum + else + new_poi_datum = new /datum/point_of_interest(new_poi) + BINARY_INSERT_PROC_COMPARE(new_poi_datum, other_points_of_interest, /datum/point_of_interest, new_poi_datum, compare_to, COMPARE_KEY) + points_of_interest_by_target_ref[REF(new_poi)] = new_poi_datum + + + SEND_SIGNAL(src, COMSIG_ADDED_POINT_OF_INTEREST, new_poi) + +/** + * Called by [/datum/element/point_of_interest] when it gets removed from old_poi. + */ +/datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed(atom/old_poi) + var/poi_ref = REF(old_poi) + var/datum/point_of_interest/poi_to_remove = points_of_interest_by_target_ref[poi_ref] + + if(!poi_to_remove) + return + + if(ismob(old_poi)) + mob_points_of_interest -= poi_to_remove + else + other_points_of_interest -= poi_to_remove + + points_of_interest_by_target_ref -= poi_ref + + poi_to_remove.target = null + + SEND_SIGNAL(src, COMSIG_REMOVED_POINT_OF_INTEREST, old_poi) + +/** + * If there is a valid POI for a given reference, it returns that POI's associated atom. Otherwise, it returns null. + */ +/datum/controller/subsystem/points_of_interest/proc/get_poi_atom_by_ref(reference) + return points_of_interest_by_target_ref[reference]?.target + +/** + * Returns a list of mob POIs with names as keys and mobs as values. + * + * If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to + * tag them as Mob Name (1), Mob Name (2), Mob Name (3) etc. + * + * Arguments: + * * poi_validation_override - [OPTIONAL] Callback to a proc that takes a single argument for the POI and returns TRUE if this POI should be included. Overrides standard POI validation. + * * append_dead_role - [OPTIONAL] If TRUE, adds a ghost tag to the end of observer names and a dead tag to the end of any other mob which is not alive. + */ +/datum/controller/subsystem/points_of_interest/proc/get_mob_pois(datum/callback/poi_validation_override = null, append_dead_role = TRUE) + var/list/pois = list() + var/list/used_name_list = list() + + for(var/datum/point_of_interest/mob_poi/mob_poi as anything in mob_points_of_interest) + if(poi_validation_override) + if(!poi_validation_override.Invoke(mob_poi)) + continue + else if(!mob_poi.validate()) + continue + + var/mob/target_mob = mob_poi.target + var/name = avoid_assoc_duplicate_keys(target_mob.name, used_name_list) + target_mob.get_realname_string() + + // Add the ghost/dead tag to the end of dead mob POIs. + if(append_dead_role && target_mob.stat == DEAD) + if(isobserver(target_mob)) + name += " \[ghost\]" + else + name += " \[dead\]" + + pois[name] = target_mob + + return pois + +/** + * Returns a list of non-mob POIs with names as keys and atoms as values. + * + * If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to + * tag them as Object Name (1), Object Name (2), Object Name (3) etc. + * + * Arguments: + * * poi_validation_override - [OPTIONAL] Callback to a proc that takes a single argument for the POI and returns TRUE if this POI should be included. Overrides standard POI validation. + */ +/datum/controller/subsystem/points_of_interest/proc/get_other_pois(datum/callback/poi_validation_override = null) + var/list/pois = list() + var/list/used_name_list = list() + + for(var/datum/point_of_interest/other_poi as anything in other_points_of_interest) + if(poi_validation_override) + if(!poi_validation_override.Invoke(other_poi)) + continue + else if(!other_poi.validate()) + continue + + var/atom/target_poi = other_poi.target + + pois[avoid_assoc_duplicate_keys(target_poi.name, used_name_list)] = target_poi + + return pois + +/// Returns TRUE if potential_poi has an associated poi_datum that validates. +/datum/controller/subsystem/points_of_interest/proc/is_valid_poi(atom/potential_poi, datum/callback/poi_validation_override = null) + var/datum/point_of_interest/poi_datum = points_of_interest_by_target_ref[REF(potential_poi)] + + if(!poi_datum) + return FALSE + + if(poi_validation_override) + return poi_validation_override.Invoke(poi_datum) + + return poi_datum.validate() + +/// Simple helper datum for points of interest. +/datum/point_of_interest + /// The specific point of interest this datum references. This won't hard del as the POI element will be removed from the target when it qdels, which will clear this reference. + var/atom/target + /// The type of POI this datum references. + var/poi_type = /atom + +/datum/point_of_interest/New(poi_target) + if(!istype(poi_target, poi_type)) + CRASH("Incorrect target type provided to /datum/point_of_interest/New: Expected \[[poi_type]\]") + + target = poi_target + +/// Validates the POI. Returns TRUE if the POI has valid state, returns FALSE if the POI has invalid state. +/datum/point_of_interest/proc/validate() + // In nullspace, invalid as a POI. + if(!target.loc) + return FALSE + + return TRUE + +/// Comparison proc used to sort POIs. Override to implement logic used doing binary sort insertions. +/datum/point_of_interest/proc/compare_to(datum/point_of_interest/rhs) + return cmp_name_asc(target, rhs.target) + +/datum/point_of_interest/mob_poi + poi_type = /mob + +/// Validation for mobs is expanded to invalidate stealthmins and /mob/dead/new_player as POIs. +/datum/point_of_interest/mob_poi/validate() + . = ..() + + if(!.) + return + + var/mob/poi_mob = target + + // Stealthmin, invalid as a POI. + if(poi_mob.client?.holder?.fakekey) + return FALSE + + /* + // POI is a /mob/dead/new_player, players in the lobby are invalid as POIs. + if(isnewplayer(poi_mob)) + return FALSE + */ + + return TRUE + +/// Mob POIs are sorted by a simple priority list depending on their type. When their type priority is identical, they're sub-sorted by name. +/datum/point_of_interest/mob_poi/compare_to(datum/point_of_interest/mob_poi/rhs) + var/sort_difference = get_type_sort_priority() - rhs.get_type_sort_priority() + + // If they're equal in priority, call parent to sort by name. + if(sort_difference == 0) + return ..() + // Else sort by priority. + else + return sort_difference + +/// Priority list broadly stolen from /proc/sortmobs(). Lower numbers are higher priorities when sorted and appear closer to the top or start of lists. +/datum/point_of_interest/mob_poi/proc/get_type_sort_priority() + if(isAI(target)) + return 0 + if(iscameramob(target)) + return 1 + if(ispAI(target)) + return 2 + if(iscyborg(target)) + return 3 + if(ishuman(target)) + return 4 + if(isbrain(target)) + return 5 + if(isalien(target)) + return 6 + if(isobserver(target)) + return 7 + if(isnewplayer(target)) + return 8 + if(isslime(target)) + return 9 + if(isanimal(target)) + return 10 + return 11 diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index d76504787b04..6c15d00869f2 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -204,6 +204,11 @@ else // Many other things have registered here lookup[sig_type][src] = TRUE +/// Registers multiple signals to the same proc. +/datum/proc/RegisterSignals(datum/target, list/signal_types, proctype, override = FALSE) + for (var/signal_type in signal_types) + RegisterSignal(target, signal_type, proctype, override) + /** * Stop listening to a given signal from target * diff --git a/code/datums/components/melee/twohanded.dm b/code/datums/components/melee/twohanded.dm index 51c9268d13ab..5ba0a368c637 100644 --- a/code/datums/components/melee/twohanded.dm +++ b/code/datums/components/melee/twohanded.dm @@ -4,6 +4,7 @@ * When applied to an item it will make it two handed * */ + /datum/component/two_handed dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item var/wielded = FALSE /// Are we holding the two handed item properly @@ -145,6 +146,7 @@ if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) return // blocked wield from item wielded = TRUE + ADD_TRAIT(parent, TRAIT_WIELDED, REF(src)) RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, PROC_REF(on_swap_hands)) // update item stats and name @@ -188,6 +190,7 @@ // wield update status wielded = FALSE + REMOVE_TRAIT(parent, TRAIT_WIELDED, REF(src)) UnregisterSignal(user, COMSIG_MOB_SWAP_HANDS) SEND_SIGNAL(parent, COMSIG_TWOHANDED_UNWIELD, user) @@ -303,7 +306,7 @@ sharpened_increase = min(amount, (max_amount - wielded_val)) return COMPONENT_BLOCK_SHARPEN_APPLIED -/** +/* * The offhand dummy item for two handed items * */ diff --git a/code/datums/elements/point_of_interest.dm b/code/datums/elements/point_of_interest.dm new file mode 100644 index 000000000000..d64ee5466ace --- /dev/null +++ b/code/datums/elements/point_of_interest.dm @@ -0,0 +1,22 @@ +/// Designates the atom as a "point of interest", meaning it can be directly orbited +/datum/element/point_of_interest + element_flags = ELEMENT_DETACH + +/datum/element/point_of_interest/Attach(datum/target) + if (!isatom(target)) + return ELEMENT_INCOMPATIBLE + + /* + // New players are abstract mobs assigned to people who are still in the lobby screen. + // As a result, they are not a valid POI and should never be a valid POI. If they + // somehow get this element attached to them, there's something we need to debug. + if(isnewplayer(target)) + return ELEMENT_INCOMPATIBLE + */ + + SSpoints_of_interest.on_poi_element_added(target) + return ..() + +/datum/element/point_of_interest/Detach(datum/target) + SSpoints_of_interest.on_poi_element_removed(target) + return ..() diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 4afa13dee07c..f94d75bd71f9 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -12,15 +12,6 @@ suffix = "lavaland_surface_biodome_winter.dmm" ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_SHELTER) -/datum/map_template/ruin/lavaland/elephant_graveyard - name = "Elephant Graveyard" - id = "Graveyard" - description = "An abandoned graveyard, calling to those unable to continue." - suffix = "lavaland_surface_elephant_graveyard.dmm" - allow_duplicates = FALSE - cost = 10 - ruin_tags = list(RUIN_TAG_NO_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_HAZARDOUS, RUIN_TAG_INHOSPITABLE) - /datum/map_template/ruin/lavaland/buried_shrine name = "Buried Shrine" id = "buried_shrine" diff --git a/code/datums/ruins/wasteplanet.dm b/code/datums/ruins/wasteplanet.dm index 40c6d19cfd5e..a4a054a7f1a2 100644 --- a/code/datums/ruins/wasteplanet.dm +++ b/code/datums/ruins/wasteplanet.dm @@ -31,3 +31,10 @@ id = "abandoned_mechbay" suffix = "wasteplanet_abandoned_mechbay.dmm" ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) + +/datum/map_template/ruin/wasteplanet/yard + name = "Abandoned Miskilamo salvage yard" + description = "An abandonded shipbreaking yard." + id = "wasteplanet_yard" + suffix = "wasteplanet_yard.dmm" + ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index 9e7e4b334ddc..01709a00c1a1 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -53,7 +53,7 @@ if(!spawnerlist.len) return var/obj/effect/mob_spawn/MS = pick(spawnerlist) - if(!istype(MS) || !(MS in GLOB.poi_list)) + if(!istype(MS) || !(MS in SSpoints_of_interest.other_points_of_interest)) return switch(action) if("jump") diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 6bb9ca1200c8..e504bfee31d5 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -109,7 +109,7 @@ if("Janitor") heirloom_type = pick(/obj/item/mop, /obj/item/clothing/suit/caution, /obj/item/reagent_containers/glass/bucket, /obj/item/paper/fluff/stations/soap) if("Cook") - heirloom_type = pick(/obj/item/reagent_containers/food/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) + heirloom_type = pick(/obj/item/reagent_containers/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) if("Botanist") heirloom_type = pick(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/toy/plush/beeplushie) if("Bartender") diff --git a/code/game/MapData/shuttles/nanotrasen_ranger.dm b/code/game/MapData/shuttles/nanotrasen_ranger.dm index 40f7816c2eb0..08f1a7c670d2 100644 --- a/code/game/MapData/shuttles/nanotrasen_ranger.dm +++ b/code/game/MapData/shuttles/nanotrasen_ranger.dm @@ -158,7 +158,7 @@ icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" hardsuit_type = "ert_medical" - clothing_flags = SCAN_REAGENTS + clothing_flags = SCAN_REAGENTS | STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS /obj/item/clothing/head/helmet/space/hardsuit/lp name = "RIG heatsuit helmet" @@ -170,7 +170,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/lp name = "RIG heat suit" - desc = "A fully heat resistance suit based on an early RIG hardsuit prototype. It sacrifices armor of any kind for intricate heatsinks. It remains rather bulky as a result." + desc = "A fully heat-resistant suit based on an early RIG hardsuit prototype. It sacrifices armor of any kind for intricate heatsinks. It remains rather bulky as a result." armor = list("melee" = 5, "bullet" = 5, "laser" = 1, "energy" = 1, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lp heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -179,114 +179,6 @@ //holotapes -/obj/item/disk/holodisk/lp/combat/syndicate1 - name = "Combat Mission Eliminate Force" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to kill or otherwise subdue the primary fighting force. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate2 - name = "Combat Mission Capture" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to subdue and capture one of the armed members of the crew. They should be stripped of gear, interrogated, and converted to NT if possible. If not possible, release them to whatever ship they belonged to or will accept them. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate3 - name = "Combat Mission Capture Commander" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to eliminate whatever leader or captain of such vession and bring their body back in a bodybag. The Medical Specialist has been given a box of them for such an occasion. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate4 - name = "Combat Mission Secret Documents" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to retrieve a set of secret documents from the syndicate vessel. This will likely require a boarding operation. Good luck. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/megafauna - name = "Combat Mission Megafauna" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is very simple. The LP is to seek out a megafauna specimen and slay it. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/bdm - name = "Combat Mission Blood Drunk" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is straightforward. The LP team is to seek out two blood drunk mines and termninate them. Bring back whatever weapons they wield and recover the bodies for the vault. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/tumor - name = "Combat Mission Tumor" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is rather straightforward. Seak out 2 pulsing tumors and elimate the threat they produce. Return the body of the threat to the vault. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/bloodred - name = "Combat Mission Blood Red" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission overlaps with the retrieval missions. The LP is simply to obtain a Blood Red Hardsuit. This may include responding to a hostile syndicate vessel to take it by force. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/retrieval/supersuit - name = "Retrieval Mission Lost Hardsuit" - desc = "A holodisk containing a retrieval mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a retrieval objective. The LP will need to obtain or create something. - DELAY 25 - SAY This one is a bit difficult but completing it is extremely rewarding. Our sources show that two of our experimental hardsuits have been lost to the necropolis. Retrieve a Champion's Hardsuit or an Inquisitor's Hardsuit. These are often found in necropolis chests or held by certain megafauna. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/retrieval/phazon name = "Retrieval Mission Secret Exosuit" desc = "A holodisk containing a retrieval mission for the LP." @@ -323,18 +215,6 @@ DELAY 25 "} -/obj/item/disk/holodisk/lp/retrieval/artifact - name = "Retrieval Mission Artifact" - desc = "A holodisk containing a retrieval mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a retrieval objective. The LP will need to obtain or create something. - DELAY 25 - SAY For this mission the LP is to find three artifacts. These include but are not limited to, anything stored in a necropolis chest, most megafauna loot, anything befitting someone magical or otherwise special. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/retrieval/materials name = "Retrieval Mission Materials" desc = "A holodisk containing a retrieval mission for the LP." @@ -347,18 +227,6 @@ DELAY 25 "} -/obj/item/disk/holodisk/lp/aid/recruits - name = "Aid Mission Recruitment Drive" - desc = "A holodisk containing an aid mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around an aid objective. The LP will need to provide aid to local vessels not hostile or syndicate. - DELAY 25 - SAY Less providing aid and more networking. The LP will need to convince 4 independent vessels to switch to NTSV flight tags. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/aid/repairs name = "Aid Mission Repair" desc = "A holodisk containing an aid mission for the LP." @@ -372,7 +240,7 @@ "} /obj/item/disk/holodisk/lp/aid/rescue - name = "Aid Mission Rescure" + name = "Aid Mission Rescue" desc = "A holodisk containing an aid mission for the LP." preset_image_type = /datum/preset_holoimage/commissioner preset_record_text = {" @@ -415,33 +283,14 @@ //lootdrop -/obj/effect/spawner/lootdrop/lpcombat - name = "LP Combat Missions" - lootdoubles = FALSE - - loot = list( - /obj/item/disk/holodisk/lp/combat/syndicate1 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate2 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate3 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate4 = 1, - /obj/item/disk/holodisk/lp/combat/megafauna = 5, - /obj/item/disk/holodisk/lp/combat/bdm = 5, - /obj/item/disk/holodisk/lp/combat/tumor = 5, - /obj/item/disk/holodisk/lp/combat/bloodred = 5 - ) - - lootcount = 2 - /obj/effect/spawner/lootdrop/lpretrieval name = "LP Retrieval Missions" lootdoubles = FALSE loot = list( - /obj/item/disk/holodisk/lp/retrieval/supersuit = 1, /obj/item/disk/holodisk/lp/retrieval/phazon = 1, /obj/item/disk/holodisk/lp/retrieval/durand = 1, /obj/item/disk/holodisk/lp/retrieval/gunstock = 1, - /obj/item/disk/holodisk/lp/retrieval/artifact = 1, /obj/item/disk/holodisk/lp/retrieval/materials = 1 ) @@ -452,11 +301,10 @@ lootdoubles = FALSE loot = list( - /obj/item/disk/holodisk/lp/aid/recruits = 1, /obj/item/disk/holodisk/lp/aid/repairs = 1, /obj/item/disk/holodisk/lp/aid/rescue = 1, /obj/item/disk/holodisk/lp/aid/guard = 1, ) - lootcount = 2 + lootcount = 4 diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 317fd67a67b8..298f996ea43d 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -27,17 +27,6 @@ name = "Hierophant's Arena" icon_state = "dk_yellow" - -//Elephant Graveyard - -/area/ruin/unpowered/elephant_graveyard - name = "Elephant Graveyard" - icon_state = "dk_yellow" - -/area/ruin/powered/graveyard_shuttle - name = "Elephant Graveyard" - icon_state = "green" - //Lava Canyon /area/ruin/unpowered/scorched_hut diff --git a/code/game/area/areas/ruins/wasteplanet.dm b/code/game/area/areas/ruins/wasteplanet.dm index e80cb364c3ea..5f069d3e055b 100644 --- a/code/game/area/areas/ruins/wasteplanet.dm +++ b/code/game/area/areas/ruins/wasteplanet.dm @@ -43,3 +43,25 @@ /area/ruin/wasteplanet/wasteplanet_radiation/containment name = "Abandoned Waste Containment Vault" icon_state = "disposal" + +//Abandonded shipbreaking yard + +/area/ruin/wasteplanet/wasteplanet_shipbreaking + name = "Abandoned Shipbreaking Yard" + icon_state = "green" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay + name = "Miskilamo Shipbreaking Yard Bay" + icon_state = "engine" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen + name = "Miskilamo Shipbreaking Yard Canteen" + icon_state = "hallC" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms + name = "Miskilamo Shipbreaking Yard Dormatory" + icon_state = "bridge" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship + name = "Abandoned Shipbreaking Yard" + icon_state = "red" diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm index 81fb4d20d124..54d74fc9538a 100644 --- a/code/game/area/ship_areas.dm +++ b/code/game/area/ship_areas.dm @@ -474,6 +474,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "EVA Storage" icon_state = "eva" +/area/ship/storage/equip + name = "Equipment Room" + /// External Areas /// /area/ship/external name = "External" diff --git a/code/game/atom/atom_orbit.dm b/code/game/atom/atom_orbit.dm new file mode 100644 index 000000000000..2294293bd8b7 --- /dev/null +++ b/code/game/atom/atom_orbit.dm @@ -0,0 +1,33 @@ +/atom + ///Reference to atom being orbited + var/atom/orbit_target + ///The orbiter component, if there's anything orbiting this atom + var/datum/component/orbiter/orbiters + +/** + * Recursive getter method to return a list of all ghosts orbitting this atom + * + * This will work fine without manually passing arguments. + * * processed - The list of atoms we've already convered + * * source - Is this the atom for who we're counting up all the orbiters? + * * ignored_stealthed_admins - If TRUE, don't count admins who are stealthmoded and orbiting this + */ +/atom/proc/get_all_orbiters(list/processed, source = TRUE, ignore_stealthed_admins = TRUE) + var/list/output = list() + if(!processed) + processed = list() + else if(src in processed) + return output + + if(!source) + output += src + + processed += src + for(var/atom/atom_orbiter as anything in orbiters?.orbiters) + output += atom_orbiter.get_all_orbiters(processed, source = FALSE) + return output + +/mob/get_all_orbiters(list/processed, source = TRUE, ignore_stealthed_admins = TRUE) + if(!source && ignore_stealthed_admins && client?.holder?.fakekey) + return list() + return ..() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index f52b9bdace9e..b96e8a53c824 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -75,9 +75,6 @@ ///Economy cost of item in premium vendor var/custom_premium_price - //List of datums orbiting this atom - var/datum/component/orbiter/orbiters - /// Radiation insulation types var/rad_insulation = RAD_NO_INSULATION @@ -154,8 +151,6 @@ /// The current connector overlay appearance. Saved so that it can be cut when necessary. var/connector_overlay - ///Reference to atom being orbited - var/atom/orbit_target ///Default X pixel offset var/base_pixel_x ///Default Y pixel offset diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index c3895f302279..83d7a32d1fd9 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -56,7 +56,7 @@ if(isliving(wizard.current) && wizard.current.stat!=DEAD) return FALSE - for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead() + for(var/obj/item/phylactery/P in SSpoints_of_interest.other_points_of_interest) //TODO : IsProperlyDead() if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard)) return FALSE diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 81d2860473c7..6e8b1b447cf2 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -42,6 +42,9 @@ /obj/machinery/air_sensor/atmos/incinerator_tank name = "incinerator chamber gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_INCINERATOR +/obj/machinery/air_sensor/external + name = "external atmosphere sensor" + id_tag = GAS_MONITOR_SENSOR_EXTERNAL /obj/machinery/air_sensor/update_icon_state() icon_state = "gsensor[on]" @@ -306,7 +309,11 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) icon_state = "computer-solgov" deconpath = /obj/structure/frame/computer/solgov -// This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this +/obj/machinery/computer/atmos_control/external + sensors = list(GAS_MONITOR_SENSOR_EXTERNAL = "External Atmospherics Monitoring") + name = "External Atmospherics Monitoring" +//tbh I would love it if someone could make this like. Unique like ship camera networks & etc. +//This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this /obj/machinery/computer/atmos_control/tank/proc/reconnect(mob/user) var/list/IO = list() var/datum/radio_frequency/freq = SSradio.return_frequency(frequency) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index e70edb721788..4c27a08e64a7 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1238,7 +1238,7 @@ if(!operating) if(istype(I, /obj/item/melee/axe/fire)) //being fireaxe'd var/obj/item/melee/axe/fire/axe = I - if(axe && !axe.wielded) + if(axe && !HAS_TRAIT(axe, TRAIT_WIELDED)) to_chat(user, "You need to be wielding \the [axe] to do that!") return INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index e99d24e3f558..d330865a4be2 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -65,17 +65,20 @@ /turf/closed/wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) while(drill.do_after_mecha(src, 15 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) - alter_integrity(-drill.wall_decon_damage) drill.occupant_message("You drill through some of the outer plating...") playsound(src,'sound/weapons/drill.ogg',60,TRUE) + if(!alter_integrity(-drill.wall_decon_damage)) + return TRUE /turf/closed/wall/r_wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) if(drill.drill_level >= DRILL_HARDENED) while(drill.do_after_mecha(src, 20 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) - alter_integrity(-drill.wall_decon_damage) drill.occupant_message("You drill through some of the outer plating...") playsound(src,'sound/weapons/drill.ogg',60,TRUE) + if(!alter_integrity(-drill.wall_decon_damage)) + return TRUE + else drill.occupant_message("[src] is too durable to drill through.") diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index b903564c88d6..a1b46fd2fbfa 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -137,7 +137,7 @@ add_scanmod() add_capacitor() START_PROCESSING(SSobj, src) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) log_message("[src.name] created.", LOG_MECHA) GLOB.mechas_list += src //global mech list prepare_huds() @@ -176,7 +176,7 @@ AI.gib() //No wreck, no AI to recover AI = null STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) equipment.Cut() for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 267e6bb24f4e..1227ff3847b3 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -519,7 +519,7 @@ /obj/structure/sign/poster/contraband/m90 name = "M90 SMG" desc = "A poster advertising the Scarborough M90. Burst action with a grenade launcher, for some reason." - icon_state = "poster-bulldog" + icon_state = "poster-m90" /obj/structure/sign/poster/contraband/inteq_nt name = "Inteq Recruitment" diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 4161403fefd9..3ec6f58aa7b1 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -89,8 +89,9 @@ /obj/effect/decal/cleanable/wash(clean_types) ..() if(!(flags_1 & INITIALIZED_1)) - return FALSE - qdel(src) + return + if(clean_types in list(CLEAN_WASH, CLEAN_SCRUB)) + qdel(src) return TRUE /obj/effect/decal/cleanable/proc/can_bloodcrawl_in() diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm index fc23ed89c278..a2ec15e5022f 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -166,7 +166,7 @@ TURF_DECAL_COLOR_HELPER(transparent/lightgrey, "#a8b2b6", 140) TURF_DECAL_COLOR_HELPER(transparent/bottlegreen, "#57967f", 140) TURF_DECAL_COLOR_HELPER(transparent/ntblue, "#283674", 140) TURF_DECAL_COLOR_HELPER(transparent/nsorange, "#FF6600", 140) -TURF_DECAL_COLOR_HELPER(opaque/vired, "#d40000", 140) +TURF_DECAL_COLOR_HELPER(transparent/vired, "#d40000", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovblue, "#2d2a4e", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovgold, "#eeac2e", 140) TURF_DECAL_COLOR_HELPER(transparent/syndiered, "#730622", 140) diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 51020d8f60dc..5fedeb47e455 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -48,13 +48,11 @@ /obj/effect/particle_effect/foam/firefighting/kill_foam() STOP_PROCESSING(SSfastprocess, src) - if(absorbed_plasma) var/obj/effect/decal/cleanable/plasma/P = (locate(/obj/effect/decal/cleanable/plasma) in get_turf(src)) if(!P) P = new(loc) P.reagents.add_reagent(/datum/reagent/stable_plasma, absorbed_plasma) - flick("[icon_state]-disolve", src) QDEL_IN(src, 5) @@ -67,6 +65,33 @@ /obj/effect/particle_effect/foam/firefighting/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) return + +/obj/effect/particle_effect/foam/antirad + name = "antiradiation foam" + lifetime = 80 + amount = 0 //no spread + slippery_foam = FALSE + color = "#A6FAFF55" + + +/obj/effect/particle_effect/foam/antirad/process() + ..() + + var/turf/open/T = get_turf(src) + var/obj/effect/radiation/rads = (locate(/obj/effect/radiation) in T) + if(rads && istype(T)) + rads.rad_power = rads.rad_power * rand(0.8, 0.95) + if (rads.rad_power <= RAD_BACKGROUND_RADIATION) + new /obj/effect/decal/cleanable/greenglow/filled(loc) + qdel(rads) + for(var/obj/things in get_turf(src)) + things.wash(CLEAN_TYPE_RADIATION) + +/obj/effect/particle_effect/foam/antirad/kill_foam() + STOP_PROCESSING(SSfastprocess, src) + flick("[icon_state]-disolve", src) + QDEL_IN(src, 5) + /obj/effect/particle_effect/foam/metal name = "aluminium foam" metal = ALUMINIUM_FOAM diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 02eb5e22139c..d7a6f6955c24 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -972,6 +972,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /// Called when a mob tries to use the item as a tool.Handles most checks. /obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks) + // we have no target, why are we even doing this? + if(isnull(target)) + return // No delay means there is no start message, and no reason to call tool_start_check before use_tool. // Run the start check here so we wouldn't have to call it manually. if(!delay && !tool_start_check(user, amount)) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 32a62880d69c..517bc9922786 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -309,17 +309,6 @@ AddElement(/datum/element/update_icon_updates_onmob) AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) -/// triggered on wield of two handed item -/obj/item/shockpaddles/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/shockpaddles/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE /obj/item/shockpaddles/Destroy() defib = null @@ -369,8 +358,6 @@ /obj/item/shockpaddles/Initialize() . = ..() ADD_TRAIT(src, TRAIT_NO_STORAGE_INSERT, GENERIC_ITEM_TRAIT) //stops shockpaddles from being inserted in BoH - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) if(!req_defib) return //If it doesn't need a defib, just say it exists if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 1396521aaf9a..b721393e85ed 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -136,10 +136,10 @@ become_hearing_sensitive(ROUNDSTART_TRAIT) for (var/answer in haunted_answers) votes[answer] = 0 - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/item/toy/eightball/haunted/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/toy/eightball/haunted/MakeHaunted() diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index b675a0012152..e8b7e0de487f 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -207,7 +207,7 @@ desc = "A custom made large grenade. Larger splash range and increased ignition temperature compared to basic grenades. Fits exotic and bluespace based containers." casedesc = "This casing affects a larger area than the basic model and can fit exotic containers, including slime cores and bluespace beakers. Heats contents by 25°K upon ignition." icon_state = "large_grenade" - allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment, /obj/item/reagent_containers/food/drinks) + allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/condiment, /obj/item/reagent_containers/food/drinks) banned_containers = list() affected_area = 5 ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. diff --git a/code/game/objects/items/melee/axe.dm b/code/game/objects/items/melee/axe.dm index 472b37eff354..6c81add449f7 100644 --- a/code/game/objects/items/melee/axe.dm +++ b/code/game/objects/items/melee/axe.dm @@ -15,30 +15,12 @@ resistance_flags = FIRE_PROOF species_exception = list(/datum/species/kepori) var/force_wielded = 25 - var/wielded = FALSE // track wielded status on item - -/obj/item/melee/axe/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/melee/axe/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools AddComponent(/datum/component/two_handed, force_unwielded = force, force_wielded = force_wielded, icon_wielded="[base_icon_state]_w") -/// triggered on wield of two handed item -/obj/item/melee/axe/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/axe/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/melee/axe/update_icon_state() icon_state = "[base_icon_state]" return ..() @@ -47,7 +29,7 @@ . = ..() if(!proximity) return - if(wielded) //destroys windows and grilles in one hit + if(HAS_TRAIT(src, TRAIT_WIELDED)) //destroys windows and grilles in one hit if(istype(A, /obj/structure/window) || istype(A, /obj/structure/grille)) var/obj/structure/W = A W.obj_destruction("axe") diff --git a/code/game/objects/items/melee/chainsaw.dm b/code/game/objects/items/melee/chainsaw.dm index 4e4a948da44f..3a07854d758a 100644 --- a/code/game/objects/items/melee/chainsaw.dm +++ b/code/game/objects/items/melee/chainsaw.dm @@ -23,30 +23,12 @@ tool_behaviour = TOOL_SAW toolspeed = 0.5 var/on = FALSE - var/wielded = FALSE // track wielded status on item - -/obj/item/chainsaw/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/chainsaw/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) AddComponent(/datum/component/two_handed, require_twohands=TRUE) -/// triggered on wield of two handed item -/obj/item/chainsaw/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/chainsaw/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/chainsaw/attack_self(mob/user) on = !on to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") @@ -68,7 +50,7 @@ A.UpdateButtonIcon() /obj/item/chainsaw/get_dismemberment_chance() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) . = ..() /obj/item/chainsaw/doomslayer diff --git a/code/game/objects/items/melee/dualsaber.dm b/code/game/objects/items/melee/dualsaber.dm index 2e9cab8a1ae8..4372ac8d25e3 100644 --- a/code/game/objects/items/melee/dualsaber.dm +++ b/code/game/objects/items/melee/dualsaber.dm @@ -29,7 +29,6 @@ var/two_hand_force = 34 var/hacked = FALSE var/list/possible_colors = list("red", "blue", "green", "purple", "yellow") - var/wielded = FALSE // track wielded status on item /obj/item/dualsaber/ComponentInitialize() . = ..() @@ -44,7 +43,6 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - wielded = TRUE sharpness = IS_SHARP w_class = active_w_class hitsound = 'sound/weapons/blade1.ogg' @@ -57,16 +55,14 @@ /obj/item/dualsaber/proc/on_unwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER - wielded = FALSE sharpness = initial(sharpness) w_class = initial(w_class) hitsound = "swing_hit" STOP_PROCESSING(SSobj, src) set_light_on(FALSE) - /obj/item/dualsaber/update_icon_state() - icon_state = wielded ? "dualsaber[saber_color]" : "dualsaber" + icon_state = HAS_TRAIT(src, TRAIT_WIELDED) ? "dualsaber[saber_color]" : "dualsaber" return ..() /obj/item/dualsaber/Initialize() @@ -95,14 +91,14 @@ if(user.has_dna()) if(user.dna.check_mutation(HULK)) to_chat(user, "You grip the blade too hard and accidentally drop it!") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.dropItemToGround(src, force=TRUE) return ..() - if(wielded && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) impale(user) return - if(wielded && prob(50)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && prob(50)) INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/dualsaber/proc/jedi_spin(mob/living/user) @@ -110,18 +106,18 @@ /obj/item/dualsaber/proc/impale(mob/living/user) to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.take_bodypart_damage(20,25,check_armor = TRUE) else user.adjustStaminaLoss(25) /obj/item/dualsaber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return ..() return 0 /obj/item/dualsaber/process() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) if(hacked) set_light_color(pick(COLOR_SOFT_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER)) open_flame() @@ -129,12 +125,12 @@ STOP_PROCESSING(SSobj, src) /obj/item/dualsaber/IsReflect() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return 1 /obj/item/dualsaber/ignition_effect(atom/A, mob/user) - // same as /obj/item/melee/energy, mostly - if(!wielded) + // same as /obj/item/melee/transforming/energy, mostly + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return "" var/in_mouth = "" if(iscarbon(user)) diff --git a/code/game/objects/items/melee/energyhalberd.dm b/code/game/objects/items/melee/energyhalberd.dm index bfcb6c654297..b56b6169ba94 100644 --- a/code/game/objects/items/melee/energyhalberd.dm +++ b/code/game/objects/items/melee/energyhalberd.dm @@ -32,13 +32,12 @@ var/two_hand_force = 34 var/hacked = FALSE var/list/possible_colors = list("red", "blue", "green", "purple", "yellow") - var/wielded = FALSE // track wielded status on item /obj/item/energyhalberd/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=two_hand_force, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') -/// Triggered on wield of two handed item + /// Specific hulk checks due to reflection chance for balance issues and switches hitsounds. /obj/item/energyhalberd/proc/on_halberdwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER @@ -47,7 +46,6 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - wielded = TRUE sharpness = IS_SHARP w_class = active_w_class hitsound = 'sound/weapons/blade1.ogg' @@ -55,12 +53,9 @@ set_light_on(TRUE) -/// Triggered on unwield of two handed item /// switch hitsounds /obj/item/energyhalberd/proc/on_halberdunwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER - - wielded = FALSE sharpness = initial(sharpness) w_class = initial(w_class) hitsound = "swing_hit" @@ -69,7 +64,7 @@ /obj/item/energyhalberd/update_icon_state() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) icon_state = "halberd[halberd_color]" return ..() else @@ -102,28 +97,28 @@ if(user.has_dna()) if(user.dna.check_mutation(HULK)) to_chat(user, "You grip the blade too hard and accidentally drop it!") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.dropItemToGround(src, force=TRUE) return ..() - if(wielded && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) impale(user) return /obj/item/energyhalberd/proc/impale(mob/living/user) to_chat(user, "You swing around a bit before losing your balance and impaling yourself on [src].") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.take_bodypart_damage(20,25,check_armor = TRUE) else user.adjustStaminaLoss(25) /obj/item/energyhalberd/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return ..() return 0 /obj/item/energyhalberd/process() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) if(hacked) set_light_color(pick(COLOR_SOFT_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER)) open_flame() @@ -131,12 +126,12 @@ STOP_PROCESSING(SSobj, src) /obj/item/energyhalberd/IsReflect() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return 1 /obj/item/energyhalberd/ignition_effect(atom/A, mob/user) - // same as /obj/item/melee/energy, mostly - if(!wielded) + // same as /obj/item/melee/transforming/energy, mostly + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return "" var/in_mouth = "" if(iscarbon(user)) diff --git a/code/game/objects/items/melee/spear.dm b/code/game/objects/items/melee/spear.dm index 0e40eff21684..52e373f175a0 100644 --- a/code/game/objects/items/melee/spear.dm +++ b/code/game/objects/items/melee/spear.dm @@ -65,7 +65,6 @@ icon_prefix = "spearbomb" var/obj/item/grenade/explosive = null var/war_cry = "AAAAARGH!!!" - var/wielded = FALSE // track wielded status on item /obj/item/melee/spear/explosive/Initialize(mapload) . = ..() @@ -111,7 +110,7 @@ . = ..() if(!proximity) return - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.say("[war_cry]", forced="spear warcry") explosive.forceMove(AM) explosive.prime() diff --git a/code/game/objects/items/melee/sword.dm b/code/game/objects/items/melee/sword.dm index 6cf0739e87cf..888d5104239f 100644 --- a/code/game/objects/items/melee/sword.dm +++ b/code/game/objects/items/melee/sword.dm @@ -334,38 +334,20 @@ attack_verb = list("cut", "sliced", "diced") slot_flags = ITEM_SLOT_BACK hitsound = 'sound/weapons/bladeslice.ogg' - var/wielded = FALSE // track wielded status on item - -/obj/item/melee/sword/vibro/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/melee/sword/vibro/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 20, 105) AddComponent(/datum/component/two_handed, force_multiplier=2, icon_wielded="[base_icon_state]1") -/// triggered on wield of two handed item -/obj/item/melee/sword/vibro/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/sword/vibro/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/melee/sword/vibro/update_icon_state() icon_state = "[base_icon_state]0" return ..() /obj/item/melee/sword/vibro/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) final_block_chance *= 2 - if(wielded || attack_type != PROJECTILE_ATTACK) + if(HAS_TRAIT(src, TRAIT_WIELDED) || attack_type != PROJECTILE_ATTACK) if(prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("[owner] deflects [attack_text] with [src]!") diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 243b84b7e1ec..614b37ec4548 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -886,7 +886,7 @@ desc = "A special apparatus for carrying drinks without spilling the contents. Alt-Z or right-click to drop the beaker." icon_state = "borg_beaker_apparatus" storable = list(/obj/item/reagent_containers/food/drinks/, - /obj/item/reagent_containers/food/condiment) + /obj/item/reagent_containers/condiment) /obj/item/borg/apparatus/beaker/service/Initialize() . = ..() diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index c2679adf8ae9..52a6fdf8738e 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -275,6 +275,7 @@ STR.set_holdable(list( /obj/item/melee/baton, /obj/item/melee/classic_baton, + /obj/item/melee/knife, /obj/item/grenade, /obj/item/reagent_containers/spray/pepper, /obj/item/restraints/handcuffs, @@ -367,7 +368,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/reagent_containers/food/drinks/bottle, /obj/item/stack/medical, - /obj/item/melee/knife/kitchen, + /obj/item/melee/knife, /obj/item/reagent_containers/hypospray, /obj/item/gps, /obj/item/storage/bag/ore, diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 8aa7b1d9c478..57b574e39b7f 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -455,7 +455,7 @@ /obj/item/storage/box/condimentbottles/PopulateContents() for(var/i in 1 to 6) - new /obj/item/reagent_containers/food/condiment(src) + new /obj/item/reagent_containers/condiment(src) /obj/item/storage/box/cups name = "box of paper cups" diff --git a/code/game/objects/items/storage/ration.dm b/code/game/objects/items/storage/ration.dm index b016cc339260..169e0dfad0a6 100644 --- a/code/game/objects/items/storage/ration.dm +++ b/code/game/objects/items/storage/ration.dm @@ -54,7 +54,7 @@ /obj/item/reagent_containers/food/snacks/ration/entree/vegan_chili = 1, /obj/item/reagent_containers/food/snacks/ration/side/vegan_crackers = 1, /obj/item/reagent_containers/food/snacks/ration/side/cornbread = 1, - /obj/item/reagent_containers/food/snacks/ration/snack/pizza_crackers = 1, + /obj/item/reagent_containers/food/snacks/ration/snack/fruit_puree = 1, /obj/item/reagent_containers/food/snacks/ration/condiment/cheese_spread = 1, /obj/item/reagent_containers/food/snacks/ration/pack/grape_beverage = 1, /obj/item/ration_heater = 1 diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index 422ff52b15b0..f918a3b883fb 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -173,7 +173,7 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.set_holdable(null, list(/obj/item/storage/secure/briefcase)) - STR.max_w_class = 8 //?? + STR.max_w_class = 8 /obj/item/storage/secure/safe/PopulateContents() new /obj/item/paper(src) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 50f709dcd65f..23fe0852c353 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -175,6 +175,39 @@ 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.") +//radiation cleanup pack + +/obj/item/watertank/anti_rad + name = "radiation foam pack" + desc = "A pressurized backpack tank with sprayer nozzle, intended to clean up radioactive hazards." + item_state = "waterbackpackatmos" + icon_state = "waterbackpackatmos" + volume = 200 + slowdown = 0.3 + +/obj/item/watertank/anti_rad/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/anti_radiation_foam, 200) + + +/obj/item/reagent_containers/spray/mister/anti_rad + name = "spray nozzle" + desc = "A heavy duty nozzle attached to a radiation foam tank." + icon_state = "atmos_nozzle" + item_state = "nozzleatmos" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list() + current_range = 6 + spray_range = 6 + + +/obj/item/watertank/anti_rad/make_noz() + return new /obj/item/reagent_containers/spray/mister/anti_rad(src) + +/obj/item/reagent_containers/spray/mister/anti_rad/attack_self(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 ? "tigten" : "loosen"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") + //ATMOS FIRE FIGHTING BACKPACK #define EXTINGUISHER 0 diff --git a/code/game/objects/structures/cabinet.dm b/code/game/objects/structures/cabinet.dm new file mode 100644 index 000000000000..bc89cf1d0bbe --- /dev/null +++ b/code/game/objects/structures/cabinet.dm @@ -0,0 +1,214 @@ +/obj/structure/cabinet + name = "\improper cabinet" + desc = "There is a small label that reads \"For Emergency use only\". Yeah right." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = TRUE + density = FALSE + armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) + max_integrity = 150 + integrity_failure = 0.33 + req_one_access_txt = "0" + var/locked = TRUE + var/open = FALSE + var/start_empty = FALSE + var/obj/item/stored + var/allowed_type + var/stored_sprite = "axe" + +/obj/structure/cabinet/Initialize() + . = ..() + if(allowed_type && !start_empty) + stored = new allowed_type(src) + update_appearance() + +/obj/structure/cabinet/Destroy() + if(istype(stored)) + qdel(stored) + stored = null + return ..() + +/obj/structure/cabinet/examine(mob/user) + . = ..() + if(!open) + . += span_notice("Alt-click to [locked ? "unlock" : "lock"] [src]") + if(stored) + . += span_notice("[stored] is sitting inside, ripe for the taking.") + +/obj/structure/cabinet/attackby(obj/item/I, mob/user, params) + if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) + hack_lock(user) + else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) + if(obj_integrity < max_integrity) + if(!I.tool_start_check(user, amount=2)) + return + to_chat(user, span_notice("You begin repairing [src]")) + if(I.use_tool(src, user, 40, volume=50, amount=2)) + obj_integrity = max_integrity + update_appearance() + to_chat(user, span_notice("You repair [src]")) + else + to_chat(user, span_warning("[src] is already in good condition!")) + return + else if(istype(I, /obj/item/stack/sheet/glass) && broken) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 2) + to_chat(user, span_warning("You need two [G.singular_name] to fix [src]!")) + return + to_chat(user, span_notice("You start fixing [src]...")) + if(do_after(user, 20, target = src) && G.use(2)) + broken = 0 + obj_integrity = max_integrity + update_appearance() + else if(open || broken) + if(istype(I, allowed_type) && !stored) + var/obj/item/storee = I + SIGNAL_HANDLER + if(storee && HAS_TRAIT(storee, TRAIT_WIELDED)) + to_chat(user, span_warning("Unwield the [storee.name] first.")) + return + if(!user.transferItemToLoc(I, src)) + return + stored = storee + to_chat(user, span_notice("You place the [storee.name] back in the [name].")) + update_appearance() + return + else if(!broken) + toggle_open() + else + return ..() + +/obj/structure/cabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(broken) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) + else + playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + +/obj/structure/cabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + if(open) + return + . = ..() + if(.) + update_appearance() + +/obj/structure/cabinet/obj_break(damage_flag) + if(!broken && !(flags_1 & NODECONSTRUCT_1)) + update_appearance() + broken = TRUE + playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + new /obj/item/shard(loc) + new /obj/item/shard(loc) + +/obj/structure/cabinet/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(stored && loc) + stored.forceMove(loc) + stored = null + new /obj/item/stack/sheet/metal(loc, 2) + qdel(src) + +/obj/structure/cabinet/attack_hand(mob/user) + . = ..() + if(.) + return + if(open || broken) + if(stored) + to_chat(user, span_notice("You take [stored] from [name].")) + user.put_in_hands(stored) + stored = null + src.add_fingerprint(user) + update_appearance() + return + if(locked) + to_chat(user, span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return + +/obj/structure/cabinet/attack_paw(mob/living/user) + return attack_hand(user) + +/obj/structure/cabinet/attack_ai(mob/user) + toggle_lock(user) + return + +/obj/structure/cabinet/attack_tk(mob/user) + if(locked) + to_chat(user, span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return + +/obj/structure/cabinet/update_overlays() + . = ..() + if(stored) + . += "[stored_sprite]" + if(open) + . += "glass_raised" + return + var/hp_percent = obj_integrity/max_integrity * 100 + if(broken) + . += "glass4" + else + switch(hp_percent) + if(-INFINITY to 40) + . += "glass3" + if(40 to 60) + . += "glass2" + if(60 to 80) + . += "glass1" + if(80 to INFINITY) + . += "glass" + + . += locked ? "locked" : "unlocked" + +/obj/structure/cabinet/proc/toggle_lock(mob/user) + if(!broken) + if(allowed(user)) + if(iscarbon(user)) + add_fingerprint(user) + locked = !locked + user.visible_message( + span_notice("[user] [locked ? "locks" : "unlocks"][src]."), + span_notice("You [locked ? "lock" : "unlock"] [src].")) + update_appearance() + else + to_chat(user, span_warning("Access denied!")) + else if(broken) + to_chat(user, span_warning("\The [src] is broken!")) + +/obj/structure/cabinet/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, BE_CLOSE) || !isturf(loc) || open) + return + else + toggle_lock(user) + +/obj/structure/cabinet/proc/hack_lock(mob/user) + to_chat(user, span_notice("Resetting circuitry...")) + playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE) + if(do_after(user, 20, target = src)) + to_chat(user, span_notice("You [locked ? "disable" : "re-enable"] the locking modules.")) + locked = !locked + update_appearance() + +/obj/structure/cabinet/verb/toggle_open() + set name = "Open/Close" + set category = "Object" + set src in oview(1) + + if(locked) + visible_message(span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return diff --git a/code/game/objects/structures/cabinet_types.dm b/code/game/objects/structures/cabinet_types.dm new file mode 100644 index 000000000000..347e1954ded4 --- /dev/null +++ b/code/game/objects/structures/cabinet_types.dm @@ -0,0 +1,10 @@ +/obj/structure/cabinet/fireaxe + name = "\improper fire axe cabinet" + desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = TRUE + density = FALSE + stored_sprite = "axe" + allowed_type = /obj/item/melee/axe/fire + req_one_access_txt = "24" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 0e7ab6e0a526..2bdc4f762dc0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -33,9 +33,9 @@ /obj/structure/closet/secure_closet/freezer/kitchen/PopulateContents() ..() for(var/i = 0, i < 3, i++) - new /obj/item/reagent_containers/food/condiment/flour(src) - new /obj/item/reagent_containers/food/condiment/rice(src) - new /obj/item/reagent_containers/food/condiment/sugar(src) + new /obj/item/reagent_containers/condiment/flour(src) + new /obj/item/reagent_containers/condiment/rice(src) + new /obj/item/reagent_containers/condiment/sugar(src) /obj/structure/closet/secure_closet/freezer/kitchen/maintenance name = "maintenance refrigerator" @@ -45,9 +45,9 @@ /obj/structure/closet/secure_closet/freezer/kitchen/maintenance/PopulateContents() ..() for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/milk(src) + new /obj/item/reagent_containers/condiment/milk(src) for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/soymilk(src) + new /obj/item/reagent_containers/condiment/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/storage/fancy/egg_box(src) @@ -82,9 +82,9 @@ /obj/structure/closet/secure_closet/freezer/fridge/PopulateContents() ..() for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/milk(src) + new /obj/item/reagent_containers/condiment/milk(src) for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/soymilk(src) + new /obj/item/reagent_containers/condiment/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/storage/fancy/egg_box(src) diff --git a/code/game/objects/structures/crates_lockers/crates/graves.dm b/code/game/objects/structures/crates_lockers/crates/graves.dm new file mode 100644 index 000000000000..dc7eee343d01 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/graves.dm @@ -0,0 +1,112 @@ +/obj/structure/closet/crate/grave + name = "burial mound" + desc = "A marked patch of soil, adorned with a wooden cross" + icon_state = "grave" + dense_when_open = TRUE + material_drop = /obj/item/stack/ore/glass/basalt + material_drop_amount = 5 + opened = TRUE + anchorable = FALSE + anchored = TRUE + locked = TRUE + breakout_time = 900 + cutting_tool = TOOL_SHOVEL + +/obj/structure/closet/crate/grave/attackby(obj/item/W, mob/user, params) + .=..() + if(istype(W, /obj/item/screwdriver)) + if(!user.is_literate()) + to_chat(user, "You scratch illegibly on [src]!") + return + var/t = stripped_input(user, "What would you like the inscription to be?", name, null, 53) + if(user.get_active_held_item() != W) + return + if(!user.canUseTopic(src, BE_CLOSE)) + return + if(t) + desc = "[t]" + return + +/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S, force = FALSE) + if(!opened) + to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") + else + to_chat(user, "The grave has already been dug up.") + +/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) + if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. + if(!opened) + if(S.tool_behaviour == cutting_tool) + to_chat(user, "You start start to dig open \the [src] with \the [S]...") + if (do_after(user,20, target = src)) + opened = TRUE + locked = TRUE + dump_contents() + update_appearance() + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + return TRUE + return TRUE + else + to_chat(user, "You can't dig up a grave with \the [S.name].") + return TRUE + else + to_chat(user, "The grave has already been dug up.") + return TRUE + + else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. + if(S.tool_behaviour == cutting_tool) + to_chat(user, "You start to remove \the [src] with \the [S].") + if (do_after(user,15, target = src)) + to_chat(user, "You remove \the [src] completely.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + deconstruct(TRUE) + return TRUE + return + +/obj/structure/closet/crate/grave/bust_open() + ..() + opened = TRUE + update_appearance() + dump_contents() + return + +/obj/structure/closet/crate/grave/stone + name = "burial mound" + desc = "A marked patch of soil, adorned with a sandstone slab" + icon_state = "grave_lead" + +/obj/structure/closet/crate/grave/loot + name = "burial mound" + desc = "A marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" + opened = FALSE + +/obj/structure/closet/crate/grave/loot/PopulateContents() //GRAVEROBBING IS NOW A FEATURE + ..() + new /obj/effect/decal/remains/human/grave(src) + switch(rand(1,7)) + if(1) + new /obj/item/spacecash/bundle/smallrand(src) + new /obj/item/card/id + new /obj/item/storage/wallet(src) + if(2) + new /obj/item/clothing/head/papersack/smiley(src) + if(3) + new /obj/item/clothing/under/nanotrasen(src) + new /obj/item/clothing/head/nanotrasen(src) + if(4) + new /obj/item/storage/book/bible/booze(src) + if(5) + new /obj/item/clothing/neck/stethoscope(src) + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + + if(6) + new /obj/item/reagent_containers/glass/beaker/large/napalm(src) + new /obj/item/clothing/under/frontiersmen(src) + if(7) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/mask/cigarette/rollie(src) + new /obj/item/lighter(src) + +/obj/effect/decal/remains/human/grave + turf_loc_check = FALSE diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm deleted file mode 100644 index a164248a2bdd..000000000000 --- a/code/game/objects/structures/fireaxe.dm +++ /dev/null @@ -1,179 +0,0 @@ -/obj/structure/fireaxecabinet - name = "fire axe cabinet" - desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." - icon = 'icons/obj/wallmounts.dmi' - icon_state = "fireaxe" - anchored = TRUE - density = FALSE - armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) - max_integrity = 150 - integrity_failure = 0.33 - var/locked = TRUE - var/open = FALSE - var/obj/item/melee/axe/fire/fireaxe - -/obj/structure/fireaxecabinet/Initialize() - . = ..() - fireaxe = new - update_appearance() - -/obj/structure/fireaxecabinet/Destroy() - if(fireaxe) - QDEL_NULL(fireaxe) - return ..() - -/obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) - if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) - toggle_lock(user) - else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) - if(obj_integrity < max_integrity) - if(!I.tool_start_check(user, amount=2)) - return - - to_chat(user, "You begin repairing [src].") - if(I.use_tool(src, user, 40, volume=50, amount=2)) - obj_integrity = max_integrity - update_appearance() - to_chat(user, "You repair [src].") - else - to_chat(user, "[src] is already in good condition!") - return - else if(istype(I, /obj/item/stack/sheet/glass) && broken) - var/obj/item/stack/sheet/glass/G = I - if(G.get_amount() < 2) - to_chat(user, "You need two glass sheets to fix [src]!") - return - to_chat(user, "You start fixing [src]...") - if(do_after(user, 20, target = src) && G.use(2)) - broken = 0 - obj_integrity = max_integrity - update_appearance() - else if(open || broken) - if(istype(I, /obj/item/melee/axe/fire) && !fireaxe) - var/obj/item/melee/axe/fire/F = I - if(F && F.wielded) - to_chat(user, "Unwield the [F.name] first.") - return - if(!user.transferItemToLoc(F, src)) - return - fireaxe = F - to_chat(user, "You place the [F.name] back in the [name].") - update_appearance() - return - else if(!broken) - toggle_open() - else - return ..() - -/obj/structure/fireaxecabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(broken) - playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) - else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) - if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) - -/obj/structure/fireaxecabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - if(open) - return - . = ..() - if(.) - update_appearance() - -/obj/structure/fireaxecabinet/obj_break(damage_flag) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - update_appearance() - broken = TRUE - playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) - new /obj/item/shard(loc) - new /obj/item/shard(loc) - -/obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - if(fireaxe && loc) - fireaxe.forceMove(loc) - fireaxe = null - new /obj/item/stack/sheet/metal(loc, 2) - qdel(src) - -/obj/structure/fireaxecabinet/attack_hand(mob/user) - . = ..() - if(.) - return - if(open || broken) - if(fireaxe) - user.put_in_hands(fireaxe) - fireaxe = null - to_chat(user, "You take the fire axe from the [name].") - src.add_fingerprint(user) - update_appearance() - return - if(locked) - to_chat(user, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return - -/obj/structure/fireaxecabinet/attack_paw(mob/living/user) - return attack_hand(user) - -/obj/structure/fireaxecabinet/attack_ai(mob/user) - toggle_lock(user) - return - -/obj/structure/fireaxecabinet/attack_tk(mob/user) - if(locked) - to_chat(user, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return - -/obj/structure/fireaxecabinet/update_overlays() - . = ..() - if(fireaxe) - . += "axe" - if(open) - . += "glass_raised" - return - var/hp_percent = obj_integrity/max_integrity * 100 - if(broken) - . += "glass4" - else - switch(hp_percent) - if(-INFINITY to 40) - . += "glass3" - if(40 to 60) - . += "glass2" - if(60 to 80) - . += "glass1" - if(80 to INFINITY) - . += "glass" - - . += locked ? "locked" : "unlocked" - -/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user) - to_chat(user, "Resetting circuitry...") - playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE) - if(do_after(user, 20, target = src)) - to_chat(user, "You [locked ? "disable" : "re-enable"] the locking modules.") - locked = !locked - update_appearance() - -/obj/structure/fireaxecabinet/verb/toggle_open() - set name = "Open/Close" - set category = "Object" - set src in oview(1) - - if(locked) - to_chat(usr, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 9f51ba34476a..68c99d6649a5 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -299,3 +299,31 @@ name = "\improper Karl Marx bust" desc = "A bust depicting a certain 19th century economist. You get the feeling a specter is haunting the sector." icon_state = "marx" + +/// bone +/obj/structure/statue/bone + anchored = TRUE + max_integrity = 120 + material_drop_type = /obj/item/stack/sheet/bone + impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least + layer = ABOVE_ALL_MOB_LAYER + +/obj/structure/statue/bone/rib + name = "collosal rib" + desc = "It's staggering to think that something this big could have lived, let alone died." + oreAmount = 4 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "rib" + +/obj/structure/statue/bone/skull + name = "collosal skull" + desc = "The gaping maw of a dead, titanic monster." + oreAmount = 12 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull" + +/obj/structure/statue/bone/skull/half + desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." + oreAmount = 6 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull-half" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 0d97598a0504..6db5f18e31b9 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -397,6 +397,49 @@ icon_state = "puddle" resistance_flags = UNACIDABLE +//***Oil well puddles. +/obj/structure/sink/oil_well + name = "oil well" + desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." + icon = 'icons/obj/watercloset.dmi' + icon_state = "puddle-oil" + dispensedreagent = /datum/reagent/fuel/oil + +/obj/structure/sink/oil_well/Initialize() + .=..() + create_reagents(20) + reagents.add_reagent(dispensedreagent, 20) + +/obj/structure/sink/oil_well/attack_hand(mob/M) + flick("puddle-oil-splash",src) + reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. + to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") + +/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) + flick("puddle-oil-splash",src) + if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel + to_chat(user, "You fill in the oil well with soil.") + O.play_tool_sound(src) + deconstruct() + return 1 + if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil + var/obj/item/reagent_containers/RG = O + if(RG.is_refillable()) + if(!RG.reagents.holder_full()) + RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + to_chat(user, "You fill [RG] from [src].") + return TRUE + to_chat(user, "\The [RG] is full.") + return FALSE + if(user.a_intent != INTENT_HARM) + to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") + return 1 + else + return ..() + +/obj/structure/sink/oil_well/drop_materials() + new /obj/effect/decal/cleanable/oil(loc) + //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/sink/puddle/attack_hand(mob/M) icon_state = "puddle-splash" diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index 2d997212d9f2..ec1e61554851 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -227,6 +227,8 @@ return ..() /turf/closed/proc/attack_override(obj/item/W, mob/user, turf/loc) + if(!isclosedturf(src)) + return //the istype cascade has been spread among various procs for easy overriding or if we want to call something specific if(try_decon(W, user, loc) || try_destroy(W, user, loc)) return @@ -252,15 +254,18 @@ return TRUE /turf/closed/proc/try_decon(obj/item/I, mob/user, turf/T) + var/act_duration = breakdown_duration if(I.tool_behaviour == TOOL_WELDER) if(!I.tool_start_check(user, amount=0)) return FALSE - to_chat(user, "You begin slicing through the outer plating...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) + while(I.use_tool(src, user, act_duration, volume=50)) if(iswallturf(src)) to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE) + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break return FALSE diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 0d9b3205cc27..3970cc403d73 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -79,16 +79,20 @@ return ..() /turf/closed/mineral/try_decon(obj/item/I, mob/user, turf/T) + var/act_duration = breakdown_duration if(I.tool_behaviour == TOOL_MINING) if(!I.tool_start_check(user, amount=0)) return FALSE to_chat(user, "You begin breaking through the rock...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) + while(I.use_tool(src, user, act_duration, volume=50)) if(ismineralturf(src)) to_chat(user, "You break through some of the stone...") SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type) - alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE) + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break return FALSE diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index ed2f0141eaff..c0fb9232ad28 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -78,7 +78,8 @@ to_chat(user, "You begin slicing through the [src].") while(W.use_tool(src,user,30,volume = 100)) to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(W.wall_decon_damage)) + if(!alter_integrity(-(W.wall_decon_damage))) + return TRUE return 1 switch(d_state) diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index bed648ff592b..1d8f242e216a 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -85,9 +85,10 @@ return null /turf/closed/wall/attack_override(obj/item/W, mob/user, turf/loc) - if(try_clean(W, user, loc) || try_wallmount(W, user, loc)) + if(!iswallturf(src)) + return + if(try_clean(W, user, loc) || try_wallmount(W, user, loc) || try_decon(W, user, loc) || try_destroy(W, user, loc)) return - ..() /turf/closed/wall/proc/try_clean(obj/item/W, mob/user, turf/T) if((user.a_intent != INTENT_HELP)) @@ -122,19 +123,6 @@ return FALSE -/turf/closed/wall/try_decon(obj/item/I, mob/user, turf/T) - if(I.tool_behaviour == TOOL_WELDER) - if(!I.tool_start_check(user, amount=0)) - return FALSE - - to_chat(user, "You begin slicing through the outer plating...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) - if(iswallturf(src)) - to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(I.wall_decon_damage),FALSE,TRUE) - - return FALSE - /turf/closed/wall/singularity_pull(S, current_size) ..() wall_singularity_pull(current_size) diff --git a/code/game/turfs/open/floor/plasteel_floor.dm b/code/game/turfs/open/floor/plasteel_floor.dm index 61a90ff0da86..1feb9d0921e0 100644 --- a/code/game/turfs/open/floor/plasteel_floor.dm +++ b/code/game/turfs/open/floor/plasteel_floor.dm @@ -151,6 +151,13 @@ base_icon_state = "plaque" tiled_dirt = FALSE +/turf/open/floor/plasteel/lightgrey + name = "light grey floor" + icon_state = "corner_white_full" + base_icon_state = "corner_white_full" + icon = 'icons/turf/decals/decals.dmi' + color = "#a8b2b6" + /turf/open/floor/plasteel/cult/narsie_act() return diff --git a/code/game/turfs/open/floor/plating/wasteplanet.dm b/code/game/turfs/open/floor/plating/wasteplanet.dm index 3cf9b047662c..7d839b66932d 100644 --- a/code/game/turfs/open/floor/plating/wasteplanet.dm +++ b/code/game/turfs/open/floor/plating/wasteplanet.dm @@ -58,6 +58,17 @@ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS planetary_atmos = TRUE +/turf/open/floor/plasteel/wasteplanet + initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS + +/turf/open/floor/plasteel/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) + return + +/turf/open/floor/plasteel/dark/wasteplanet + initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS + +/turf/open/floor/plasteel/dark/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) + return //cement /turf/open/floor/concrete/wasteplanet diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index cf834c9f9c5d..e5888f8088df 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -216,9 +216,10 @@ "} - var/list/mobs = sortmobs() + var/list/mobs = SSpoints_of_interest.get_mob_pois() var/i = 1 - for(var/mob/M in mobs) + for(var/mob_name in mobs) + var/mob/M = mobs[mob_name] if(M.ckey) var/color = "#e6e6e6" @@ -254,12 +255,7 @@ M_job = "Silicon-based" else if(isanimal(M)) //simple animals - if(iscorgi(M)) - M_job = "Corgi" - else if(isslime(M)) - M_job = "slime" - else - M_job = "Animal" + M_job = "Animal" else M_job = "Living" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 927120f94a9d..7f546f5a6e7d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1217,9 +1217,9 @@ //milk to plasmemes and skeletons, meat to lizards, electricity bars to ethereals, cookies to everyone else var/obj/item/reagent_containers/food/cookiealt = /obj/item/reagent_containers/food/snacks/cookie if(isskeleton(H)) - cookiealt = /obj/item/reagent_containers/food/condiment/milk + cookiealt = /obj/item/reagent_containers/condiment/milk else if(isplasmaman(H)) - cookiealt = /obj/item/reagent_containers/food/condiment/milk + cookiealt = /obj/item/reagent_containers/condiment/milk else if(iselzuose(H)) cookiealt = /obj/item/reagent_containers/food/snacks/energybar // WS - More fun with cookies - Start diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 9b84224317a9..708448cf52cd 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -140,7 +140,7 @@ usr.forceMove(M.loc) SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/sendmob(mob/M in sortmobs()) +/client/proc/sendmob(mob/M in SSpoints_of_interest.get_mob_pois()) set category = "Admin.Game" set name = "Send Mob" if(!src.holder) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index b0fb446405c2..3382672071cc 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -450,10 +450,10 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/narsie/Initialize(mapload, set_keyword) . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/effect/rune/narsie/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to @@ -469,7 +469,7 @@ structure_check() searches for nearby cultist structures required for the invoca if(!(place in summon_objective.summon_spots)) to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!") return - if(locate(/obj/singularity/narsie) in GLOB.poi_list) + if(locate(/obj/singularity/narsie) in SSpoints_of_interest.other_points_of_interest) for(var/M in invokers) to_chat(M, "Nar'Sie is already on this plane!") log_game("Nar'Sie rune failed - already summoned") diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 26d7321eb813..9c65e50130cf 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -38,7 +38,7 @@ core = new /obj/item/nuke_core(src) STOP_PROCESSING(SSobj, core) update_appearance() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) previous_level = get_security_level() /obj/machinery/nuclearbomb/Destroy() @@ -46,7 +46,7 @@ if(!exploding) // If we're not exploding, set the alert level back to normal set_safety() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) GLOB.nuke_list -= src QDEL_NULL(countdown) QDEL_NULL(core) @@ -611,7 +611,7 @@ This is here to make the tiles around the station mininuke change when it's arme AddElement(/datum/element/bed_tuckable, 6, -6, 0) if(!fake) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) last_disk_move = world.time START_PROCESSING(SSobj, src) @@ -661,7 +661,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Destroy(force=FALSE) // respawning is handled in /obj/Destroy() if(force) - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/disk/nuclear/fake diff --git a/code/modules/antagonists/nukeop/equipment/pinpointer.dm b/code/modules/antagonists/nukeop/equipment/pinpointer.dm index b316e60c5e14..c1f9ffa37428 100644 --- a/code/modules/antagonists/nukeop/equipment/pinpointer.dm +++ b/code/modules/antagonists/nukeop/equipment/pinpointer.dm @@ -32,7 +32,7 @@ target = null switch(mode) if(TRACK_NUKE_DISK) - var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/N = locate() in SSpoints_of_interest.other_points_of_interest target = N if(TRACK_MALF_AI) for(var/V in GLOB.ai_list) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 9f807d9521e7..f51c64142450 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -345,7 +345,7 @@ /datum/team/nuclear/antag_listing_entry() var/disk_report = "Nuclear Disk(s)
" disk_report += "
" - for(var/obj/item/disk/nuclear/N in GLOB.poi_list) + for(var/obj/item/disk/nuclear/N in SSpoints_of_interest.other_points_of_interest) disk_report += "
[N.name], " var/atom/disk_loc = N.loc while(!isturf(disk_loc)) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 42d7643fb926..5fc667c4db4a 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -195,10 +195,10 @@ /obj/machinery/capture_the_flag/Initialize() . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/machinery/capture_the_flag/Destroy() - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) return ..() /obj/machinery/capture_the_flag/process() diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0bf0b74c715a..26361b99cfc6 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -61,11 +61,11 @@ if(instant || (roundstart && (mapload || (SSticker && SSticker.current_state > GAME_STATE_SETTING_UP)))) INVOKE_ASYNC(src, PROC_REF(create)) else if(ghost_usable) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) LAZYADD(GLOB.mob_spawners[name], src) /obj/effect/mob_spawn/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) var/list/spawners = GLOB.mob_spawners[name] LAZYREMOVE(spawners, src) if(!LAZYLEN(spawners)) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm index 47f7fd884993..d5489edeb3e0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm @@ -271,3 +271,25 @@ stock_min = 2 stock_max = 10 availability_prob = 10 + +/datum/blackmarket_item/ammo/c38hotshot + name = ".38 Hearth Ammo Box" + desc = "We got our ship cook to marinade some .38 in some hearthwine we pocketed off some hunters. It'll cook your targets to a nice well done." + item = /obj/item/ammo_box/c38/hotshot + + price_min = 300 + price_max = 500 + stock_min = 3 + stock_max = 8 + availability_prob = 50 + +/datum/blackmarket_item/ammo/c38iceblox + name = ".38 Chilled Ammo Box" + desc = "One of our runners accidentally spilled some .38 into a fucking pristine icewine shipment. It'll freeze your targets faster than our runner froze solid outside for making a mess." + item = /obj/item/ammo_box/c38/iceblox + + price_min = 300 + price_max = 500 + stock_min = 3 + stock_max = 8 + availability_prob = 50 diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index d049589fe40a..7a9803085ab8 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -264,7 +264,7 @@ price_min = 1500 price_max = 2500 - stock = 1 + stock_max = 3 availability_prob = 30 /datum/blackmarket_item/clothing/frontiersmen_hardsuit diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index cd0fcf9fd7a9..7da2610a9049 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -350,4 +350,12 @@ stock_max = 2 availability_prob = 20 +/datum/blackmarket_item/weapon/fireaxe + name = "Fire Axe" + desc = "An incredibly sharp axe of dubious make used by various engineers throughout the years to settle arguments while hammered. Sold to us by a very friendly man in a suit." + item = /obj/item/melee/axe/fire + price_min = 2500 + price_max = 3500 + stock = 2 + availability_prob = 40 diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index dfec659e1644..0b302925e10e 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -383,7 +383,7 @@ if (specificTarget) specificTarget = null return - var/list/mobs = getpois()//code stolen from observer.dm + var/list/mobs = SSpoints_of_interest.get_mob_pois() var/inputTarget = input("Select a mob! (Smiting does this automatically)", "Target", null, null) as null|anything in mobs if (isnull(inputTarget)) return diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 6fa0b54966c1..a7ab407b428e 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -72,6 +72,18 @@ cost = 500 contains = list(/obj/item/ammo_box/a12g/slug) +/datum/supply_pack/ammo/blank_shells + name = "Blank Shell Crate" + desc = "Contains a box of blank shells." + cost = 500 + contains = list(/obj/item/ammo_box/a12g/blanks) + +/datum/supply_pack/ammo/blank_ammo_disk + name = "Blank Ammo Design Disk Crate" + desc = "Run your own training drills!" + cost = 1000 + contains = list(/obj/item/disk/design_disk/blanks) + /datum/supply_pack/ammo/techshells name = "Unloaded Shotgun Technological Shells Crate" desc = "Contains a box of 7 versatile tech shells, capable of producing a variety of deadly effects for any situation. Some assembly required." diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index f2b9d0ec09a7..3eb7f33cbe4c 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -64,12 +64,12 @@ name = "Basic Ingredients Crate" desc = "Get things cooking with this crate full of useful ingredients! Contains a dozen eggs, two slabs of meat, some flour, some rice, a bottle of milk, a bottle of soymilk, and a bag of sugar." cost = 300 - contains = list(/obj/item/reagent_containers/food/condiment/flour, - /obj/item/reagent_containers/food/condiment/flour, - /obj/item/reagent_containers/food/condiment/rice, - /obj/item/reagent_containers/food/condiment/milk, - /obj/item/reagent_containers/food/condiment/soymilk, - /obj/item/reagent_containers/food/condiment/sugar, + contains = list(/obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/rice, + /obj/item/reagent_containers/condiment/milk, + /obj/item/reagent_containers/condiment/soymilk, + /obj/item/reagent_containers/condiment/sugar, /obj/item/storage/fancy/egg_box, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab @@ -81,13 +81,13 @@ name = "Condiments Crate" desc = "A variety of garnishes for topping off your dish with a little extra pizzaz. Contains a bottle of enzyme, a salt shaker, a pepper mill, a bottle of ketchup, a bottle of hot sauce, a bottle of BBQ sauce, and a bottle of cream." cost = 250 - contains = list(/obj/item/reagent_containers/food/condiment/enzyme, - /obj/item/reagent_containers/food/condiment/saltshaker, - /obj/item/reagent_containers/food/condiment/peppermill, - /obj/item/reagent_containers/food/condiment/ketchup, - /obj/item/reagent_containers/food/condiment/hotsauce, + contains = list(/obj/item/reagent_containers/condiment/enzyme, + /obj/item/reagent_containers/condiment/saltshaker, + /obj/item/reagent_containers/condiment/peppermill, + /obj/item/reagent_containers/condiment/ketchup, + /obj/item/reagent_containers/condiment/hotsauce, /obj/item/reagent_containers/food/drinks/bottle/cream, - /obj/item/reagent_containers/food/condiment/bbqsauce + /obj/item/reagent_containers/condiment/bbqsauce ) crate_name = "condiments crate" crate_type = /obj/structure/closet/crate/freezer diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm index 7790e696ee15..744e9f67e2f2 100644 --- a/code/modules/cargo/packs/mechs.dm +++ b/code/modules/cargo/packs/mechs.dm @@ -220,6 +220,15 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster ) +/datum/supply_pack/mech/equipment/recharger + name = "Exosuit Recharger kit" + desc = "Two boards for an exosuit recharger and recharger console. For the stylish exosuit bay." + cost = 400 + contains = list( + /obj/item/circuitboard/computer/mech_bay_power_console, + /obj/item/circuitboard/machine/mech_recharger + ) + /* weapons */ diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 25ed4aaab554..e4081a448e0b 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -146,3 +146,14 @@ contains = list(/obj/structure/reagent_dispensers/foamtank) crate_name = "foam tank crate" crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/tools/radfoamtank + name = "Radiation Foam Tank Crate" + desc = "Contains a tank of anti-radiation foam. Pressurized sprayer included!" + cost = 1500 + contains = list( + /obj/item/watertank/anti_rad, + /obj/structure/reagent_dispensers/foamtank/antirad + ) + crate_name = "foam tank crate" + crate_type = /obj/structure/closet/crate/large diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index e292a6e61d03..aaba1d8054cf 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -495,7 +495,7 @@ gloves = /obj/item/clothing/gloves/color/black uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/lp alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp - dcoat = /obj/item/clothing/suit/jacket + dcoat = /obj/item/clothing/suit/armor/nanotrasen/sec_director shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/beret/command diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index d1ee50d1a629..0d05c4e0cf7f 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -137,6 +137,7 @@ icon_state = "bronze" custom_materials = list(/datum/material/iron=1000) resistance_flags = FIRE_PROOF + attachment_slot = null var/medaltype = "medal" //Sprite used for medalbox var/commended = FALSE @@ -409,6 +410,7 @@ icon_state = "holster" item_state = "holster" pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster + attachment_slot = null /obj/item/clothing/accessory/holster/detective name = "detective's shoulder holster" @@ -477,7 +479,7 @@ icon_state = "rilena_pin" above_suit = FALSE minimize_when_attached = TRUE - attachment_slot = CHEST + attachment_slot = null /obj/item/clothing/accessory/rilena_pin/on_uniform_equip(obj/item/clothing/under/U, user) var/mob/living/L = user diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index adde1124935f..4ba2d878ad46 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -62,7 +62,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 z_original = z destination = end special_target = aimed_at - GLOB.poi_list += src + SSpoints_of_interest.make_point_of_interest(src) var/special_target_valid = FALSE if(special_target) @@ -81,7 +81,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 ghost.ManualFollow(src) /obj/effect/immovablerod/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/effect/immovablerod/Moved() diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index 890bbc0f1f2b..8e4baab893fc 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -34,7 +34,7 @@ /obj/item/greentext/Initialize(mapload) . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) roundend_callback = CALLBACK(src, PROC_REF(check_winner)) SSticker.OnRoundend(roundend_callback) @@ -83,7 +83,7 @@ if(!(resistance_flags & ON_FIRE) && !force) return QDEL_HINT_LETMELIVE - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) LAZYREMOVE(SSticker.round_end_events, roundend_callback) roundend_callback = null //This ought to free the callback datum, and prevent us from harddeling for(var/i in GLOB.player_list) diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 0adf98ba5666..bd24a21d1a16 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -5,7 +5,7 @@ // to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code. //Food items that aren't eaten normally and leave an empty container behind. -/obj/item/reagent_containers/food/condiment +/obj/item/reagent_containers/condiment name = "condiment bottle" desc = "Just your average condiment bottle." icon = 'icons/obj/food/containers.dmi' @@ -36,23 +36,25 @@ var/icon_empty = "" fill_icon_thresholds = list(0, 10, 25, 50, 75, 100) -/obj/item/reagent_containers/food/condiment/Initialize() +/obj/item/reagent_containers/condiment/Initialize() . = ..() possible_states = typelist("possible_states", possible_states) update_appearance() -/obj/item/reagent_containers/food/condiment/update_icon() +/obj/item/reagent_containers/condiment/update_icon() cut_overlays() if(reagents.reagent_list.len > 0 && possible_states.len) - var/main_reagent = reagents.get_master_reagent_id() - if(main_reagent in possible_states) - icon_state = possible_states[main_reagent]["icon_state"] - item_state = possible_states[main_reagent]["item_state"] - icon_empty = possible_states[main_reagent]["icon_empty"] - name = possible_states[main_reagent]["name"] - desc = possible_states[main_reagent]["desc"] + + var/datum/reagent/main_reagent_ref = reagents.get_master_reagent() + var/main_reagent_id = main_reagent_ref.type + if(main_reagent_id in possible_states) + icon_state = possible_states[main_reagent_id]["icon_state"] + item_state = possible_states[main_reagent_id]["item_state"] + icon_empty = possible_states[main_reagent_id]["icon_empty"] + name = possible_states[main_reagent_id]["name"] + desc = possible_states[main_reagent_id]["desc"] return ..(TRUE) // Don't fill normally else name = "condiment bottle" @@ -64,7 +66,7 @@ . = ..() -/obj/item/reagent_containers/food/condiment/attack(mob/M, mob/user, def_zone) +/obj/item/reagent_containers/condiment/attack(mob/M, mob/user, def_zone) if(!reagents || !reagents.total_volume) to_chat(user, "None of [src] left, oh no!") @@ -90,7 +92,7 @@ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) return 1 -/obj/item/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/afterattack(obj/target, mob/user , proximity) . = ..() if(!proximity) return @@ -119,23 +121,23 @@ to_chat(user, "You transfer [trans] units of the condiment to [target].") playsound(src, 'sound/items/glass_transfer.ogg', 50, 1) -/obj/item/reagent_containers/food/condiment/on_reagent_change(changetype) +/obj/item/reagent_containers/condiment/on_reagent_change(changetype) update_appearance() -/obj/item/reagent_containers/food/condiment/enzyme +/obj/item/reagent_containers/condiment/enzyme name = "universal enzyme" desc = "Used in cooking various dishes." icon_state = "enzyme" list_reagents = list(/datum/reagent/consumable/enzyme = 50) -/obj/item/reagent_containers/food/condiment/sugar +/obj/item/reagent_containers/condiment/sugar name = "sugar sack" desc = "Tasty spacey sugar!" icon_state = "sugar" item_state = "flour" list_reagents = list(/datum/reagent/consumable/sugar = 50) -/obj/item/reagent_containers/food/condiment/saltshaker //Separate from above since it's a small shaker rather then +/obj/item/reagent_containers/condiment/saltshaker //Separate from above since it's a small shaker rather then name = "salt shaker" // a large one. desc = "Salt. From space oceans, presumably." icon_state = "saltshakersmall" @@ -145,7 +147,7 @@ volume = 20 list_reagents = list(/datum/reagent/consumable/sodiumchloride = 20) -/obj/item/reagent_containers/food/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) +/obj/item/reagent_containers/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) . = ..() if(!proximity) return @@ -158,7 +160,7 @@ new/obj/effect/decal/cleanable/food/salt(target) return -/obj/item/reagent_containers/food/condiment/peppermill +/obj/item/reagent_containers/condiment/peppermill name = "pepper mill" desc = "Often used to flavor food or make people sneeze." icon_state = "peppermillsmall" @@ -168,7 +170,7 @@ volume = 20 list_reagents = list(/datum/reagent/consumable/blackpepper = 20) -/obj/item/reagent_containers/food/condiment/milk +/obj/item/reagent_containers/condiment/milk name = "space milk" desc = "It's milk. White and nutritious goodness!" icon_state = "milk" @@ -177,14 +179,14 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/milk = 50) -/obj/item/reagent_containers/food/condiment/flour +/obj/item/reagent_containers/condiment/flour name = "flour sack" desc = "A big bag of flour. Good for baking!" icon_state = "flour" item_state = "flour" list_reagents = list(/datum/reagent/consumable/flour = 30) -/obj/item/reagent_containers/food/condiment/soymilk +/obj/item/reagent_containers/condiment/soymilk name = "soy milk" desc = "It's soy milk. White and nutritious goodness!" icon_state = "soymilk" @@ -193,20 +195,20 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/soymilk = 50) -/obj/item/reagent_containers/food/condiment/rice +/obj/item/reagent_containers/condiment/rice name = "rice sack" desc = "A big bag of rice. Good for cooking!" icon_state = "rice" item_state = "flour" list_reagents = list(/datum/reagent/consumable/rice = 30) -/obj/item/reagent_containers/food/condiment/soysauce +/obj/item/reagent_containers/condiment/soysauce name = "soy sauce" desc = "A salty soy-based flavoring." icon_state = "soysauce" list_reagents = list(/datum/reagent/consumable/soysauce = 50) -/obj/item/reagent_containers/food/condiment/mayonnaise +/obj/item/reagent_containers/condiment/mayonnaise name = "mayonnaise" desc = "An oily condiment made from egg yolks." icon_state = "mayonnaise" @@ -214,7 +216,7 @@ //Food packs. To easily apply deadly toxi... delicious sauces to your food! -/obj/item/reagent_containers/food/condiment/pack +/obj/item/reagent_containers/condiment/pack name = "condiment pack" desc = "A small plastic pack with condiments to put on your food." icon_state = "condi_empty" @@ -234,14 +236,19 @@ /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ sauce", "Hand wipes not included."), ) -/obj/item/reagent_containers/food/condiment/pack/update_icon() +/obj/item/reagent_containers/condiment/pack/create_reagents(max_vol, flags) + . = ..() + RegisterSignals(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_REM_REAGENT), PROC_REF(on_reagent_add), TRUE) + RegisterSignal(reagents, COMSIG_REAGENTS_DEL_REAGENT, PROC_REF(on_reagent_del), TRUE) + +/obj/item/reagent_containers/condiment/pack/update_icon() SHOULD_CALL_PARENT(FALSE) - return ..() + return -/obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. +/obj/item/reagent_containers/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. return -/obj/item/reagent_containers/food/condiment/pack/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/pack/afterattack(obj/target, mob/user , proximity) . = ..() if(!proximity) return @@ -257,67 +264,74 @@ src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user) qdel(src) -/obj/item/reagent_containers/food/condiment/pack/on_reagent_change(changetype) - if(reagents.reagent_list.len > 0) - var/main_reagent = reagents.get_master_reagent_id() - if(main_reagent in possible_states) - var/list/temp_list = possible_states[main_reagent] - icon_state = temp_list[1] - desc = temp_list[3] - else - icon_state = "condi_mixed" - desc = "A small condiment pack. The label says it contains [originalname]" +/// Handles reagents getting added to the condiment pack. +/obj/item/reagent_containers/condiment/pack/proc/on_reagent_add(datum/reagents/reagents) + SIGNAL_HANDLER + + var/datum/reagent/main_reagent = reagents.get_master_reagent() + + var/main_reagent_type = main_reagent?.type + if(main_reagent_type in possible_states) + var/list/temp_list = possible_states[main_reagent_type] + icon_state = temp_list[1] + desc = temp_list[3] else - icon_state = "condi_empty" - desc = "A small condiment pack. It is empty." + icon_state = "condi_mixed" + desc = "A small condiment pack. The label says it contains [originalname]" + +/// Handles reagents getting removed from the condiment pack. +/obj/item/reagent_containers/condiment/pack/proc/on_reagent_del(datum/reagents/reagents) + SIGNAL_HANDLER + icon_state = "condi_empty" + desc = "A small condiment pack. It is empty." //Ketchup -/obj/item/reagent_containers/food/condiment/pack/ketchup +/obj/item/reagent_containers/condiment/pack/ketchup name = "ketchup pack" originalname = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 10) //Hot sauce -/obj/item/reagent_containers/food/condiment/pack/hotsauce +/obj/item/reagent_containers/condiment/pack/hotsauce name = "hotsauce pack" originalname = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 10) -/obj/item/reagent_containers/food/condiment/pack/astrotame +/obj/item/reagent_containers/condiment/pack/astrotame name = "astrotame pack" originalname = "astrotame" list_reagents = list(/datum/reagent/consumable/astrotame = 5) -/obj/item/reagent_containers/food/condiment/pack/bbqsauce +/obj/item/reagent_containers/condiment/pack/bbqsauce name = "bbq sauce pack" originalname = "bbq sauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 10) -/obj/item/reagent_containers/food/condiment/ketchup +/obj/item/reagent_containers/condiment/ketchup name = "ketchup bottle" desc = "You feel more american already" icon_state = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 50) -/obj/item/reagent_containers/food/condiment/bbqsauce +/obj/item/reagent_containers/condiment/bbqsauce name = "bbq sauce bottle" desc = "Hand wipes not included" icon_state = "bbqsauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 50) -/obj/item/reagent_containers/food/condiment/hotsauce +/obj/item/reagent_containers/condiment/hotsauce name = "hot sauce bottle" desc = "You can almost TASTE the stomach ulcers now!" icon_state = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 50) -/obj/item/reagent_containers/food/condiment/coldsauce +/obj/item/reagent_containers/condiment/coldsauce name = "cold sauce bottle" desc = "Leaves the tounge numb in it's passage" icon_state = "coldsauce" list_reagents = list(/datum/reagent/consumable/frostoil = 50) -/obj/item/reagent_containers/food/condiment/oliveoil +/obj/item/reagent_containers/condiment/oliveoil name = "olive oil bottle" desc = "A delicious oil used in cooking" icon_state = "oliveoil" diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 62e6a4075a93..bcee075e0dcd 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -44,7 +44,7 @@ /obj/item/weldingtool, /obj/item/reagent_containers/glass, /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/food/condiment, + /obj/item/reagent_containers/condiment, /obj/item/storage, /obj/item/smallDelivery, ) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 5852ea34742b..9a6b10e0444b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -366,7 +366,7 @@ /obj/machinery/smartfridge/drinks/accept_check(obj/item/O) if(!istype(O, /obj/item/reagent_containers) || (O.item_flags & ABSTRACT) || !O.reagents || !O.reagents.reagent_list.len) return FALSE - if(istype(O, /obj/item/reagent_containers/glass) || istype(O, /obj/item/reagent_containers/food/drinks) || istype(O, /obj/item/reagent_containers/food/condiment)) + if(istype(O, /obj/item/reagent_containers/glass) || istype(O, /obj/item/reagent_containers/food/drinks) || istype(O, /obj/item/reagent_containers/condiment)) return TRUE // ---------------------------- diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 3e0bed238bec..05e81421ac4f 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -8,7 +8,7 @@ name = "proto-magnetic crusher" desc = "A multipurpose disembarkation and self-defense tool designed by EXOCOM using an incomplete Nanotrasen prototype. \ Found in the grime-stained hands of wannabee explorers across the frontier, it cuts rock and hews flora using magnetic osscilation and a heavy cleaving edge." - force = 0 //You can't hit stuff unless wielded + force = 0 //You can't hit stuff unless it's wielded w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK throwforce = 5 @@ -28,33 +28,19 @@ var/charge_time = 15 var/detonation_damage = 20 var/backstab_bonus = 10 - var/wielded = FALSE // track wielded status on item - -/obj/item/kinetic_crusher/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/kinetic_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15) -/// triggered on wield of two handed item -/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/kinetic_crusher/proc/on_unwield(obj/item/source, mob/user) - wielded = FALSE - /obj/item/kinetic_crusher/examine(mob/living/user) . = ..() . += "Induce magnetism in an enemy by striking them with a magnetospheric wave, then hit them in melee to force a waveform collapse for [force + detonation_damage] damage." . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." /obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) to_chat(user, "[src] is too heavy to use with one hand! You fumble and drop everything.") user.drop_all_held_items() return @@ -66,7 +52,7 @@ /obj/item/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) . = ..() - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return if(!proximity_flag && charged)//Mark a target, or mine a tile. var/turf/proj_turf = user.loc @@ -118,7 +104,7 @@ /obj/item/kinetic_crusher/update_icon_state() - item_state = "crusher[wielded]" // this is not icon_state and not supported by 2hcomponent + item_state = "crusher[HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent return ..() /obj/item/kinetic_crusher/update_overlays() @@ -182,7 +168,7 @@ user.changeNext_move(CLICK_CD_MELEE * 2.0)//...slow swinga. /obj/item/kinetic_crusher/old/update_icon_state() - item_state = "crusherold[wielded]" // still not supported by 2hcomponent + item_state = "crusherold[HAS_TRAIT(src, TRAIT_WIELDED)]" // still not supported by 2hcomponent return ..() //100% original syndicate oc, plz do not steal. More effective against human targets then the typical crusher, with a bit of block chance. @@ -195,7 +181,7 @@ name = "magnetic cleaver" desc = "Designed by Syndicate Research and Development for their resource-gathering operations on hostile worlds. Syndicate Legal Ops would like to stress that you've never seen anything like this before. Ever." armour_penetration = 69//nice cut - force = 0 //You can't hit stuff unless wielded + force = 0 //You can't hit stuff unless HAS_TRAIT(src, TRAIT_WIELDED) w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK throwforce = 5 @@ -216,35 +202,40 @@ charge_time = 15 detonation_damage = 35 backstab_bonus = 15 - wielded = FALSE // track wielded status on item actions_types = list() + +/obj/item/kinetic_crusher/syndie_crusher/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + /obj/item/kinetic_crusher/syndie_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 150) AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=10) /// triggered on wield of two handed item -/obj/item/kinetic_crusher/syndie_crusher/on_wield(obj/item/source, mob/user) - . = ..() - wielded = TRUE +/obj/item/kinetic_crusher/syndie_crusher/proc/on_wield(obj/item/source, mob/user) + SIGNAL_HANDLER + icon_state = "crushersyndie1" playsound(user, 'sound/weapons/saberon.ogg', 35, TRUE) - set_light_on(wielded) + set_light_on(HAS_TRAIT(src, TRAIT_WIELDED)) /// triggered on unwield of two handed item -/obj/item/kinetic_crusher/syndie_crusher/on_unwield(obj/item/source, mob/user) - . = ..() - wielded = FALSE +/obj/item/kinetic_crusher/syndie_crusher/proc/on_unwield(obj/item/source, mob/user) + SIGNAL_HANDLER + icon_state = "crushersyndie" playsound(user, 'sound/weapons/saberoff.ogg', 35, TRUE) - set_light_on(wielded) + set_light_on(HAS_TRAIT(src, TRAIT_WIELDED)) /obj/item/kinetic_crusher/syndie_crusher/update_icon_state() - item_state = "crushersyndie[wielded]" // this is not icon_state and not supported by 2hcomponent + item_state = "crushersyndie[HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent return ..() /obj/item/kinetic_crusher/syndie_crusher/update_overlays() . = ..() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) . += "[icon_state]_lit" diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 52d910e8a732..8807aa5872b7 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -150,34 +150,6 @@ if(28) new /obj/item/clothing/suit/armor/ascetic(src) -//KA modkit design discs -/obj/item/disk/design_disk/modkit_disc - name = "KA Mod Disk" - desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." - illustration = "accel" - color = "#6F6F6F" - var/modkit_design = /datum/design/unique_modkit - -/obj/item/disk/design_disk/modkit_disc/Initialize() - . = ..() - blueprints[1] = new modkit_design - -/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe - name = "Offensive Mining Explosion Mod Disk" - modkit_design = /datum/design/unique_modkit/offensive_turf_aoe - -/obj/item/disk/design_disk/modkit_disc/rapid_repeater - name = "Rapid Repeater Mod Disk" - modkit_design = /datum/design/unique_modkit/rapid_repeater - -/obj/item/disk/design_disk/modkit_disc/resonator_blast - name = "Resonator Blast Mod Disk" - modkit_design = /datum/design/unique_modkit/resonator_blast - -/obj/item/disk/design_disk/modkit_disc/bounty - name = "Death Syphon Mod Disk" - modkit_design = /datum/design/unique_modkit/bounty - /datum/design/unique_modkit category = list("Mining Designs", "Cyborg Upgrade Modules") //can't be normally obtained build_type = PROTOLATHE | MECHFAB diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 8fbf9c32a38e..2dbbd9d4b65b 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -35,6 +35,7 @@ . = ..() GLOB.new_player_list += src + SSpoints_of_interest.make_point_of_interest(src) /mob/dead/new_player/Destroy() GLOB.new_player_list -= src diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index c15c4a1af835..0fcfa5c13940 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -62,6 +62,9 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/datum/orbit_menu/orbit_menu var/datum/spawners_menu/spawners_menu + // The POI we're orbiting (orbit menu) + var/orbiting_ref + /mob/dead/observer/Initialize() set_invisibility(GLOB.observer_default_invisibility) @@ -142,6 +145,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) . = ..() + SSpoints_of_interest.make_point_of_interest(src) + grant_all_languages() show_data_huds() data_huds_on = 1 @@ -499,7 +504,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/list/dest = list() //List of possible destinations (mobs) var/target = null //Chosen target. - dest += getpois(mobs_only = TRUE) //Fill list, prompt user with list + dest += SSpoints_of_interest.get_mob_pois() target = input("Please, select a player!", "Jump to Mob", null, null) as null|anything in dest if (!target)//Make sure we actually have a target @@ -839,20 +844,24 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/reset_perspective(atom/A) if(client) if(ismob(client.eye) && (client.eye != src)) - var/mob/target = client.eye - observetarget = null - if(target.observers) - LAZYREMOVE(target.observers, src) + cleanup_observe() if(..()) if(hud_used) client.screen = list() hud_used.show_hud(hud_used.hud_version) +/mob/dead/observer/proc/cleanup_observe() + var/mob/target = client.eye + observetarget = null + client?.perspective = initial(client.perspective) + if(target.observers) + LAZYREMOVE(target.observers, src) + /mob/dead/observer/verb/observe() set name = "Observe" set category = "Ghost" - var/list/creatures = getpois() + var/list/creatures = SSpoints_of_interest.get_mob_pois() reset_perspective(null) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 86d54577538c..051faa5bedac 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -1,6 +1,9 @@ /datum/orbit_menu + ///mobs worth orbiting. Because spaghetti, all mobs have the point of interest, but only some are allowed to actually show up. + ///this obviously should be changed in the future, so we only add mobs as POI if they actually are interesting, and we don't use + ///a typecache. + var/static/list/mob_allowed_typecache var/mob/dead/observer/owner - var/auto_observe = FALSE /datum/orbit_menu/New(mob/dead/observer/new_owner) if(!istype(new_owner)) @@ -23,87 +26,243 @@ switch(action) if ("orbit") var/ref = params["ref"] - var/atom/movable/poi = (locate(ref) in GLOB.mob_list) || (locate(ref) in GLOB.poi_list) - if (poi == null) - . = TRUE - return + var/auto_observe = params["auto_observe"] + var/atom/movable/poi = SSpoints_of_interest.get_poi_atom_by_ref(ref) + + if((ismob(poi) && !SSpoints_of_interest.is_valid_poi(poi, CALLBACK(src, PROC_REF(validate_mob_poi)))) \ + || !SSpoints_of_interest.is_valid_poi(poi) + ) + to_chat(usr, span_notice("That point of interest is no longer valid.")) + return TRUE + + var/mob/dead/observer/user = usr owner.ManualFollow(poi) owner.reset_perspective(null) + user.orbiting_ref = ref if (auto_observe) owner.do_observe(poi) . = TRUE if ("refresh") update_static_data(owner, ui) . = TRUE - if ("toggle_observe") - auto_observe = !auto_observe - if (auto_observe && owner.orbit_target) - owner.do_observe(owner.orbit_target) - else - owner.reset_perspective(null) + /datum/orbit_menu/ui_data(mob/user) var/list/data = list() - data["auto_observe"] = auto_observe + + if(isobserver(user)) + data["orbiting"] = get_currently_orbiting(user) + return data /datum/orbit_menu/ui_static_data(mob/user) - var/list/data = list() + var/list/new_mob_pois = SSpoints_of_interest.get_mob_pois(CALLBACK(src, PROC_REF(validate_mob_poi)), append_dead_role = FALSE) + var/list/new_other_pois = SSpoints_of_interest.get_other_pois() var/list/alive = list() var/list/antagonists = list() + var/list/critical = list() var/list/dead = list() var/list/ghosts = list() var/list/misc = list() var/list/npcs = list() + var/list/ships = list() - var/list/pois = getpois(skip_mindless = TRUE, specify_dead_role = FALSE) - for (var/name in pois) + for(var/name in new_mob_pois) var/list/serialized = list() - serialized["name"] = name - - var/poi = pois[name] - - serialized["ref"] = REF(poi) - - var/mob/M = poi - if (istype(M)) - if (isobserver(M)) - ghosts += list(serialized) - else if (M.stat == DEAD) - dead += list(serialized) - else if (M.mind == null) - npcs += list(serialized) - else - var/number_of_orbiters = M.orbiters?.orbiters?.len - if (number_of_orbiters) - serialized["orbiters"] = number_of_orbiters - - var/datum/mind/mind = M.mind - var/was_antagonist = FALSE - - for (var/_A in mind.antag_datums) - var/datum/antagonist/A = _A - if (A.show_to_ghosts) - was_antagonist = TRUE - serialized["antag"] = A.name - antagonists += list(serialized) - break - - if (!was_antagonist) - alive += list(serialized) + var/mob/mob_poi = new_mob_pois[name] + var/number_of_orbiters = length(mob_poi.get_all_orbiters()) + + if(isnewplayer(mob_poi)) + continue + + serialized["ref"] = REF(mob_poi) + serialized["full_name"] = mob_poi.name + serialized["job"] = mob_poi.job + if(number_of_orbiters) + serialized["orbiters"] = number_of_orbiters + + if(isobserver(mob_poi)) + ghosts += list(serialized) + continue + + if(mob_poi.stat == DEAD) + dead += list(serialized) + continue + + if(isnull(mob_poi.mind)) + if(isliving(mob_poi)) + var/mob/living/npc = mob_poi + serialized["health"] = FLOOR((npc.health / npc.maxHealth * 100), 1) + + npcs += list(serialized) + continue + + serialized["client"] = !!mob_poi.client + serialized["name"] = mob_poi.real_name + + if(isliving(mob_poi)) + serialized += get_living_data(mob_poi) + + var/list/antag_data = get_antag_data(mob_poi.mind) + if(length(antag_data)) + serialized += antag_data + antagonists += list(serialized) + continue + + alive += list(serialized) + + for(var/name in new_other_pois) + var/atom/atom_poi = new_other_pois[name] + + var/list/other_data = get_misc_data(atom_poi) + var/misc_data = list(other_data[1]) + + if(istype(atom_poi, /obj/machinery/computer/helm)) + ships += misc_data else - misc += list(serialized) - - data["alive"] = alive - data["antagonists"] = antagonists - data["dead"] = dead - data["ghosts"] = ghosts - data["misc"] = misc - data["npcs"] = npcs - return data + misc += misc_data + + if(other_data[2]) // Critical = TRUE + critical += misc_data + + return list( + "alive" = alive, + "antagonists" = antagonists, + "critical" = critical, + "dead" = dead, + "ghosts" = ghosts, + "misc" = misc, + "npcs" = npcs, + "ships" = ships, + ) /datum/orbit_menu/ui_assets() . = ..() || list() . += get_asset_datum(/datum/asset/simple/orbit) +/// Helper function to get threat type, group, overrides for job and icon +/datum/orbit_menu/proc/get_antag_data(datum/mind/poi_mind) as /list + var/list/serialized = list() + + for(var/datum/antagonist/antag as anything in poi_mind.antag_datums) + if(!antag.show_to_ghosts) + continue + + serialized["antag"] = antag.name + serialized["antag_group"] = antag.antagpanel_category + serialized["job"] = antag.name + serialized["icon"] = antag.antag_hud_name + + return serialized + +/// Helper to get the current thing we're orbiting (if any) +/datum/orbit_menu/proc/get_currently_orbiting(mob/dead/observer/user) + if(isnull(user.orbiting_ref)) + return + + var/atom/poi = SSpoints_of_interest.get_poi_atom_by_ref(user.orbiting_ref) + if(isnull(poi)) + user.orbiting_ref = null + return + + if((ismob(poi) && !SSpoints_of_interest.is_valid_poi(poi, CALLBACK(src, PROC_REF(validate_mob_poi)))) \ + || !SSpoints_of_interest.is_valid_poi(poi) + ) + user.orbiting_ref = null + return + + var/list/serialized = list() + + if(!ismob(poi)) + var/list/misc_info = get_misc_data(poi) + serialized += misc_info[1] + return serialized + + var/mob/mob_poi = poi + serialized["full_name"] = mob_poi.name + serialized["ref"] = REF(poi) + + if(mob_poi.mind) + serialized["client"] = !!mob_poi.client + serialized["name"] = mob_poi.real_name + + if(isliving(mob_poi)) + serialized += get_living_data(mob_poi) + + return serialized + +/// Helper function to get job / icon / health data for a living mob +/datum/orbit_menu/proc/get_living_data(mob/living/player) as /list + var/list/serialized = list() + + serialized["health"] = FLOOR((player.health / player.maxHealth * 100), 1) + + return serialized + + +/// Gets a list: Misc data and whether it's critical. Handles all snowflakey type cases +/datum/orbit_menu/proc/get_misc_data(atom/movable/atom_poi) as /list + var/list/misc = list() + var/critical = FALSE + + misc["ref"] = REF(atom_poi) + misc["full_name"] = atom_poi.name + + // Display the nuke timer + if(istype(atom_poi, /obj/machinery/nuclearbomb)) + var/obj/machinery/nuclearbomb/bomb = atom_poi + + if(bomb.timing) + misc["extra"] = "Timer: [bomb.countdown?.displayed_text]s" + critical = TRUE + + return list(misc, critical) + + // Display the holder if its a nuke disk + if(istype(atom_poi, /obj/item/disk/nuclear)) + var/obj/item/disk/nuclear/disk = atom_poi + var/mob/holder = disk.pulledby || get(disk, /mob) + misc["extra"] = "Location: [holder?.real_name || "Unsecured"]" + + return list(misc, critical) + + // Display singuloths if they exist + if(istype(atom_poi, /obj/singularity)) + var/obj/singularity/singulo = atom_poi + misc["extra"] = "Energy: [round(singulo.energy)]" + + if(singulo.current_size > 2) + critical = TRUE + + return list(misc, critical) + + if(istype(atom_poi, /obj/machinery/computer/helm)) + var/obj/machinery/computer/helm/helm_poi = atom_poi + if(helm_poi.current_ship) + misc["extra"] = "Ship: [helm_poi.current_ship.name]" + + return list(misc, critical) + + return list(misc, critical) + +/** + * Helper POI validation function passed as a callback to various SSpoints_of_interest procs. + * + * Provides extended validation above and beyond standard, limiting mob POIs without minds or ckeys + * unless they're mobs, camera mobs or megafauna. Also allows exceptions for mobs that are deadchat controlled. + * + * If they satisfy that requirement, falls back to default validation for the POI. + */ +/datum/orbit_menu/proc/validate_mob_poi(datum/point_of_interest/mob_poi/potential_poi) + var/mob/potential_mob_poi = potential_poi.target + if(!potential_mob_poi.mind && !potential_mob_poi.ckey) + if(!mob_allowed_typecache) + mob_allowed_typecache = typecacheof(list( + /mob/living/simple_animal/hostile/megafauna, + /mob/living/simple_animal/hostile/boss + )) + if(!is_type_in_typecache(potential_mob_poi, mob_allowed_typecache) && !potential_mob_poi.GetComponent(/datum/component/deadchat_control)) + return FALSE + + return potential_poi.validate() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1258df8b84c5..6046cfe82b63 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -9,6 +9,7 @@ diag_hud.add_to_hud(src) faction += "[REF(src)]" GLOB.mob_living_list += src + SSpoints_of_interest.make_point_of_interest(src) if(speed) update_living_varspeed() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 2d1430296fe7..9e2a0bd9aaca 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -782,7 +782,7 @@ basic_modules = list( /obj/item/assembly/flash/cyborg, /obj/item/reagent_containers/glass/beaker/large, //I know a shaker is more appropiate but this is for ease of identification - /obj/item/reagent_containers/food/condiment/enzyme, + /obj/item/reagent_containers/condiment/enzyme, /obj/item/pen, /obj/item/toy/crayon/spraycan/borg, /obj/item/extinguisher/mini, @@ -806,7 +806,7 @@ /obj/item/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/food/condiment/enzyme) in basic_modules + var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/condiment/enzyme) in basic_modules if(O) O.reagents.add_reagent(/datum/reagent/consumable/enzyme, 2 * coeff) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index e0537594c8ff..76dc1f095009 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -30,11 +30,6 @@ var/area/A = get_area(src) if(A) notify_ghosts("A drone shell has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE) - GLOB.poi_list |= src - -/obj/effect/mob_spawn/drone/Destroy() - GLOB.poi_list -= src - . = ..() //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/mob_spawn/drone/attack_ghost(mob/user) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 863abf56dad1..ff06df9c6113 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -607,12 +607,12 @@ GLOBAL_DATUM(blackbox, /obj/machinery/smartfridge/black_box) var/ready_to_deploy = FALSE /obj/machinery/anomalous_crystal/helpers/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/machinery/anomalous_crystal/helpers/ActivationReaction(mob/user, method) if(..() && !ready_to_deploy) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) ready_to_deploy = TRUE notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_ATTACK, header = "Anomalous crystal activated") diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b7ca291a5be4..bd9133ffce20 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -297,6 +297,8 @@ /// track our timers and reagents /obj/item/organ/legion_skull/proc/skull_check() + if(!owner) + return if(!malignance) malignance = new() malignance.infect(owner, FALSE) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b1788a7aa50d..a05c2e65688e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -462,7 +462,7 @@ else client.perspective = EYE_PERSPECTIVE client.eye = loc - return 1 + return TRUE /// Show the mob's inventory to another mob /mob/proc/show_inv(mob/user) diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index d082503a012d..06324b8f8b78 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -156,7 +156,7 @@ *something like "mob_209". In order to find the actual atom, we need *to search the appropriate list for the REF string. This is dependant *on the program (Lifeline uses GLOB.human_list, while Fission360 uses - *GLOB.poi_list), but the result will be the same; evaluate the string and + *SSpoints_of_interest.other_points_of_interest), but the result will be the same; evaluate the string and *return an atom reference. */ /datum/computer_file/program/radar/proc/find_atom() @@ -269,7 +269,7 @@ pointercolor = "red" /datum/computer_file/program/radar/fission360/find_atom() - return locate(selected) in GLOB.poi_list + return locate(selected) in SSpoints_of_interest.other_points_of_interest /datum/computer_file/program/radar/fission360/scan() if(world.time < next_scan) @@ -286,7 +286,7 @@ name = nuke.name, ) objects += list(nukeinfo) - var/obj/item/disk/nuclear/disk = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/disk = locate() in SSpoints_of_interest.other_points_of_interest if(trackable(disk)) var/list/nukeinfo = list( ref = REF(disk), diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm index 5b1f27fa2cb9..3b825ce39524 100644 --- a/code/modules/overmap/helm.dm +++ b/code/modules/overmap/helm.dm @@ -49,6 +49,8 @@ /obj/machinery/computer/helm/Initialize(mapload, obj/item/circuitboard/C) . = ..() + if(!viewer) + SSpoints_of_interest.make_point_of_interest(src) jump_allowed = world.time + CONFIG_GET(number/bluespace_jump_wait) ntnet_relay = new(src) @@ -76,6 +78,7 @@ SStgui.close_uis(src) ASSERT(length(concurrent_users) == 0) QDEL_NULL(ntnet_relay) + SSpoints_of_interest.remove_point_of_interest(src) if(current_ship) current_ship.helms -= src current_ship = null diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index 5d851e52f4fd..efa4e36026c0 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -56,7 +56,7 @@ var/owner_check_timer_id /// The ship's join mode. Controls whether players can join freely, have to apply, or can't join at all. - var/join_mode = SHIP_JOIN_MODE_OPEN + var/join_mode = SHIP_JOIN_MODE_CLOSED /// Lazylist of /datum/ship_applications for this ship. Only used if join_mode == SHIP_JOIN_MODE_APPLY var/list/datum/ship_application/applications diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 9218b829e940..499a88b161f1 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -38,7 +38,7 @@ src.energy = starting_energy . = ..() START_PROCESSING(SSobj, src) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) GLOB.singularities |= src for(var/obj/machinery/power/singularity_beacon/singubeacon in GLOB.machines) if(singubeacon.active) @@ -53,7 +53,7 @@ /obj/singularity/Destroy() STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) GLOB.singularities.Remove(src) return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 6ed294fa8936..400366415d9a 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -275,7 +275,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) SSair.start_processing_machine(src, mapload) countdown = new(src) countdown.start() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) radio = new(src) radio.keyslot = new radio_key radio.listening = 0 @@ -293,7 +293,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) investigate_log("has been destroyed.", INVESTIGATE_SUPERMATTER) SSair.stop_processing_machine(src) QDEL_NULL(radio) - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) QDEL_NULL(countdown) if(is_main_engine && GLOB.main_supermatter_engine == src) GLOB.main_supermatter_engine = null diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 7d58610fc7f7..d4a6f71cca4d 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -151,7 +151,7 @@ /obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target) if (istype(target)) target.orbiting_balls += src - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) target.dissipate_strength = target.orbiting_balls.len . = ..() diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index e235e00b98f6..8705a932b392 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -88,14 +88,14 @@ projectile_type = /obj/projectile/bullet/c38/dumdum /obj/item/ammo_casing/c38/hotshot - name = ".38 hot shot bullet casing" - desc = "A .38 hot shot bullet casing." + name = ".38 hearth bullet casing" + desc = "A .38 hearth bullet casing." bullet_skin = "incen" projectile_type = /obj/projectile/bullet/c38/hotshot /obj/item/ammo_casing/c38/iceblox - name = ".38 iceblox bullet casing" - desc = "A .38 iceblox bullet casing." + name = ".38 chilled bullet casing" + desc = "A .38 chilled bullet casing." bullet_skin = "surplus" projectile_type = /obj/projectile/bullet/c38/iceblox diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 9f6a8c169ecd..24854030c041 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -46,6 +46,13 @@ icon_state = "incendiary" projectile_type = /obj/projectile/bullet/incendiary/shotgun +/obj/item/ammo_casing/shotgun/blank + name = "blank shell" + desc = "A shell packed with powder but no projectile." + icon_state = "blank" + projectile_type = /obj/projectile/bullet/pellet/blank + custom_materials = list(/datum/material/iron=250) + /obj/item/ammo_casing/shotgun/improvised name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index b590f0831df1..5b78f1fc93a1 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -113,13 +113,13 @@ ammo_type = /obj/item/ammo_casing/c38/dumdum /obj/item/ammo_box/c38/hotshot - name = "speed loader (.38 hot shot)" - desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hot shot bullets contain an incendiary payload that set targets alight." + name = "speed loader (.38 hearth)" + desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hearthwine bullets contain an incendiary payload that set targets alight." ammo_type = /obj/item/ammo_casing/c38/hotshot /obj/item/ammo_box/c38/iceblox - name = "speed loader (.38 iceblox)" - desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets." + name = "speed loader (.38 chilled)" + desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These icewine bullets contain a cryogenic payload that chills targets." ammo_type = /obj/item/ammo_casing/c38/iceblox /obj/item/ammo_box/c38/empty @@ -213,6 +213,18 @@ icon_state = "38box-surplus" ammo_type = /obj/item/ammo_casing/c38/surplus +/obj/item/ammo_box/c38_box/hotshot + name = "ammo box (.38 hearth)" + desc = "An unorthodox .38 Special cartridge infused with hearthwine. Catches the target on fire." + icon_state = "38hotshot" + ammo_type = /obj/item/ammo_casing/c38/hotshot + +/obj/item/ammo_box/c38_box/iceblox + name = "ammo box (.38 chilled)" + desc = "An unorthodox .38 Special cartridge infused with icewine. Chills the target, slowing them down." + icon_state = "38iceblox" + ammo_type = /obj/item/ammo_casing/c38/iceblox + /obj/item/ammo_box/a12g name = "ammo box (12g buckshot)" desc = "A box of 12-gauge buckshot shells, devastating at close range." @@ -238,6 +250,12 @@ icon_state = "12gbox-rubbershot" ammo_type = /obj/item/ammo_casing/shotgun/rubbershot +/obj/item/ammo_box/a12g/blanks + name = "ammo box (12g blanks)" + desc = "A box of 12-gauge blank shells, designed for training." + icon_state ="12gbox-slug" + ammo_type = /obj/item/ammo_casing/shotgun/blank + /obj/item/ammo_box/c9mm name = "ammo box (9mm)" desc = "A box of standard 9mm ammo." diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 34f02e8364b3..f506c775f4f2 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -209,6 +209,12 @@ ///this is how much deviation the gun recoil can have, recoil pushes the screen towards the reverse angle you shot + some deviation which this is the max. var/recoil_deviation = 22.5 + ///Used if the guns recoil is lower then the min, it clamps the highest recoil + var/min_recoil = 0 + + var/gunslinger_recoil_bonus = 0 + var/gunslinger_spread_bonus = 0 + /// how many shots per burst, Ex: most machine pistols, M90, some ARs are 3rnd burst, while others like the GAR and laser minigun are 2 round burst. var/burst_size = 3 ///The rate of fire when firing in a burst. Not the delay between bursts @@ -320,9 +326,6 @@ ///This prevents gun from firing until the coodown is done, affected by lag var/current_cooldown = 0 - var/gunslinger_recoil_bonus = 0 - var/gunslinger_spread_bonus = 0 - /obj/item/gun/Initialize() . = ..() RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) @@ -330,6 +333,8 @@ muzzle_flash = new(src, muzzleflash_iconstate) build_zooming() build_firemodes() + if(sawn_off) + sawoff(forced = TRUE) /obj/item/gun/ComponentInitialize() . = ..() @@ -361,9 +366,6 @@ wielded_fully = TRUE return TRUE -/obj/item/gun/proc/is_wielded() - return wielded - /// triggered on unwield of two handed item /obj/item/gun/proc/on_unwield(obj/item/source, mob/user) wielded = FALSE @@ -371,6 +373,9 @@ zoom(user, forced_zoom = FALSE) user.remove_movespeed_modifier(/datum/movespeed_modifier/gun) +/obj/item/gun/proc/is_wielded() + return wielded + /obj/item/gun/Destroy() if(chambered) //Not all guns are chambered (EMP'ed energy guns etc) QDEL_NULL(chambered) @@ -817,7 +822,7 @@ /obj/item/gun/proc/calculate_recoil(mob/user, recoil_bonus = 0) if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) recoil_bonus += gunslinger_recoil_bonus - return clamp(recoil_bonus, 0 , INFINITY) + return clamp(recoil_bonus, min_recoil , INFINITY) /obj/item/gun/proc/calculate_spread(mob/user, bonus_spread) var/final_spread = 0 @@ -1108,3 +1113,46 @@ var/safety_prefix = "[our_gun.adjust_fire_select_icon_state_on_safety ? "[our_gun.safety ? "safety_" : ""]" : ""]" button_icon_state = "[safety_prefix][our_gun.fire_select_icon_state_prefix][current_firemode]" return ..() + +GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( + /obj/item/gun/energy/plasmacutter, + /obj/item/melee/transforming/energy, + ))) + +///Handles all the logic of sawing off guns, +/obj/item/gun/proc/try_sawoff(mob/user, obj/item/saw) + if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. + return + if(sawn_off) + to_chat(user, span_warning("\The [src] is already shortened!")) + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] begins to shorten \the [src]."), span_notice("You begin to shorten \the [src]...")) + + //if there's any live ammo inside the gun, makes it go off + if(blow_up(user)) + user.visible_message(span_danger("\The [src] goes off!"), span_danger("\The [src] goes off in your face!")) + return + + if(do_after(user, 30, target = src)) + user.visible_message(span_notice("[user] shortens \the [src]!"), span_notice("You shorten \the [src].")) + sawoff(user, saw) + +///Used on init or try_sawoff +/obj/item/gun/proc/sawoff(forced = FALSE) + if(sawn_off && !forced) + return + name = "sawn-off [src.name]" + desc = sawn_desc + w_class = WEIGHT_CLASS_NORMAL + item_state = "gun" + slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back + slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + recoil = SAWN_OFF_RECOIL + sawn_off = TRUE + update_appearance() + return TRUE + +///used for sawing guns, causes the gun to fire without the input of the user +/obj/item/gun/proc/blow_up(mob/user) + return diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index be96d982d79c..47558d1b47cb 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -13,6 +13,8 @@ has_safety = TRUE safety = TRUE + min_recoil = 0.1 + valid_attachments = list( /obj/item/attachment/silencer, /obj/item/attachment/laser_sight, @@ -228,7 +230,7 @@ update_appearance() return if (can_be_sawn_off) - if (sawoff(user, A)) + if (try_sawoff(user, A)) return return FALSE @@ -334,43 +336,7 @@ rounds.Add(magazine.ammo_list(drop_all)) return rounds -GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( - /obj/item/gun/energy/plasmacutter, - /obj/item/melee/energy, - ))) - -///Handles all the logic of sawing off guns, -/obj/item/gun/ballistic/proc/sawoff(mob/user, obj/item/saw) - if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. - return - if(sawn_off) - to_chat(user, "\The [src] is already shortened!") - return - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") - - //if there's any live ammo inside the gun, makes it go off - if(blow_up(user)) - user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") - return - - if(do_after(user, 30, target = src)) - if(sawn_off) - return - user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") - name = "sawn-off [src.name]" - desc = sawn_desc - w_class = WEIGHT_CLASS_NORMAL - item_state = "gun" - slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back - slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - recoil = SAWN_OFF_RECOIL - sawn_off = TRUE - update_appearance() - return TRUE - -///used for sawing guns, causes the gun to fire without the input of the user -/obj/item/gun/ballistic/proc/blow_up(mob/user) +/obj/item/gun/ballistic/blow_up(mob/user) . = FALSE for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) if(AC.BB) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 2d3cb6908c83..a61413057606 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -94,7 +94,7 @@ /obj/item/gun/ballistic/rifle/illestren/empty //i had to name it empty instead of no_mag because else it wouldnt work with guncases. sorry! spawnwithmagazine = FALSE -/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() if(.) spread = 24 @@ -114,20 +114,15 @@ icon_state = "illestren_factory" item_state = "illestren_factory" -/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() if(.) item_state = "illestren_factory_sawn" mob_overlay_state = item_state /obj/item/gun/ballistic/rifle/illestren/sawn - name = "sawn-off Illestren rifle" desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch." - item_state = "illestren_sawn" sawn_off = TRUE - weapon_weight = WEAPON_MEDIUM - w_class = WEIGHT_CLASS_NORMAL - slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/rifle/solgov name = "SSG-669C" diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index eb8ea3355fe9..ab85fb9a01c4 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -74,7 +74,7 @@ can_be_sawn_off = TRUE -/obj/item/gun/ballistic/shotgun/brimstone/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/brimstone/sawoff(forced = FALSE) . = ..() if(.) weapon_weight = WEAPON_MEDIUM @@ -108,7 +108,7 @@ rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg' fire_delay = 0.1 SECONDS -/obj/item/gun/ballistic/shotgun/hellfire/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/hellfire/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -316,7 +316,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && (!bolt_locked)) reskin_obj(user) -/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(forced = FALSE) . = ..() if(.) weapon_weight = WEAPON_MEDIUM @@ -361,7 +361,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) item_state = "dshotgun_srm" unique_reskin = null -/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(forced = FALSE) . = ..() if(.) item_state = "dshotgun_srm_sawn" @@ -416,7 +416,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) if(sawn_off) . += "ishotgun_sawn" -/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(forced = FALSE) . = ..() if(. && slung) //sawing off the gun removes the sling new /obj/item/stack/cable_coil(get_turf(src), 10) @@ -424,13 +424,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) update_appearance() /obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn - name = "sawn-off improvised shotgun" - desc = "A single-shot shotgun. Better not miss." - icon_state = "ishotgun_sawn" - item_state = "ishotgun_sawn" - w_class = WEIGHT_CLASS_NORMAL sawn_off = TRUE - slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact name = "compact compact combat shotgun" @@ -596,7 +590,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) balloon_alert_to_viewers("quickly racks!") fire_delay = 0 SECONDS -/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -621,7 +615,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) base_icon_state = "flamingarrow_factory" item_state = "flamingarrow_factory" -/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(forced = FALSE) . = ..() if(.) item_state = "flamingarrow_factory_sawn" @@ -634,7 +628,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) icon_state = "flamingbolt" item_state = "flamingbolt" -/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(forced = FALSE) . = ..() if(.) item_state = "flamingbolt_sawn" @@ -650,7 +644,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_desc = "A large lever-action rifle, sawn down for portability. It looks much cooler, but you should probably be using a revolver..." mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/absolution -/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -682,7 +676,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_desc = "A lever action shotgun that's been sawed down for portability. The recoil makes it mostly useless outside of point-blank range, but it hits hard for its size and, more importantly, can be flipped around stylishly." mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/conflagration -/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -765,7 +759,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) gun_firemodes = list(FIREMODE_SEMIAUTO) default_firemode = FIREMODE_SEMIAUTO -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(forced = FALSE) . = ..() if(.) item_state = "beacon_sawn" @@ -788,7 +782,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) icon_state = "beacon_factory" item_state = "beacon_factory" -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(forced = FALSE) . = ..() if(.) item_state = "beacon_factory_sawn" diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 266c9059046a..6f52daaf2292 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -192,6 +192,7 @@ name = "\improper Nanotrasen Saber SMG" desc = "A prototype full-auto 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors and a folding stock." icon = 'icons/obj/guns/projectile.dmi' + default_attachments = list(/obj/item/attachment/foldable_stock) icon_state = "saber" item_state = "gun" mag_type = /obj/item/ammo_box/magazine/smgm9mm diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index c2e5b4cb2933..40fd10e94785 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -46,7 +46,7 @@ /obj/item/gun/energy/pulse/prize/Initialize() . = ..() - GLOB.poi_list += src + SSpoints_of_interest.make_point_of_interest(src) var/turf/T = get_turf(src) message_admins("A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]") @@ -55,7 +55,7 @@ notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT, header = "Pulse rifle prize") /obj/item/gun/energy/pulse/prize/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/gun/energy/pulse/pistol diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index dede2ce0d7ce..340aa692f5b2 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -69,7 +69,7 @@ imp.implant(M) /obj/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail - name = ".38 hot shot bullet" + name = ".38 hearth bullet" ricochets_max = 0 /obj/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) @@ -80,7 +80,7 @@ M.IgniteMob() /obj/projectile/bullet/c38/iceblox //see /obj/projectile/temp for the original code - name = ".38 iceblox bullet" + name = ".38 chilled bullet" var/temperature = 100 ricochets_max = 0 diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index ba9c8c88d7f8..a069102a39cc 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -114,3 +114,9 @@ damage = 30 armour_penetration = -25 tile_dropoff = 3 + +/obj/projectile/bullet/pellet/blank + name = "blank" + damage = 30 + range = 2 + armour_penetration = -70 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 9eb48f11cf4d..49765fd6747b 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -162,7 +162,7 @@ handle_reactions() return amount -/// Get the name of the reagent there is the most of in this holder +/// DEPRICATED use get_master_regent. Get the name of the reagent there is the most of in this holder /datum/reagents/proc/get_master_reagent_name() var/list/cached_reagents = reagent_list var/name @@ -175,7 +175,7 @@ return name -/// Get the id of the reagent there is the most of in this holder +/// DEPRICATED use get_master_regent. Get the id of the reagent there is the most of in this holder /datum/reagents/proc/get_master_reagent_id() var/list/cached_reagents = reagent_list var/max_type @@ -611,6 +611,7 @@ //Clear from relevant lists addiction_list -= R reagent_list -= R + SEND_SIGNAL(src, COMSIG_REAGENTS_DEL_REAGENT, R) qdel(R) update_total() if(my_atom) @@ -638,6 +639,8 @@ del_reagent(R.type) if(my_atom) my_atom.on_reagent_change(CLEAR_REAGENTS) + + SEND_SIGNAL(src, COMSIG_REAGENTS_CLEAR_REAGENTS) return 0 /** @@ -747,6 +750,8 @@ if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) R.on_merge(data, amount) + + SEND_SIGNAL(src, COMSIG_REAGENTS_ADD_REAGENT, cached_reagents, amount, reagtemp, data, no_react) if(!no_react) handle_reactions() return TRUE @@ -765,6 +770,8 @@ update_total() if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) + + SEND_SIGNAL(src, COMSIG_REAGENTS_NEW_REAGENT, reagent, amount, reagtemp, data, no_react) if(!no_react) handle_reactions() return TRUE @@ -797,6 +804,7 @@ //and zero, to prevent removing more than the holder has stored amount = clamp(amount, 0, R.volume) R.volume -= amount + SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, A, amount) update_total() if(!safety)//So it does not handle reactions when it need not to handle_reactions() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index ac1cd94b092e..8e6935766346 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -337,18 +337,18 @@ reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE if(item_type == "condimentPack") - var/obj/item/reagent_containers/food/condiment/pack/P + var/obj/item/reagent_containers/condiment/pack/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) + P = new/obj/item/reagent_containers/condiment/pack(drop_location()) P.originalname = name P.name = trim("[name] pack") P.desc = "A small condiment pack. The label says it contains [name]." reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE if(item_type == "condimentBottle") - var/obj/item/reagent_containers/food/condiment/P + var/obj/item/reagent_containers/condiment/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/food/condiment(drop_location()) + P = new/obj/item/reagent_containers/condiment(drop_location()) P.originalname = name P.name = trim("[name] bottle") reagents.trans_to(P, vol_each, transfered_by = usr) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11306b441f1e..e0d4e2a86606 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2526,3 +2526,38 @@ description = "Bacteria native to the Saint-Roumain Militia home planet." color = "#5a4f42" taste_description = "sour" + +//anti rad foam +/datum/reagent/anti_radiation_foam + name = "Anti-Radiation Foam" + description = "A tried and tested foam, used for decontaminating nuclear disasters." + reagent_state = LIQUID + color = "#A6FAFF55" + taste_description = "bitter, foamy awfulness." + +/datum/reagent/anti_radiation_foam/expose_turf(turf/open/T, reac_volume) + if (!istype(T)) + return + + if(reac_volume >= 1) + var/obj/effect/particle_effect/foam/antirad/F = (locate(/obj/effect/particle_effect/foam/antirad) in T) + if(!F) + F = new(T) + else if(istype(F)) + F.lifetime = initial(F.lifetime) //the foam is what does the cleaning here + +/datum/reagent/anti_radiation_foam/expose_obj(obj/O, reac_volume) + O.wash(CLEAN_RAD) + +/datum/reagent/anti_radiation_foam/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method in list(TOUCH, VAPOR)) + M.radiation = M.radiation - rand(max(M.radiation * 0.95, M.radiation)) //get the hose + M.ExtinguishMob() + ..() + + +/datum/reagent/anti_radiation_foam/on_mob_life(mob/living/carbon/M) + M.adjustToxLoss(0.5, 200) + M.adjust_disgust(4) + ..() + . = 1 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index fafd67305c9c..54d2fc182398 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -58,6 +58,12 @@ reagent_id = /datum/reagent/firefighting_foam tank_volume = 500 +/obj/structure/reagent_dispensers/foamtank/antirad + name = "anti-radiation foam tank" + desc = "A tank full of decontamination foam" + reagent_id = /datum/reagent/anti_radiation_foam + tank_volume = 1000 + /obj/structure/reagent_dispensers/fueltank name = "fuel tank" desc = "A tank full of industrial welding fuel. Do not consume." diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 79b28ccef331..340119a4e78a 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -97,18 +97,25 @@ other types of metals and chemistry for reagents). color = "#8b70ff" illustration = "design" custom_materials = list(/datum/material/iron =300, /datum/material/glass =100) + var/disk_name = "Design Disk" + var/design_name var/list/blueprints = list() - var/list/starting_blueprints = list() + var/starting_blueprints = list() var/max_blueprints = 1 /obj/item/disk/design_disk/Initialize() . = ..() pixel_x = base_pixel_x + rand(-5, 5) pixel_y = base_pixel_y + rand(-5, 5) - blueprints = new/list(max_blueprints) + if(design_name) + name = jointext(list(disk_name, design_name), " - ") + if(length(starting_blueprints)) + for(var/design in starting_blueprints) + blueprints += new design() /obj/item/disk/design_disk/adv name = "Advanced Component Design Disk" + disk_name = "Advanced Design Disk" color = "#bed876" desc = "A disk for storing device design data for construction in lathes. This one has a little bit of extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50) @@ -116,6 +123,7 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/super name = "Super Component Design Disk" + disk_name = "Super Design Disk" color = "#c25454" desc = "A disk for storing device design data for construction in lathes. This one has more extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50, /datum/material/gold = 50) @@ -123,6 +131,7 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/elite name = "Elite Component Design Disk" + disk_name = "Elite Design Disk" color = "#333333" desc = "A disk for storing device design data for construction in lathes. This one has absurd amounts of extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 100, /datum/material/gold = 100, /datum/material/bluespace = 50) @@ -130,39 +139,60 @@ other types of metals and chemistry for reagents). //Disks with content /obj/item/disk/design_disk/ammo_c10mm - name = "Design Disk - 10mm Ammo" + design_name = "10mm Ammo" desc = "A design disk containing the pattern for a refill box of standard 10mm ammo, used in Stechkin pistols." - -/obj/item/disk/design_disk/ammo_c10mm/Initialize() - . = ..() - blueprints[1] = new /datum/design/c10mm() - + starting_blueprints = (/datum/design/c10mm) /obj/item/disk/design_disk/disposable_gun - name = "design disk - disposable gun" + design_name = "Disposable gun" desc = "A design disk containing designs for a cheap and disposable gun." illustration = "gun" max_blueprints = 2 - -/obj/item/disk/design_disk/disposable_gun/Initialize() - . = ..() - blueprints[1] = new /datum/design/disposable_gun() + starting_blueprints = list(/datum/design/disposable_gun) /obj/item/disk/design_disk/clip_mechs - name = "design disk - CLIP exosuit modifications" + design_name = "CLIP exosuit modifications" desc = "A design disk containing specifications for CLIP-custom exosuit conversions." color = "#57b8f0" max_blueprints = 2 - -/obj/item/disk/design_disk/clip_mechs/Initialize() - . = ..() - blueprints[1] = new /datum/design/clip_ripley_upgrade() - blueprints[2] = new /datum/design/clip_durand_upgrade() + starting_blueprints = list(/datum/design/clip_ripley_upgrade, /datum/design/clip_durand_upgrade) /obj/item/disk/design_disk/ammo_c9mm - name = "Design Disk - 9mm Ammo" + design_name = "9mm Ammo" desc = "A design disk containing the pattern for a refill box of standard 9mm ammo, used in Commander pistols." - -/obj/item/disk/design_disk/ammo_c9mm/Initialize() - . = ..() - blueprints[1] = new /datum/design/c9mmautolathe() + starting_blueprints = list(/datum/design/c9mmautolathe) + +/obj/item/disk/design_disk/blanks + design_name = "Blank Ammo" + starting_blueprints = list(/datum/design/blank_shell) + + +/obj/item/disk/design_disk/ammo_1911 + design_name = "1911 Magazine" + desc = "A design disk containing the pattern for the classic 1911's seven round .45ACP magazine." + illustration = "ammo" + starting_blueprints = list(/datum/design/colt_1911_magazine) + +//KA modkit design discs +/obj/item/disk/design_disk/modkit_disc + design_name = "KA Mod" + desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." + illustration = "accel" + color = "#6F6F6F" + starting_blueprints = list(/datum/design/unique_modkit) + +/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe + design_name = "Offensive Mining Explosion Mod" + starting_blueprints = list(/datum/design/unique_modkit/offensive_turf_aoe) + +/obj/item/disk/design_disk/modkit_disc/rapid_repeater + design_name = "Rapid Repeater Mod" + starting_blueprints = list(/datum/design/unique_modkit/rapid_repeater) + +/obj/item/disk/design_disk/modkit_disc/resonator_blast + design_name = "Resonator Blast Mod" + starting_blueprints = list(/datum/design/unique_modkit/resonator_blast) + +/obj/item/disk/design_disk/modkit_disc/bounty + design_name = "Death Syphon Mod" + starting_blueprints = list(/datum/design/unique_modkit/bounty) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index d1fe33024919..0b679dfcc4bf 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -796,6 +796,14 @@ build_path = /obj/item/ammo_casing/shotgun/beanbag category = list("initial", "Security", "Ammo") +/datum/design/blank_shell + name = "Shotgun Blank" + id = "blank_shell" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 2000) + build_path = /obj/item/ammo_casing/shotgun/blank + category = list("Security", "Ammo") + /datum/design/riot_dart name = "Foam Riot Dart" id = "riot_dart" diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 2a8f390e9e36..1c3edc8b7c32 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -18,7 +18,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS /datum/design/c38_hotshot - name = "Speed Loader (.38 Hot Shot)" + name = "Speed Loader (.38 Hearth)" desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload." id = "c38_hotshot" build_type = PROTOLATHE @@ -28,7 +28,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS /datum/design/c38_iceblox - name = "Speed Loader (.38 Iceblox)" + name = "Speed Loader (.38 Chilled)" desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." id = "c38_iceblox" build_type = PROTOLATHE diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm deleted file mode 100644 index e9ca8f3d4093..000000000000 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ /dev/null @@ -1,258 +0,0 @@ -//******Decoration objects -//***Bone statues and giant skeleton parts. -/obj/structure/statue/bone - anchored = TRUE - max_integrity = 120 - material_drop_type = /obj/item/stack/sheet/bone - impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least - layer = ABOVE_ALL_MOB_LAYER - -/obj/structure/statue/bone/rib - name = "collosal rib" - desc = "It's staggering to think that something this big could have lived, let alone died." - oreAmount = 4 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "rib" - -/obj/structure/statue/bone/skull - name = "collosal skull" - desc = "The gaping maw of a dead, titanic monster." - oreAmount = 12 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "skull" - -/obj/structure/statue/bone/skull/half - desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." - oreAmount = 6 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "skull-half" - -//***Wasteland floor and rock turfs here. -/turf/open/floor/plating/asteroid/basalt/wasteland //Like a more fun version of living in Arizona. - name = "cracked earth" - icon = 'icons/turf/floors.dmi' - icon_state = "wasteland" - base_icon_state = "wasteland" - baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland - digResult = /obj/item/stack/ore/glass/basalt - initial_gas_mix = LAVALAND_DEFAULT_ATMOS - slowdown = 0.5 - floor_variance = 30 - max_icon_states = 6 - -/turf/closed/mineral/strong/wasteland - name = "ancient dry rock" - color = "#B5651D" - environment_type = "wasteland" - turf_type = /turf/open/floor/plating/asteroid/basalt/wasteland - baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland - smooth_icon = 'icons/turf/walls/rock_wall.dmi' - base_icon_state = "rock_wall" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER - -/turf/closed/mineral/strong/wasteland/drop_ores() - if(prob(10)) - new /obj/item/stack/ore/iron(src, 1) - new /obj/item/stack/ore/glass(src, 1) - new /obj/effect/decal/remains/human/grave(src, 1) - else - new /obj/item/stack/sheet/bone(src, 1) - -//***Oil well puddles. -/obj/structure/sink/oil_well //You're not going to enjoy bathing in this... - name = "oil well" - desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." - icon = 'icons/obj/watercloset.dmi' - icon_state = "puddle-oil" - dispensedreagent = /datum/reagent/fuel/oil - -/obj/structure/sink/oil_well/Initialize() - .=..() - create_reagents(20) - reagents.add_reagent(dispensedreagent, 20) - -/obj/structure/sink/oil_well/attack_hand(mob/M) - flick("puddle-oil-splash",src) - reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. - to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") - -/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) - flick("puddle-oil-splash",src) - if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel - to_chat(user, "You fill in the oil well with soil.") - O.play_tool_sound(src) - deconstruct() - return 1 - if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil - var/obj/item/reagent_containers/RG = O - if(RG.is_refillable()) - if(!RG.reagents.holder_full()) - RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - to_chat(user, "You fill [RG] from [src].") - return TRUE - to_chat(user, "\The [RG] is full.") - return FALSE - if(user.a_intent != INTENT_HARM) - to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") - return 1 - else - return ..() - -/obj/structure/sink/oil_well/drop_materials() - new /obj/effect/decal/cleanable/oil(loc) - -//***Grave mounds. -/obj/structure/closet/crate/grave - name = "burial mound" - desc = "A marked patch of soil, adorned with a wooden cross" - icon_state = "grave" - dense_when_open = TRUE - material_drop = /obj/item/stack/ore/glass/basalt - material_drop_amount = 5 - opened = TRUE - anchorable = FALSE - anchored = TRUE - locked = TRUE - breakout_time = 900 - cutting_tool = TOOL_SHOVEL - var/lead_tomb = FALSE - var/first_open = FALSE - -/obj/structure/closet/crate/grave/attackby(obj/item/W, mob/user, params) - .=..() - if(istype(W, /obj/item/screwdriver)) - if(!user.is_literate()) - to_chat(user, "You scratch illegibly on [src]!") - return - var/t = stripped_input(user, "What would you like the inscription to be?", name, null, 53) - if(user.get_active_held_item() != W) - return - if(!user.canUseTopic(src, BE_CLOSE)) - return - if(t) - desc = "[t]" - return - -/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S, force = FALSE) - if(!opened) - to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") - else - to_chat(user, "The grave has already been dug up.") - -/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) - if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. - if(!opened) - if(S.tool_behaviour == cutting_tool) - to_chat(user, "You start start to dig open \the [src] with \the [S]...") - if (do_after(user,20, target = src)) - opened = TRUE - locked = TRUE - dump_contents() - update_appearance() - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) - if(lead_tomb == TRUE && first_open == TRUE) - user.gain_trauma(/datum/brain_trauma/magic/stalker) - to_chat(user, "Oh no, no no no, THEY'RE EVERYWHERE! EVERY ONE OF THEM IS EVERYWHERE!") - first_open = FALSE - return 1 - return 1 - else - to_chat(user, "You can't dig up a grave with \the [S.name].") - return 1 - else - to_chat(user, "The grave has already been dug up.") - return 1 - - else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. - if(S.tool_behaviour == cutting_tool) - to_chat(user, "You start to remove \the [src] with \the [S].") - if (do_after(user,15, target = src)) - to_chat(user, "You remove \the [src] completely.") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) - deconstruct(TRUE) - return 1 - return - -/obj/structure/closet/crate/grave/bust_open() - ..() - opened = TRUE - update_appearance() - dump_contents() - return - -/obj/structure/closet/crate/grave/stone - name = "burial mound" - desc = "A marked patch of soil, adorned with a sandstone slab" - icon_state = "grave_lead" - -/obj/structure/closet/crate/grave/loot - name = "burial mound" - desc = "A marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" - opened = FALSE - -/obj/structure/closet/crate/grave/loot/PopulateContents() //GRAVEROBBING IS NOW A FEATURE - ..() - new /obj/effect/decal/remains/human/grave(src) - switch(rand(1,7)) - if(1) - new /obj/item/coin/gold(src) - new /obj/item/storage/wallet(src) - if(2) - new /obj/item/clothing/glasses/meson(src) - if(3) - new /obj/item/coin/silver(src) - new /obj/item/shovel/spade(src) - if(4) - new /obj/item/storage/book/bible/booze(src) - if(5) - new /obj/item/clothing/neck/stethoscope(src) - new /obj/item/scalpel(src) - new /obj/item/hemostat(src) - - if(6) - new /obj/item/reagent_containers/glass/beaker(src) - new /obj/item/clothing/glasses/science(src) - if(7) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/mask/cigarette/rollie(src) - -/obj/structure/closet/crate/grave/loot/lead_researcher - name = "ominous burial mound" - desc = "Even in a place filled to the brim with graves, this one shows a level of preperation and planning that fills you with dread." - icon_state = "grave_lead" - lead_tomb = TRUE - first_open = TRUE - -/obj/structure/closet/crate/grave/loot/lead_researcher/PopulateContents() //ADVANCED GRAVEROBBING - ..() - new /obj/effect/decal/cleanable/blood/gibs/old(src) - -/obj/effect/decal/remains/human/grave - turf_loc_check = FALSE - -//***Fluff items for lore/intrigue -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard - name = "posted warning" - desc = "It seems to be smudged with mud and... oil?" - default_raw_text = "TO WHOM IT MAY CONCERN

This area is property of the Nanotrasen Mining Division.

Trespassing in this area is illegal, highly dangerous, and subject to several NDAs.

Please turn back now, under intergalactic law section 48-R." - -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes - name = "Research Findings: Day 26" - desc = "Huh, this one page looks like it was torn out of a full book. How odd." - icon_state = "docs_part" - default_raw_text = "Researcher name: B--*--* J--*s.

Detailed findings:Today the camp site's cond-tion has wor--ene*. The ashst--ms keep blocking us off from le-ving the sit* for m-re supplies, and it's lo-king like we're out of pl*sma to p-wer the ge-erat*r. Can't rea-*y study c-*bon *ating with no li--ts, ya know? Da-*y's been going -*f again and ag-*n a-*ut h*w the company's left us to *ie here, but I j-s* keep tell-ng him to stop che*-in* out these damn graves. We m-y b* archaeologists, but -e sho*ld have t-e dec-**cy to know these grav-s are *-l NEW.

The rest of the page is just semantics about carbon dating methods." - -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny - name = "hastily scribbled note" - desc = "Seems like someone was in a hurry." - default_raw_text = "Alright, we all know that stuck up son a bitch is just doing this to keep us satisifed. Who the hell does he think he is, taking extra rations? We're OUT OF FOOD, CARL. Tomorrow at noon, we're going to try and take the ship by force. He HAS to be lying about the engine cooling down. He HAS TO BE. I'm tellin ya, with this implant I lifted off that last supply ship, I got the smarts to get us offa this shithole. Keep your knife handy carl." - -/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis - name = "research document" - desc = "Standard Nanotrasen typeface for important research documents." - default_raw_text = "Day 9: Tenative Conclusions

While the area appears to be of significant cultural importance to the lizard race, outside of some sparce contact with native wildlife, we're yet to find any exact reasoning for the nature of this phenomenon. It seems that organic life is communally drawn to this planet as though it functions as a final resting place for intelligent life. As per company guidelines, this site shall be given the following classification: 'LZ-0271 - Elephant Graveyard'

Compiled list of Artifact findings (Currently Sent Offsite)
Cultist Blade Fragments: x8
Brass Multiplicative Ore Sample: x105
Syndicate Revolutionary Leader Implant (Broken) x1
Extinct Cortical Borer Tissue Sample x1
Space Carp Fossil x3" - -/obj/item/paper/fluff/ruins/elephant_graveyard/final_message - name = "important looking Note" - desc = "This note is well written, and seems to have been put here so you'd find it." - default_raw_text = "If you find this... you don't need to know who I am.

You need to leave this place. I dunno what shit they did to me out here, but I don't think I'm going to be making it out of here.

This place... it wears down your psyche. The other researchers out here laughed it off but... They were the first to go.

One by one they started turning on each other. The more they found out, the more they started fighting and arguing...
As I speak now, I had to... I wound up having to put most of my men down. I know what I had to do, and I know there's no way left for me to live with myself.
If anyone ever finds this, just don't touch the graves.

DO NOT. TOUCH. THE GRAVES. Don't be a dumbass, like we all were." diff --git a/code/modules/ruins/spaceruin_code/bigderelict1.dm b/code/modules/ruins/spaceruin_code/bigderelict1.dm index 99af3b9efa28..9e2a0957547b 100644 --- a/code/modules/ruins/spaceruin_code/bigderelict1.dm +++ b/code/modules/ruins/spaceruin_code/bigderelict1.dm @@ -6,13 +6,3 @@ /obj/item/paper/crumpled/ruins/bigderelict1/coward icon_state = "scrap_bloodied" default_raw_text = "If anyone finds this, please, don't let my kids know I died a coward.." - -/obj/item/disk/design_disk/ammo_1911 - name = "design disk - 1911 magazine" - desc = "A design disk containing the pattern for the classic 1911's seven round .45ACP magazine." - illustration = "ammo" - -/obj/item/disk/design_disk/ammo_1911/Initialize() - . = ..() - var/datum/design/colt_1911_magazine/M = new - blueprints[1] = M diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 720670e3fc21..38e2f0df145e 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -99,7 +99,7 @@ name = "phylactery of [mind.name]" active_phylacteries++ - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) START_PROCESSING(SSobj, src) if(initial(SSticker.mode.round_ends_with_antag_death)) SSticker.mode.round_ends_with_antag_death = FALSE @@ -107,7 +107,7 @@ /obj/item/phylactery/Destroy(force=FALSE) STOP_PROCESSING(SSobj, src) active_phylacteries-- - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) if(!active_phylacteries) SSticker.mode.round_ends_with_antag_death = initial(SSticker.mode.round_ends_with_antag_death) . = ..() diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index 18b8fd522aab..0dc0102c91ef 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -8,11 +8,11 @@ /obj/item/reagent_containers/glass/bowl = 20, /obj/item/kitchen/fork = 6, /obj/item/reagent_containers/food/drinks/drinkingglass = 8, - /obj/item/reagent_containers/food/condiment/pack/ketchup = 5, - /obj/item/reagent_containers/food/condiment/pack/hotsauce = 5, - /obj/item/reagent_containers/food/condiment/pack/astrotame = 5, - /obj/item/reagent_containers/food/condiment/saltshaker = 5, - /obj/item/reagent_containers/food/condiment/peppermill = 5, + /obj/item/reagent_containers/condiment/pack/ketchup = 5, + /obj/item/reagent_containers/condiment/pack/hotsauce = 5, + /obj/item/reagent_containers/condiment/pack/astrotame = 5, + /obj/item/reagent_containers/condiment/saltshaker = 5, + /obj/item/reagent_containers/condiment/peppermill = 5, /obj/item/clothing/suit/apron/chef = 2, /obj/item/kitchen/rollingpin = 2, /obj/item/melee/knife/kitchen = 2, diff --git a/html/changelogs/AutoChangeLog-pr-2932.yml b/html/changelogs/AutoChangeLog-pr-2932.yml deleted file mode 100644 index 14c0c5985f64..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2932.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {code_imp: bunch of code organization related to melee} - - {refactor: cleaned up a bunch of melee items to have better inheritance and paths} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3366.yml b/html/changelogs/AutoChangeLog-pr-3366.yml new file mode 100644 index 000000000000..f1b353bf3387 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3366.yml @@ -0,0 +1,4 @@ +author: Erika Fox +changes: + - {rscadd: Anti-Radiation Foam is now available at the outpost} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3370.yml b/html/changelogs/AutoChangeLog-pr-3370.yml deleted file mode 100644 index 95a56f2e9b49..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3370.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: trazodont -changes: - - {bugfix: miso soup spelling error} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3377.yml b/html/changelogs/AutoChangeLog-pr-3377.yml deleted file mode 100644 index 26fbe6b2eec3..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3377.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Apogee-dev -changes: - - {balance: Changed decoration on Miskilamo ships to look similar to each other} - - {balance: reduced Kilo starting funds to 1500} - - {bugfix: fixed wires on Mudskipper} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3378.yml b/html/changelogs/AutoChangeLog-pr-3378.yml new file mode 100644 index 000000000000..7ed5af71b205 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3378.yml @@ -0,0 +1,5 @@ +author: Erika Fox +changes: + - {code_imp: 'Fireaxe cabinets have been repathed, and now function as a more general + cabinet object. please report any inconsistencies with behavior'} +delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3392.yml b/html/changelogs/AutoChangeLog-pr-3392.yml deleted file mode 100644 index b1fd3875e1c8..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3392.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {rscadd: A bunch of kepori underwear have sprites now} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3397.yml b/html/changelogs/AutoChangeLog-pr-3397.yml deleted file mode 100644 index 673b299d889d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3397.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: rye, erika -changes: - - {rscadd: 'concrete jugs have been replaced by much more appropriate concrete bags, - jee, i hope whoever made *that* blunder got fired.'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3409.yml b/html/changelogs/AutoChangeLog-pr-3409.yml deleted file mode 100644 index e2ad0fc06bde..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3409.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Resprites all balaclavas!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3411.yml b/html/changelogs/AutoChangeLog-pr-3411.yml deleted file mode 100644 index cb95ac44d223..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3411.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {rscadd: Adds a bit more contrast to the output of health analyzers} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3412.yml b/html/changelogs/AutoChangeLog-pr-3412.yml deleted file mode 100644 index 1c0b79981ecd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3412.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {bugfix: turrets will now _actually_ connect to their console. i swear im a real - coder.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3414.yml b/html/changelogs/AutoChangeLog-pr-3414.yml deleted file mode 100644 index a4603970da7e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3414.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscdel: B.E.P.I.S. and related tech nodes.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3415.yml b/html/changelogs/AutoChangeLog-pr-3415.yml deleted file mode 100644 index 05558e44aa1c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3415.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscdel: unused did_fire var} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3416.yml b/html/changelogs/AutoChangeLog-pr-3416.yml deleted file mode 100644 index b99d0706e9ef..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3416.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {balance: Colossus now only has 2 recruit slots instead of a whopping !!5!!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3455.yml b/html/changelogs/AutoChangeLog-pr-3455.yml new file mode 100644 index 000000000000..0351ddf280b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3455.yml @@ -0,0 +1,5 @@ +author: Sadhorizon +changes: + - {tweak: You can now put knives in secbelts and the subtypes of secbelts.} + - {bugfix: You can now fit all knives in mining webbings.} +delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index d6027a6f2a58..52b3cbfbf679 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -137,3 +137,84 @@ Bjarl: - rscadd: You can now buy flares at the outpost - rscadd: Wasteplanets now will generate concrete filled caves. +2024-09-24: + Apogee-dev: + - balance: Changed decoration on Miskilamo ships to look similar to each other + - balance: reduced Kilo starting funds to 1500 + - bugfix: fixed wires on Mudskipper + Bjarl: + - bugfix: turrets will now _actually_ connect to their console. i swear im a real + coder. + FalloutFalcon: + - code_imp: bunch of code organization related to melee + - refactor: cleaned up a bunch of melee items to have better inheritance and paths + PositiveEntropy: + - imageadd: Resprites all balaclavas! + Thera-Pissed: + - rscdel: unused did_fire var + - rscdel: B.E.P.I.S. and related tech nodes. + rye, erika: + - rscadd: concrete jugs have been replaced by much more appropriate concrete bags, + jee, i hope whoever made *that* blunder got fired. + thgvr: + - balance: Colossus now only has 2 recruit slots instead of a whopping !!5!! + - rscadd: A bunch of kepori underwear have sprites now + trazodont: + - bugfix: miso soup spelling error + zimon9: + - rscadd: Adds a bit more contrast to the output of health analyzers +2024-09-25: + Jedi-Toothpaste: + - bugfix: Added windows to the mudskipper and shetland's engines. + - bugfix: Adjusted the blast doors which open on the Shetland's engines. + SomeguyManperson: + - bugfix: sawn off illestren/improvised shotgun stats are now consistent if they + are spawned in +2024-09-26: + FalloutFalcon: + - rscadd: Added new blank shells for training drills! + - refactor: Minor refactor of design disks to reduce repeated code + - rscadd: Ballistics now have a minimum recoil, not enough to mess up your shot! + - bugfix: ships now start closed. shiptesters be writing there memos and ship names. + - rscadd: You can now see ships in the orbit menu and its alot prettier! + - code_imp: ported tg points of interest and a much improved orbit menu + Gristlebee: + - bugfix: fixes wall deconstruction causing runtimes + Jedi-Toothpaste: + - bugfix: Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken + link for the new blast doors. + generalthrax: + - balance: Most common accessories now fit on pants + - rscadd: Exosuit Recharger machines are now available from cargo + - balance: Rust Reds on the blackmarket are now available to a maximum of 3 + zimon9: + - rscadd: Added fruit puree to vegan rations + - rscdel: Removed pizza crackers from vegan rations +2024-09-27: + Jedi-Toothpaste: + - rscadd: Firelocks to the Valor-Class' Doors + - rscadd: Lighting to dark areas on the Valor-Class' Doors + - rscadd: New areas on the Valor-Class to seperate rooms + - rscadd: Added APC for the Surgical Area + PositiveEntropy: + - imageadd: Adjusts the inner part of the normal rabbit ears. +2024-09-28: + Sadhorizon: + - rscadd: Added a fax machine to the Dwayne-class. + SomeguyManperson: + - bugfix: legion skulls will no longer check if they should rise up and consume + their owner if they are ownerless +2024-09-29: + fighterslam: + - balance: Modernizes and slightly buffs the Ranger. +2024-09-30: + Bjarl: + - rscdel: The Elephant Graveyard ruin has been taken out back + - bugfix: m90 posters are real again + FalloutFalcon: + - bugfix: sawnoff weapons made from init now function correctly + - bugfix: condiment packs are no longer invisible and missing names + MassiveMen: + - rscadd: Added the fire axe to the black market uplink + Thera-Pissed: + - rscadd: New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard! diff --git a/icons/mob/species/human/rabbit.dmi b/icons/mob/species/human/rabbit.dmi index fcc6599f7356..26f0cb080d22 100644 Binary files a/icons/mob/species/human/rabbit.dmi and b/icons/mob/species/human/rabbit.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 403b198c179b..ec5f14748540 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/ammo_shotshells.dmi b/icons/obj/ammo_shotshells.dmi index fe37023686bd..55b00cdd0b21 100644 Binary files a/icons/obj/ammo_shotshells.dmi and b/icons/obj/ammo_shotshells.dmi differ diff --git a/shiptest.dme b/shiptest.dme index 9dcece1b986a..7a73c1f40a94 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -163,6 +163,7 @@ #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals\signals.dm" #include "code\__DEFINES\dcs\signals\signals_mod.dm" +#include "code\__DEFINES\dcs\signals\signals_reagent.dm" #include "code\__DEFINES\dcs\signals\signals_ship.dm" #include "code\__DEFINES\dcs\signals\signals_storage.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_carbon.dm" @@ -371,6 +372,7 @@ #include "code\controllers\subsystem\persistence.dm" #include "code\controllers\subsystem\physics.dm" #include "code\controllers\subsystem\ping.dm" +#include "code\controllers\subsystem\points_of_interest.dm" #include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" @@ -676,6 +678,7 @@ #include "code\datums\elements\lazy_fishing_spot.dm" #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mobappearance.dm" +#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\plant_backfire.dm" #include "code\datums\elements\renamemob.dm" #include "code\datums\elements\selfknockback.dm" @@ -861,6 +864,7 @@ #include "code\game\area\areas\ruins\space.dm" #include "code\game\area\areas\ruins\templates.dm" #include "code\game\area\areas\ruins\wasteplanet.dm" +#include "code\game\atom\atom_orbit.dm" #include "code\game\gamemodes\events.dm" #include "code\game\gamemodes\game_mode.dm" #include "code\game\gamemodes\objective.dm" @@ -1388,6 +1392,8 @@ #include "code\game\objects\structures\artstuff.dm" #include "code\game\objects\structures\barsigns.dm" #include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\cabinet.dm" +#include "code\game\objects\structures\cabinet_types.dm" #include "code\game\objects\structures\catwalk.dm" #include "code\game\objects\structures\crateshelf.dm" #include "code\game\objects\structures\curtains.dm" @@ -1401,7 +1407,6 @@ #include "code\game\objects\structures\extinguisher.dm" #include "code\game\objects\structures\false_walls.dm" #include "code\game\objects\structures\fence.dm" -#include "code\game\objects\structures\fireaxe.dm" #include "code\game\objects\structures\fireplace.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" @@ -1485,6 +1490,7 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" #include "code\game\objects\structures\crates_lockers\crates\bins.dm" #include "code\game\objects\structures\crates_lockers\crates\critter.dm" +#include "code\game\objects\structures\crates_lockers\crates\graves.dm" #include "code\game\objects\structures\crates_lockers\crates\large.dm" #include "code\game\objects\structures\crates_lockers\crates\secure.dm" #include "code\game\objects\structures\crates_lockers\crates\wooden.dm" @@ -3307,7 +3313,6 @@ #include "code\modules\ruins\icemoonruin_code\library.dm" #include "code\modules\ruins\icemoonruin_code\wrath.dm" #include "code\modules\ruins\lavalandruin_code\biodome_winter.dm" -#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" #include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\surface.dm" #include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" diff --git a/tgui/packages/tgui/interfaces/Orbit.js b/tgui/packages/tgui/interfaces/Orbit.js deleted file mode 100644 index 91bf9d1f7929..000000000000 --- a/tgui/packages/tgui/interfaces/Orbit.js +++ /dev/null @@ -1,218 +0,0 @@ -import { createSearch } from 'common/string'; -import { multiline } from 'common/string'; -import { resolveAsset } from '../assets'; -import { useBackend, useLocalState } from '../backend'; -import { - Box, - Button, - Divider, - Flex, - Icon, - Input, - Section, -} from '../components'; -import { Window } from '../layouts'; - -const PATTERN_NUMBER = / \(([0-9]+)\)$/; - -const searchFor = (searchText) => - createSearch(searchText, (thing) => thing.name); - -const compareString = (a, b) => (a < b ? -1 : a > b); - -const compareNumberedText = (a, b) => { - const aName = a.name; - const bName = b.name; - - // Check if aName and bName are the same except for a number at the end - // e.g. Medibot (2) and Medibot (3) - const aNumberMatch = aName.match(PATTERN_NUMBER); - const bNumberMatch = bName.match(PATTERN_NUMBER); - - if ( - aNumberMatch && - bNumberMatch && - aName.replace(PATTERN_NUMBER, '') === bName.replace(PATTERN_NUMBER, '') - ) { - const aNumber = parseInt(aNumberMatch[1], 10); - const bNumber = parseInt(bNumberMatch[1], 10); - - return aNumber - bNumber; - } - - return compareString(aName, bName); -}; - -const BasicSection = (props, context) => { - const { act } = useBackend(context); - const { searchText, source, title } = props; - const things = source.filter(searchFor(searchText)); - things.sort(compareNumberedText); - return ( - source.length > 0 && ( -
- {things.map((thing) => ( -
- ) - ); -}; - -const OrbitedButton = (props, context) => { - const { act } = useBackend(context); - const { color, thing } = props; - - return ( - - ); -}; - -export const Orbit = (props, context) => { - const { act, data } = useBackend(context); - const { alive, antagonists, auto_observe, dead, ghosts, misc, npcs } = data; - - const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); - - const collatedAntagonists = {}; - for (const antagonist of antagonists) { - if (collatedAntagonists[antagonist.antag] === undefined) { - collatedAntagonists[antagonist.antag] = []; - } - collatedAntagonists[antagonist.antag].push(antagonist); - } - - const sortedAntagonists = Object.entries(collatedAntagonists); - sortedAntagonists.sort((a, b) => { - return compareString(a[0], b[0]); - }); - - const orbitMostRelevant = (searchText) => { - for (const source of [ - sortedAntagonists.map(([_, antags]) => antags), - alive, - ghosts, - dead, - npcs, - misc, - ]) { - const member = source - .filter(searchFor(searchText)) - .sort(compareNumberedText)[0]; - if (member !== undefined) { - act('orbit', { ref: member.ref }); - break; - } - } - }; - - return ( - - -
- - - - - - setSearchText(value)} - onEnter={(_, value) => orbitMostRelevant(value)} - /> - - - - - -
- {antagonists.length > 0 && ( -
- {sortedAntagonists.map(([name, antags]) => ( -
- {antags - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((antag) => ( - - ))} -
- ))} -
- )} - -
- {alive - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((thing) => ( - - ))} -
- -
- {ghosts - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((thing) => ( - - ))} -
- - - - - - -
-
- ); -}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx new file mode 100644 index 000000000000..f3c59a75e189 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx @@ -0,0 +1,98 @@ +import { toTitleCase } from 'common/string'; + +import { useBackend } from '../../backend'; +import { NoticeBox, Section, Stack, Table, Tooltip } from '../../components'; + +import { getAntagCategories } from './helpers'; +import { AntagGroup, Observable, OrbitData } from './types'; +import { OrbitSection } from './OrbitSection'; + +type ContentSection = { + content: Observable[]; + title: string; + color?: string; +}; + +export const OrbitContent = (props, context) => { + const { act, data } = useBackend(context); + const { antagonists = [], critical = [] } = data; + const { searchText, autoObserve } = props; + + let antagGroups: AntagGroup[] = []; + if (antagonists.length) { + antagGroups = getAntagCategories(antagonists); + } + + const sections: readonly ContentSection[] = [ + { + content: data.alive, + title: 'Alive', + color: 'good', + }, + { + content: data.dead, + title: 'Dead', + }, + { + content: data.ghosts, + title: 'Ghosts', + }, + { + content: data.misc, + title: 'Misc', + }, + { + content: data.npcs, + title: 'NPCs', + }, + { + content: data.ships, + title: 'Ships', + }, + ]; + + return ( +
+ + {critical.map((crit) => ( + + act('orbit', { ref: crit.ref })} + > + + + {toTitleCase(crit.full_name)} + {crit.extra} + +
+
+
+ ))} + + {antagGroups.map(([title, members]) => ( + + ))} + + {sections.map((section) => ( + + ))} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx new file mode 100644 index 000000000000..957104afa8b9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx @@ -0,0 +1,50 @@ +import { useBackend } from '../../backend'; +import { Stack, Button, Flex, Icon } from '../../components'; + +import { capitalizeFirst } from 'common/string'; + +import { getDisplayColor, getDisplayName } from './helpers'; +import { Antagonist, Observable, OrbitData } from './types'; + +type Props = { + item: Observable | Antagonist; + autoObserve: boolean; + color: string | undefined; +}; + +export const OrbitItem = (props: Props, context) => { + const { item, autoObserve, color } = props; + const { full_name, icon, job, name, orbiters, ref } = item; + + const { act, data } = useBackend(context); + const { orbiting } = data; + + const selected = ref === orbiting?.ref; + const validIcon = !!job && !!icon && icon !== 'hudunknown'; + + return ( + act('orbit', { auto_observe: autoObserve, ref })} + style={{ + display: 'flex', + }} + > + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx new file mode 100644 index 000000000000..d27d9080e08d --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx @@ -0,0 +1,65 @@ +import { Collapsible, Flex, Tooltip } from '../../components'; +import { isJobOrNameMatch } from './helpers'; +import { OrbitItem } from './OrbitItem'; +import { OrbitTooltip } from './OrbitTooltip'; +import { Observable } from './types'; + +type Props = { + color?: string; + section: Observable[]; + title: string; + searchQuery: string; + autoObserve: boolean; +}; + +/** + * Displays a collapsible with a map of observable items. + * Filters the results if there is a provided search query. + */ +export const OrbitSection = (props: Props) => { + const { color, section = [], title, searchQuery, autoObserve } = props; + + const filteredSection = section.filter((observable) => + isJobOrNameMatch(observable, searchQuery) + ); + + if (!filteredSection.length) { + return null; + } + + return ( + + + {filteredSection.map((item) => { + const content = ( + + ); + + if (!item.health && !item.extra) { + return content; + } + + return ( + } + key={item.ref} + position="bottom-start" + > + {content} + + ); + })} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx new file mode 100644 index 000000000000..0a941dcb0fb5 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx @@ -0,0 +1,57 @@ +import { LabeledList, NoticeBox } from '../../components'; +import { Antagonist, Observable } from './types'; + +type Props = { + item: Observable | Antagonist; +}; + +/** Displays some info on the mob as a tooltip. */ +export const OrbitTooltip = (props: Props) => { + const { item } = props; + const { extra, name, full_name, health, job } = item; + + let antag; + if ('antag' in item) { + antag = item.antag; + } + + const extraInfo = extra?.split(':'); + const displayHealth = !!health && health >= 0 ? `${health}%` : 'Critical'; + const showAFK = 'client' in item && !item.client; + + return ( + <> + + Last Known Data + + + {extraInfo ? ( + + {extraInfo[1]} + + ) : ( + <> + {!!name && ( + {name} + )} + {!!full_name && ( + + {full_name} + + )} + {!!job && {job}} + {!!antag && ( + {antag} + )} + {!!health && ( + + {displayHealth} + + )} + + )} + {showAFK && Away} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/constants.ts b/tgui/packages/tgui/interfaces/Orbit/constants.ts new file mode 100644 index 000000000000..1edadc9bfe45 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/constants.ts @@ -0,0 +1,8 @@ +export const HEALTH = { + Good: 69, // nice + Average: 19, + Bad: 0, + Crit: -30, + Dead: -100, + Ruined: -200, +} as const; diff --git a/tgui/packages/tgui/interfaces/Orbit/helpers.ts b/tgui/packages/tgui/interfaces/Orbit/helpers.ts new file mode 100644 index 000000000000..7046f784cd6c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/helpers.ts @@ -0,0 +1,119 @@ +import { createSearch } from '../../../common/string'; + +import { HEALTH } from './constants'; +import { AntagGroup, Antagonist, Observable } from './types'; + +const PATTERN_NUMBER = / \(([0-9]+)\)$/; + +/** Return a map of strings with each antag in its antag_category */ +export const getAntagCategories = (antagonists: Antagonist[]): AntagGroup[] => { + const categories = new Map(); + + for (const player of antagonists) { + const { antag_group } = player; + + if (!categories.has(antag_group)) { + categories.set(antag_group, []); + } + categories.get(antag_group)!.push(player); + } + + const sorted = Array.from(categories.entries()).sort((a, b) => { + const lowerA = a[0].toLowerCase(); + const lowerB = b[0].toLowerCase(); + + if (lowerA < lowerB) return -1; + if (lowerA > lowerB) return 1; + return 0; + }); + + return sorted; +}; + +/** Returns a disguised name in case the person is wearing someone else's ID */ +export const getDisplayName = ( + full_name: string, + nickname?: string +): string => { + if (!nickname) { + return full_name; + } + + return nickname; +}; + +/** Displays color for buttons based on the health or orbiter count. */ +export const getDisplayColor = ( + item: Observable, + override?: string +): string => { + const { job, health, orbiters } = item; + + // Things like blob camera, etc + if (typeof health !== 'number') { + return override ? 'good' : 'grey'; + } + + // Players that are AFK + if ('client' in item && !item.client) { + return 'grey'; + } + + return getHealthColor(health); +}; + +/** Returns the display color for certain health percentages */ +const getHealthColor = (health: number): string => { + switch (true) { + case health > HEALTH.Good: + return 'good'; + case health > HEALTH.Average: + return 'average'; + default: + return 'bad'; + } +}; + +/** Checks if a full name or job title matches the search. */ +export const isJobOrNameMatch = ( + observable: Observable, + searchQuery: string +): boolean => { + if (!searchQuery) return true; + + const { full_name, job } = observable; + + return ( + full_name?.toLowerCase().includes(searchQuery?.toLowerCase()) || + job?.toLowerCase().includes(searchQuery?.toLowerCase()) || + false + ); +}; + +export const searchFor = (searchText) => + createSearch(searchText, (thing: Observable) => thing.full_name); + +export const compareString = (a, b) => (a < b ? -1 : a > b); + +export const compareNumberedText = (a, b) => { + const aName = a.name; + const bName = b.name; + + // Check if aName and bName are the same except for a number at the end + // e.g. Medibot (2) and Medibot (3) + const aNumberMatch = aName.match(PATTERN_NUMBER); + const bNumberMatch = bName.match(PATTERN_NUMBER); + + if ( + aNumberMatch && + bNumberMatch && + aName.replace(PATTERN_NUMBER, '') === bName.replace(PATTERN_NUMBER, '') + ) { + const aNumber = parseInt(aNumberMatch[1], 10); + const bNumber = parseInt(bNumberMatch[1], 10); + + return aNumber - bNumber; + } + + return compareString(aName, bName); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/index.tsx b/tgui/packages/tgui/interfaces/Orbit/index.tsx new file mode 100644 index 000000000000..f0854f7bfa69 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/index.tsx @@ -0,0 +1,86 @@ +import { multiline } from '../../../common/string'; +import { useBackend, useLocalState } from '../../backend'; +import { Button, Divider, Flex, Icon, Input, Section } from '../../components'; +import { Window } from '../../layouts'; + +import { searchFor } from './helpers'; +import { OrbitData } from './types'; +import { OrbitContent } from './OrbitContent'; + +export const Orbit = (props, context) => { + const { act, data } = useBackend(context); + + const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); + const [autoObserve, setAutoObserve] = useLocalState( + context, + 'autoObserve', + false + ); + + const orbitMostRelevant = () => { + const mostRelevant = [ + data.antagonists, + data.alive, + data.ghosts, + data.dead, + data.npcs, + data.misc, + data.ships, + ] + .flat() + .filter(searchFor(searchText)) + .sort()[0]; + + if (mostRelevant !== undefined) { + act('orbit', { ref: mostRelevant.ref }); + } + }; + + return ( + + +
+ + + + + + setSearchText(value)} + onEnter={(_, value) => orbitMostRelevant()} + /> + + + + + +
+ +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/types.ts b/tgui/packages/tgui/interfaces/Orbit/types.ts new file mode 100644 index 000000000000..4912ae10db4c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/types.ts @@ -0,0 +1,38 @@ +import { BooleanLike } from '../../../common/react'; + +export type Antagonist = Observable & { antag: string; antag_group: string }; + +export type AntagGroup = [string, Antagonist[]]; + +export type OrbitData = { + alive: Observable[]; + antagonists: Antagonist[]; + critical: Critical[]; + dead: Observable[]; + ghosts: Observable[]; + misc: Observable[]; + npcs: Observable[]; + ships: Observable[]; + orbiting: Observable | null; + autoObserve: boolean; +}; + +export type Observable = { + full_name: string; + ref: string; + // Optionals +} & Partial<{ + client: BooleanLike; + extra: string; + health: number; + icon: string; + job: string; + name: string; + orbiters: number; +}>; + +type Critical = { + extra: string; + full_name: string; + ref: string; +};