diff --git a/.github/RUNNING_A_SERVER.md b/.github/RUNNING_A_SERVER.md index 7ee48e872cd1..9a0c19a7e530 100644 --- a/.github/RUNNING_A_SERVER.md +++ b/.github/RUNNING_A_SERVER.md @@ -4,9 +4,9 @@ First-time installation should be fairly straightforward. First, you'll need BYOND installed. You can get it from https://www.byond.com/download. Once you've done that, extract the game files to wherever you want to keep them. This is a sourcecode-only release, so the next step is to compile the server files. -Open shiptest.dme by double-clicking it, open the Build menu, and click -compile. This'll take a little while, and if everything's done right you'll get -a message like this: + +Double-click `BUILD.bat` in the root directory of the source code. This'll take +a little while, and if everything's done right you'll get a message like this: ``` saving shiptest.dmb (DEBUG mode) @@ -17,14 +17,6 @@ If you see any errors or warnings, something has gone wrong - possibly a corrupt download or the files extracted wrong. If problems persist, ask for assistance in [the discord](https://shiptest.net/discord) -Once that's done, open up the config folder. You'll want to edit config.txt to -set the probabilities for different gamemodes in Secret and to set your server -location so that all your players don't get disconnected at the end of each -round. It's recommended you don't turn on the gamemodes with probability 0, -except Extended, as they have various issues and aren't currently being tested, -so they may have unknown and bizarre bugs. Extended is essentially no mode, and -isn't in the Secret rotation by default as it's just not very fun. - You'll also want to edit config/admins.txt to remove the default admins and add your own. "Game Master" is the highest level of access, and probably the one you'll want to use for now. You can set up your own ranks and find out more in @@ -43,9 +35,15 @@ Windows DLL is included in this repository, but Linux users will need to build and install it themselves. Directions can be found at the [rust-g repo](https://github.com/tgstation/rust-g). +**Unlike other servers,** Shiptest also uses an external library called Auxmos, which +needs to be compiled on linux systems. Like with rust-g, Windows hosts should be fine, as the DLL +it needs is shipped with the repository. Please download and install [auxmos](https://github.com/Putnam3145/auxmos) +using the instructions provided if you're running a linux system. +`tools/ci/build_auxmos.sh` can also be used if you're in a rush. + Finally, to start the server, run Dream Daemon and enter the path to your compiled shiptest.dmb file. Make sure to set the port to the one you -specified in the config.txt, and set the Security box to 'Safe'. Then press GO +specified in the config.txt, and set the Security box to 'Trusted'. Then press GO and the server should start up and be ready to join. It is also recommended that you set up the SQL backend (see below). @@ -68,9 +66,14 @@ https://github.com/tgstation/tgstation-server ## SQL SETUP -The SQL backend requires a Mariadb server running 10.2 or later. Mysql is not supported but Mariadb is a drop in replacement for mysql. SQL is required for the library, stats tracking, admin notes, and job-only bans, among other features, mostly related to server administration. Your server details go in /config/dbconfig.txt, and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql depending on if you want table prefixes. More detailed setup instructions are located here: https://shiptest.net/wiki/Downloading_the_source_code#Setting_up_the_database +The SQL backend requires a Mariadb server running 10.2 or later. Mysql is not +supported, but Mariadb is a drop in replacement for mysql. SQL is required for the +library, stats tracking, admin notes, and job-only bans, among other features, +mostly related to server administration. Your server details go in /config/dbconfig.txt, +and the SQL schema is in /SQL/tgstation_schema.sql and /SQL/tgstation_schema_prefix.sql +depending on if you want table prefixes. -If you are hosting a testing server on windows you can use a standalone version of MariaDB pre load with a blank (but initialized) tgdb database. Find them here: https://tgstation13.download/database/ Just unzip and run for a working (but insecure) database server. Includes a zipped copy of the data folder for easy resetting back to square one. +More detailed setup instructions are located here: https://shiptest.net/wiki/Downloading_the_source_code#Setting_up_the_database ## WEB/CDN RESOURCE DELIVERY diff --git a/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm b/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm index 346458a87daf..3bf64a6b03b7 100644 --- a/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_crashed_starwalker.dmm @@ -89,10 +89,8 @@ dir = 4; color = "#808080" }, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "armory locker"; - pixel_x = 28; req_one_access_txt = "1" }, /obj/item/storage/box/slugshot, @@ -1151,18 +1149,13 @@ "sw" = ( /obj/effect/turf_decal/siding/wood/end, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/wall{ - dir = 8; - icon_door = "grey_wall"; - pixel_x = 28 +/obj/structure/closet/wall/directional/east{ + icon_door = "grey_wall" }, /obj/item/flashlight/lantern{ pixel_x = 8 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = -2 }, @@ -1474,10 +1467,7 @@ "wx" = ( /obj/structure/catwalk/over, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/machinery/atmospherics/pipe/simple/orange/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -2015,10 +2005,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/item/skub{ pixel_x = -5; pixel_y = 6 @@ -2124,10 +2111,8 @@ dir = 8; color = "#808080" }, -/obj/structure/closet/wall/red{ - dir = 4; +/obj/structure/closet/wall/red/directional/west{ name = "armory locker"; - pixel_x = -28; req_one_access_txt = "1" }, /obj/item/storage/belt/military, @@ -2428,10 +2413,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "KC" = ( /obj/structure/catwalk/over, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/yellow{ @@ -2844,10 +2826,8 @@ dir = 4; color = "#A47449" }, -/obj/structure/closet/wall{ - name = "uniform closet"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "uniform closet" }, /obj/effect/decal/cleanable/dirt, /obj/structure/cable/yellow{ @@ -2950,10 +2930,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ruin/beach/starwalker) "SS" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 32 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/item/stack/sticky_tape, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, @@ -3103,7 +3080,7 @@ /obj/structure/cable/blue{ icon_state = "2-8" }, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = -7 }, /turf/open/floor/plating{ @@ -3363,10 +3340,8 @@ dir = 6; color = "#808080" }, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "armory locker"; - pixel_x = 28; req_one_access_txt = "1" }, /obj/structure/railing, diff --git a/_maps/RandomRuins/BeachRuins/beach_knights_rest.dmm b/_maps/RandomRuins/BeachRuins/beach_knights_rest.dmm index bc6875cf81c3..17ad7d93f739 100644 --- a/_maps/RandomRuins/BeachRuins/beach_knights_rest.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_knights_rest.dmm @@ -35,7 +35,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "dF" = ( /obj/structure/mineral_door/iron, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 4 }, /area/ruin/beachplanet/knight) @@ -940,7 +940,7 @@ /area/overmap_encounter/planetoid/beachplanet/explored) "ZS" = ( /obj/structure/mineral_door/iron, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 8 }, /area/ruin/beachplanet/knight) diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 091916c6eb33..28a963ed476a 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -321,10 +321,7 @@ /turf/open/floor/vault, /area/ruin/unpowered/corprejectrooms) "io" = ( -/obj/structure/closet/wall/red{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/wall/red/directional/west, /obj/item/keycard/office{ desc = "Only Elite level employees are authorized to handle this keycard. All other employees may face termination if found in possession."; name = "Vault Card"; @@ -1391,9 +1388,7 @@ /turf/open/floor/plating/catwalk_floor, /area/ruin/unpowered/corprejectrooms) "Fa" = ( -/obj/structure/closet/firecloset/wall{ - pixel_x = -27 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/structure/cable/blue{ icon_state = "5-6" }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm index 7f5b18cd2014..a309798f02fe 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm @@ -457,7 +457,7 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 4 }, /area/overmap_encounter/planetoid/jungle/explored) @@ -509,7 +509,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "dI" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 1 }, /area/overmap_encounter/planetoid/jungle/explored) @@ -1132,7 +1132,7 @@ "hZ" = ( /obj/structure/spider/stickyweb, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/stairs/medium, +/turf/open/floor/plasteel/stairs/mid, /area/overmap_encounter/planetoid/jungle/explored) "ib" = ( /obj/item/stack/sheet/metal, @@ -1759,7 +1759,7 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 8 }, /area/overmap_encounter/planetoid/jungle/explored) @@ -2732,7 +2732,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "te" = ( /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 4 }, /area/overmap_encounter/planetoid/jungle/explored) @@ -3029,7 +3029,7 @@ /area/overmap_encounter/planetoid/jungle/explored) "vd" = ( /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/turf/open/floor/plasteel/stairs/medium, +/turf/open/floor/plasteel/stairs/mid, /area/overmap_encounter/planetoid/jungle/explored) "ve" = ( /obj/structure/railing{ @@ -3478,7 +3478,7 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/stairs/medium, +/turf/open/floor/plasteel/stairs/mid, /area/overmap_encounter/planetoid/jungle/explored) "xT" = ( /obj/structure/table/reinforced, diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index ff730ff082bd..bed82db78338 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -465,10 +465,8 @@ /area/ship/storage) "fv" = ( /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/wall/red{ - dir = 1; - name = "Bartender's locker"; - pixel_y = -28 +/obj/structure/closet/wall/red/directional/south{ + name = "Bartender's locker" }, /obj/item/clothing/under/suit/waiter/syndicate, /obj/item/clothing/suit/apron/purple_bartender, @@ -1029,10 +1027,7 @@ /obj/structure/sign/poster/contraband/lusty_xenomorph{ pixel_y = 32 }, -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/west, /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, @@ -2857,10 +2852,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/wall/directional/west, /obj/item/reagent_containers/syringe/contraband/bath_salts{ pixel_y = 6; pixel_x = -4 diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm index ae980c270cdd..547647fab052 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm @@ -443,10 +443,7 @@ /turf/open/floor/plating/dirt/jungle/dark/lit, /area/overmap_encounter/planetoid/jungle/explored) "dv" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - pixel_x = -29 - }, +/obj/structure/closet/wall/blue/directional/west, /obj/structure/cable/green{ icon_state = "1-2" }, @@ -485,10 +482,7 @@ /turf/closed/wall/mineral/titanium, /area/ruin/jungle/interceptor/porthall) "dE" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/effect/turf_decal/corner/opaque/orange/border{ dir = 6 }, @@ -581,10 +575,8 @@ }, /obj/item/clothing/suit/armor/vest, /obj/item/gun/energy/disabler, -/obj/structure/closet/wall/red{ - name = "secure locker"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/red/directional/west{ + name = "secure locker" }, /turf/open/floor/plasteel/dark, /area/ruin/jungle/interceptor/security) @@ -999,10 +991,7 @@ /obj/effect/turf_decal/corner/opaque/bottlegreen/border{ dir = 5 }, -/obj/structure/closet/wall{ - dir = 8; - pixel_x = 28 - }, +/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, @@ -1096,10 +1085,7 @@ /turf/open/floor/wood, /area/ruin/jungle/interceptor/starhall) "im" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - pixel_x = -29 - }, +/obj/structure/closet/wall/blue/directional/west, /obj/structure/cable/green{ icon_state = "1-2" }, @@ -1166,10 +1152,7 @@ /obj/effect/turf_decal/corner/opaque/bottlegreen/border{ dir = 8 }, -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/wall/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/tech/techmaint, /area/ruin/jungle/interceptor/starhall) @@ -1529,10 +1512,7 @@ /turf/open/floor/plating/dirt/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) "mU" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - pixel_x = -29 - }, +/obj/structure/closet/wall/blue/directional/west, /obj/structure/cable/green{ icon_state = "1-2" }, @@ -1662,7 +1642,7 @@ /turf/open/floor/plating, /area/overmap_encounter/planetoid/jungle/explored) "nZ" = ( -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 1 }, /area/ruin/jungle/interceptor/forehall) @@ -1796,10 +1776,7 @@ /obj/effect/turf_decal/corner_steel_grid{ dir = 10 }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/structure/cable/green{ icon_state = "4-9" }, @@ -2124,10 +2101,7 @@ /turf/open/floor/plating/dirt/jungle/lit, /area/overmap_encounter/planetoid/jungle/explored) "rU" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/item/clothing/mask/breath, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/plastic, @@ -3087,10 +3061,8 @@ /obj/effect/turf_decal/corner/transparent/bar/three_quarters{ dir = 4 }, -/obj/structure/closet/wall/red{ - name = "secure locker"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/red/directional/west{ + name = "secure locker" }, /turf/open/floor/plasteel/dark, /area/ruin/jungle/interceptor/security) @@ -3209,10 +3181,7 @@ /obj/structure/chair{ dir = 4 }, -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/wall/directional/west, /obj/structure/cable/green{ icon_state = "1-2" }, @@ -3934,10 +3903,8 @@ }, /obj/item/light/bulb/broken, /obj/item/clothing/suit/space/hardsuit/security, -/obj/structure/closet/wall/red{ - name = "secure locker"; - dir = 1; - pixel_y = -28 +/obj/structure/closet/wall/red/directional/south{ + name = "secure locker" }, /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/security) @@ -4503,9 +4470,7 @@ /obj/structure/cable/orange{ icon_state = "2-8" }, -/obj/structure/closet/wall{ - pixel_y = 29 - }, +/obj/structure/closet/wall/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/effect/decal/cleanable/glass, /obj/machinery/light/small/broken/directional/east, @@ -4891,6 +4856,10 @@ }, /turf/open/floor/plating, /area/ruin/jungle/interceptor/porthall) +"Pi" = ( +/obj/item/circuitboard/machine/ship_gravity, +/turf/open/floor/plating/rust, +/area/overmap_encounter/planetoid/jungle/explored) "Pk" = ( /obj/effect/turf_decal/corner/opaque/purple/three_quarters{ icon_state = "borderfloor_white"; @@ -5513,10 +5482,7 @@ /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/starlaunchertwo) "UD" = ( -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/effect/turf_decal/corner/opaque/orange/border{ dir = 5 }, @@ -6172,7 +6138,7 @@ "YQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/stairs/medium, +/turf/open/floor/plasteel/stairs/mid, /area/ruin/jungle/interceptor/afthall) "YT" = ( /obj/structure/catwalk/over/plated_catwalk/dark, @@ -7954,7 +7920,7 @@ aG SC Mw EJ -wH +Pi sV Mw Bb diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index cda541385b56..bc462784bca8 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -2879,10 +2879,7 @@ /obj/structure/railing{ layer = 3.9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 4; pixel_y = 5 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm index 6cad8f589b78..ac1c579eedb1 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_comm_outpost.dmm @@ -202,9 +202,9 @@ /obj/structure/closet/crate, /obj/item/clothing/gloves/combat, /obj/item/gun/ballistic/automatic/pistol, -/obj/item/ammo_box/magazine/pistolm9mm, -/obj/item/ammo_box/magazine/pistolm9mm, -/obj/item/ammo_box/magazine/pistolm9mm, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, /turf/open/floor/carpet/black, /area/ruin/unpowered/syndicate_outpost) "To" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm index ae8079063627..32c0fbf31006 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_crashed_pinnance.dmm @@ -369,10 +369,8 @@ /turf/open/floor/plasteel/mono/white, /area/ruin/unpowered/crashsite/pinnance) "Gt" = ( -/obj/structure/closet/wall/white{ - dir = 8; - name = "survey gear"; - pixel_x = 30 +/obj/structure/closet/wall/white/directional/east{ + name = "survey gear" }, /obj/item/survey_handheld/elite, /obj/item/survey_handheld/advanced, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm b/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm index 7af7b29b6de2..1e3c1d7ce293 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm @@ -409,7 +409,7 @@ /turf/open/floor/plasteel, /area/ruin/unpowered) "Fk" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/pressure/explosive/shrapnel/live, /turf/open/floor/plating/asteroid/rockplanet/lit, /area/overmap_encounter/planetoid/rockplanet/explored) "FH" = ( diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index fcaa0b579175..155af484d84d 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -511,7 +511,7 @@ /turf/open/floor/plasteel/tech, /area/ruin/rockplanet/nanotrasen) "ix" = ( -/obj/effect/mine/shrapnel/human_only, +/obj/item/mine/pressure/explosive/shrapnel/live, /turf/open/floor/plating/asteroid/rockplanet/lit, /area/overmap_encounter/planetoid/rockplanet/explored) "iE" = ( @@ -760,10 +760,7 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_crash.dmm b/_maps/RandomRuins/RockRuins/rockplanet_crash.dmm index 2d69be814e35..43db217f9dcb 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_crash.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_crash.dmm @@ -906,7 +906,7 @@ /area/ruin/unpowered) "BX" = ( /obj/structure/table, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = 6; pixel_y = 14 }, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm index 48f7614da429..1623ec21a576 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm @@ -1964,10 +1964,7 @@ /area/ruin/powered) "Tl" = ( /obj/machinery/light/directional/south, -/obj/structure/closet/secure_closet/wall{ - dir = 4; - pixel_x = -27 - }, +/obj/structure/closet/secure_closet/wall/directional/west, /obj/item/storage/firstaid/ancient, /obj/item/clothing/neck/stethoscope, /obj/item/grenade/chem_grenade/teargas{ diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm index 244eef61fa03..209709f2599b 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_pubbyslopcrash.dmm @@ -195,10 +195,8 @@ /turf/open/floor/engine, /area/ruin/whitesands/pubbycrash) "fk" = ( -/obj/structure/closet/wall/blue{ - dir = 1; - name = "Captain's locker"; - pixel_y = -28 +/obj/structure/closet/wall/blue/directional/south{ + name = "Captain's locker" }, /obj/item/clothing/suit/space/hardsuit/mining/heavy, /obj/effect/decal/cleanable/dirt, @@ -503,10 +501,7 @@ /area/ruin/whitesands/pubbycrash) "ln" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/effect/spawner/lootdrop/maintenance/two, /turf/open/floor/plasteel/tech/grid, /area/ruin/whitesands/pubbycrash/engine_room) @@ -660,10 +655,8 @@ }, /area/ruin/whitesands/pubbycrash/split) "oo" = ( -/obj/structure/closet/wall/white{ - dir = 1; - name = "Medicine storage"; - pixel_y = -30 +/obj/structure/closet/wall/white/directional/south{ + name = "Medicine storage" }, /obj/item/storage/firstaid/ancient{ pixel_x = 6; @@ -686,7 +679,7 @@ "oO" = ( /obj/structure/table/reinforced, /obj/item/laser_pointer, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = 6; pixel_y = 14 }, @@ -857,10 +850,9 @@ /obj/effect/turf_decal/siding/brown{ dir = 1 }, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "orange_wall"; - name = "Mining equipment"; - pixel_y = 28 + name = "Mining equipment" }, /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/meson, @@ -1818,10 +1810,8 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "Firearm Locker"; - pixel_x = 29; welded = 1 }, /obj/effect/turf_decal/spline/fancy/opaque/black{ @@ -1988,10 +1978,8 @@ /turf/open/floor/plasteel, /area/ruin/whitesands/pubbycrash/split) "Pr" = ( -/obj/structure/closet/wall/red{ - dir = 4; +/obj/structure/closet/wall/red/directional/west{ name = "Pilots locker"; - pixel_x = -29; welded = 1 }, /obj/item/clothing/under/suit/black, diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm index 0babadd59a8d..fe95fca0e82b 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_waterplant.dmm @@ -1482,7 +1482,7 @@ /turf/open/floor/plating, /area/ruin/powered) "LM" = ( -/obj/machinery/power/turbine, +/obj/machinery/power/shuttle/engine/turbine, /turf/open/floor/plating/asteroid/whitesands, /area/overmap_encounter/planetoid/sand/explored) "LN" = ( diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index adf957299b7a..db2b305b063b 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -1499,7 +1499,7 @@ /turf/open/floor/plasteel/dark/airless, /area/ruin/space/has_grav/astraeus/bridge) "Ni" = ( -/obj/structure/closet/wall, +/obj/structure/closet/wall/directional/north, /obj/item/circuitboard/computer/rdconsole, /obj/item/clothing/suit/toggle/labcoat, /obj/item/research_notes/loot/big, diff --git a/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm b/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm index 01606dfa8a35..f381d0375e46 100644 --- a/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm +++ b/_maps/RandomRuins/SpaceRuins/cryocontainment.dmm @@ -326,7 +326,7 @@ /turf/open/floor/plating/airless, /area/ruin/unpowered) "iA" = ( -/obj/effect/mine/stun, +/obj/item/mine/proximity/explosive/sting/live, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/airless, /area/ruin/unpowered) @@ -803,7 +803,7 @@ /turf/open/floor/engine/airless, /area/ruin/unpowered) "ET" = ( -/obj/effect/mine/stun, +/obj/item/mine/proximity/explosive/sting/live, /turf/open/floor/plating/airless, /area/ruin/unpowered) "Fb" = ( diff --git a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm index 28695ad57a80..a1bfbbcabd83 100644 --- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm +++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm @@ -1282,9 +1282,7 @@ /turf/open/floor/plasteel/white, /area/ruin/space/has_grav) "IR" = ( -/obj/structure/closet/firecloset/wall{ - pixel_y = 29 - }, +/obj/structure/closet/firecloset/wall/directional/north, /turf/open/floor/plasteel, /area/ruin/space/has_grav) "Ja" = ( @@ -1820,9 +1818,7 @@ /area/ruin/space/has_grav) "UQ" = ( /obj/effect/turf_decal/siding/purple, -/obj/structure/closet/firecloset/wall{ - pixel_y = 29 - }, +/obj/structure/closet/firecloset/wall/directional/north, /turf/open/floor/plasteel, /area/ruin/space/has_grav) "UR" = ( diff --git a/_maps/RandomRuins/SpaceRuins/fueldepot.dmm b/_maps/RandomRuins/SpaceRuins/fueldepot.dmm index abe9e9f4562c..aa5edab6420a 100644 --- a/_maps/RandomRuins/SpaceRuins/fueldepot.dmm +++ b/_maps/RandomRuins/SpaceRuins/fueldepot.dmm @@ -148,10 +148,8 @@ }, /obj/structure/table_frame, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/wall{ - name = "armory locker"; - pixel_x = 28; - dir = 8 +/obj/structure/closet/wall/directional/east{ + name = "armory locker" }, /turf/open/floor/mineral/plastitanium, /area/ruin/unpowered) @@ -218,10 +216,8 @@ /obj/effect/turf_decal/industrial/warning{ dir = 5 }, -/obj/structure/closet/wall{ - name = "armory locker"; - pixel_x = 28; - dir = 8 +/obj/structure/closet/wall/directional/east{ + name = "armory locker" }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/gun/ballistic/shotgun/brimstone, @@ -615,10 +611,8 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/wall{ - name = "suit locker"; - pixel_x = -28; - dir = 4 +/obj/structure/closet/wall/directional/west{ + name = "suit locker" }, /turf/open/floor/mineral/plastitanium, /area/ruin/unpowered) @@ -1314,10 +1308,8 @@ /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt/dust, /obj/item/reagent_containers/food/drinks/bottle/rum, -/obj/structure/closet/wall{ - name = "armory locker"; - pixel_x = 28; - dir = 8 +/obj/structure/closet/wall/directional/east{ + name = "armory locker" }, /turf/open/floor/mineral/plastitanium, /area/ruin/unpowered) @@ -1458,10 +1450,8 @@ /obj/structure/cable{ icon_state = "4-6" }, -/obj/structure/closet/wall{ - name = "suit locker"; - pixel_x = -28; - dir = 4 +/obj/structure/closet/wall/directional/west{ + name = "suit locker" }, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/plastitanium, diff --git a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm index f425c41bccf3..700511e2e132 100644 --- a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm +++ b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm @@ -264,7 +264,7 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/hellfactory) "aT" = ( -/obj/effect/mine/gas/water_vapor, +/obj/item/mine/pressure/gas/live, /obj/machinery/door/window, /turf/open/floor/plastic, /area/ruin/space/has_grav/hellfactory) @@ -272,7 +272,7 @@ /turf/open/floor/plastic, /area/ruin/space/has_grav/hellfactory) "aV" = ( -/obj/effect/mine/gas/water_vapor, +/obj/item/mine/pressure/gas/live, /turf/open/floor/plastic, /area/ruin/space/has_grav/hellfactory) "aW" = ( diff --git a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm index 0402f3088095..7577cdeb99f5 100644 --- a/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm +++ b/_maps/RandomRuins/SpaceRuins/provinggrounds.dmm @@ -323,7 +323,7 @@ /turf/closed/wall/r_wall, /area/ruin/space/has_grav/syndicircle/winter) "iR" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/pressure/explosive/shrapnel/live, /obj/item/stack/tile/mineral/snow, /obj/machinery/light/dim/directional/west, /obj/effect/decal/cleanable/dirt/dust, @@ -648,7 +648,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/syndicircle/winter) "tf" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/pressure/explosive/shrapnel/live, /obj/item/stack/tile/mineral/snow, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/snow/atmosphere, diff --git a/_maps/RandomRuins/SpaceRuins/scav_mining.dmm b/_maps/RandomRuins/SpaceRuins/scav_mining.dmm index 48476edb1b82..cc1e434dc75b 100644 --- a/_maps/RandomRuins/SpaceRuins/scav_mining.dmm +++ b/_maps/RandomRuins/SpaceRuins/scav_mining.dmm @@ -347,7 +347,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/scav_mining/core) "xC" = ( -/obj/item/radio/off, +/obj/item/radio, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable{ icon_state = "1-2" diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 8dcef481246f..ee6e6bd7112a 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -4615,10 +4615,7 @@ }, /area/ruin/space/has_grav/singularitylab) "sr" = ( -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/wall/directional/west, /obj/item/reagent_containers/food/drinks/flask, /turf/open/floor/wood, /area/ruin/space/has_grav/singularitylab/civvie) @@ -8959,10 +8956,7 @@ /turf/open/floor/engine, /area/ruin/space/has_grav/singularitylab/reactor) "Jk" = ( -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/wall/directional/west, /turf/open/floor/wood, /area/ruin/space/has_grav/singularitylab/civvie) "Jl" = ( diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index aba1424544be..e5ed66920caf 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1439,9 +1439,7 @@ pixel_y = 5 }, /obj/item/reagent_containers/food/condiment/sugar, -/obj/structure/closet/wall{ - pixel_y = 30 - }, +/obj/structure/closet/wall/directional/north, /obj/item/spacecash/bundle/c100, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/spacemall) diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm index 554816ddc75d..cc330e69baa9 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_abandoned_mechbay.dmm @@ -3425,7 +3425,7 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ruin/wasteplanet/abandoned_mechbay/bay1) "Og" = ( -/obj/effect/mine/shrapnel/human_only, +/obj/item/mine/pressure/explosive/shrapnel/live, /turf/open/floor/plating/asteroid/wasteplanet, /area/overmap_encounter/planetoid/cave/explored) "Oj" = ( @@ -4127,9 +4127,7 @@ /turf/closed/wall/concrete/reinforced, /area/ruin/wasteplanet/abandoned_mechbay/mechlab) "Yu" = ( -/obj/structure/closet/wall/white{ - pixel_y = 29 - }, +/obj/structure/closet/wall/white/directional/north, /obj/item/storage/firstaid/toxin, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm index 2cd76a6338be..7a4b5e4caa3c 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm @@ -431,10 +431,7 @@ /obj/machinery/advanced_airlock_controller{ pixel_y = -24 }, -/obj/structure/closet/emcloset/wall{ - pixel_x = 28; - dir = 8 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/plasteel/tech, /area/ruin/unpowered) "TZ" = ( diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm index e931e0091d26..7756fdfa1fd6 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm @@ -4083,7 +4083,7 @@ /turf/open/floor/plating/rust, /area/ruin/powered) "LY" = ( -/obj/effect/mine/sound/bwoink, +/obj/item/mine/pressure/sound/live, /obj/structure/grille, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 1 diff --git a/_maps/configs/pgf_crying_sun.json b/_maps/configs/pgf_crying_sun.json index 5112e1b25280..d4eb67b1fb50 100644 --- a/_maps/configs/pgf_crying_sun.json +++ b/_maps/configs/pgf_crying_sun.json @@ -46,5 +46,5 @@ "slots": 3 } }, - "enabled":false + "enabled":true } diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 07fec6af70db..ee85c403d3f1 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -3929,7 +3929,7 @@ /area/centcom/evac) "aLE" = ( /obj/structure/table, -/obj/item/radio/off, +/obj/item/radio, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "aLF" = ( @@ -3955,7 +3955,7 @@ /area/centcom/evac) "aLJ" = ( /obj/structure/table, -/obj/item/radio/off, +/obj/item/radio, /obj/machinery/light/directional/east, /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) diff --git a/_maps/outpost/hangar/nt_asteroid_20x20.dmm b/_maps/outpost/hangar/nt_asteroid_20x20.dmm index 159af62d17cf..02bd8e6f14f8 100644 --- a/_maps/outpost/hangar/nt_asteroid_20x20.dmm +++ b/_maps/outpost/hangar/nt_asteroid_20x20.dmm @@ -620,7 +620,7 @@ }, /area/hangar) "pW" = ( -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ planetary_atmos = 1 }, /area/hangar) diff --git a/_maps/outpost/indie_space.dmm b/_maps/outpost/indie_space.dmm index e7d2e554a70e..7d7ad5ecb653 100644 --- a/_maps/outpost/indie_space.dmm +++ b/_maps/outpost/indie_space.dmm @@ -2856,10 +2856,7 @@ /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plasteel, /area/outpost/hallway/central) "sB" = ( @@ -3933,10 +3930,7 @@ "yV" = ( /obj/effect/turf_decal/corner/opaque/grey/full, /obj/effect/turf_decal/corner/opaque/neutral, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /turf/open/floor/plasteel, /area/outpost/hallway/port) "za" = ( @@ -7221,9 +7215,7 @@ /obj/effect/turf_decal/corner/opaque/neutral{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel, /area/outpost/hallway/central) "SC" = ( diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index 800ea0cf0cbb..02d44702bc23 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -3191,10 +3191,7 @@ /area/outpost/crew/bar) "lS" = ( /obj/structure/table/reinforced, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 4 }, @@ -3896,10 +3893,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/east, /turf/open/floor/wood, /area/outpost/hallway/central) "op" = ( @@ -5302,10 +5296,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/suit/apron/chef, /turf/open/floor/concrete/tiles, /area/outpost/crew/library) @@ -5961,10 +5952,8 @@ }, /obj/effect/turf_decal/siding/wood, /obj/machinery/light/directional/north, -/obj/structure/closet/wall{ - name = "Storage Locker"; - dir = 8; - pixel_x = 28 +/obj/structure/closet/wall/directional/east{ + name = "Storage Locker" }, /turf/open/floor/carpet, /area/outpost/hallway/central) @@ -6032,9 +6021,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, @@ -6150,10 +6137,8 @@ /obj/item/reagent_containers/glass/rag, /obj/item/mop, /obj/item/soap/deluxe, -/obj/structure/closet/wall/blue{ - dir = 4; - name = "Janitorial Closet"; - pixel_x = -29 +/obj/structure/closet/wall/blue/directional/west{ + name = "Janitorial Closet" }, /obj/machinery/door/window, /obj/effect/turf_decal/industrial/warning, @@ -7238,9 +7223,7 @@ /obj/effect/turf_decal/techfloor/orange{ dir = 5 }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /turf/open/floor/plasteel/tech/grid, /area/outpost/engineering) "zm" = ( @@ -7386,10 +7369,8 @@ /turf/open/floor/grass, /area/outpost/crew/garden) "zP" = ( -/obj/structure/closet/wall/red{ - dir = 8; - name = "Bartender's locker"; - pixel_x = 29 +/obj/structure/closet/wall/red/directional/east{ + name = "Bartender's locker" }, /obj/structure/cable{ icon_state = "1-8" @@ -9157,10 +9138,8 @@ /turf/open/floor/plating, /area/outpost/crew/lounge) "Gi" = ( -/obj/structure/closet/wall{ - name = "Storage Locker"; - pixel_y = -28; - dir = 1 +/obj/structure/closet/wall/directional/south{ + name = "Storage Locker" }, /turf/open/floor/carpet/green, /area/outpost/hallway/central) @@ -10430,10 +10409,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/wood, /area/outpost/hallway/central) "Kn" = ( @@ -14305,10 +14281,7 @@ /obj/effect/turf_decal/techfloor/orange{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plasteel/tech/grid, /area/outpost/engineering) "Yi" = ( @@ -14583,10 +14556,7 @@ /turf/closed/indestructible/reinforced, /area/outpost/crew/dorm) "Zb" = ( -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/under/shorts/cookjorts, /obj/item/clothing/shoes/cookflops, /obj/item/clothing/suit/toggle/chef, @@ -14869,10 +14839,8 @@ dir = 6 }, /obj/machinery/light/directional/south, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/east{ name = "Game Locker"; - dir = 8; - pixel_x = 28; desc = "It's a basic storage unit. Theres a little label on it, asking you to put the toys back in when finished" }, /obj/item/toy/figure/curator{ diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index e8bf634e863f..65df51cb9735 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -335,10 +335,8 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/structure/closet/wall/blue{ - dir = 4; - name = "Janitorial Closet"; - pixel_x = -28 +/obj/structure/closet/wall/blue/directional/west{ + name = "Janitorial Closet" }, /obj/item/mop, /obj/item/reagent_containers/glass/bucket, @@ -659,10 +657,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/closet/wall/blue{ - dir = 1; - name = "Bridge Officers Locker"; - pixel_y = -28 +/obj/structure/closet/wall/blue/directional/south{ + name = "Bridge Officers Locker" }, /obj/item/clothing/shoes/cowboy/fancy, /obj/item/clothing/gloves/color/white, @@ -1045,10 +1041,8 @@ /turf/open/floor/wood, /area/ship/crew/canteen) "jI" = ( -/obj/structure/closet/wall/orange{ - name = "fuel locker"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/orange/directional/west{ + name = "fuel locker" }, /obj/item/stack/sheet/mineral/plasma/five{ pixel_y = 3 @@ -1593,10 +1587,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/carpet/nanoweave, /area/ship/hallway/central) "pe" = ( @@ -2093,6 +2084,8 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, +/obj/structure/cable/yellow, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/engineering) "tR" = ( @@ -2199,10 +2192,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/bridge) "vd" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/carpet/nanoweave/purple, /area/ship/crew) "vj" = ( @@ -2629,10 +2619,8 @@ /turf/open/floor/plasteel/white, /area/ship/hallway/central) "yZ" = ( -/obj/structure/closet/wall{ - dir = 1; - name = "Utility Closet"; - pixel_y = -28 +/obj/structure/closet/wall/directional/south{ + name = "Utility Closet" }, /obj/item/radio, /obj/item/radio, @@ -2741,10 +2729,7 @@ /obj/structure/cable/yellow{ icon_state = "2-9" }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/plating, /area/ship/engineering) "AF" = ( @@ -3222,9 +3207,7 @@ /turf/open/floor/carpet/nanoweave/beige, /area/ship/crew/dorm) "EP" = ( -/obj/structure/closet/secure_closet/freezer/wall{ - pixel_y = 28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/north, /obj/item/reagent_containers/food/condiment/rice{ pixel_y = 17 }, @@ -3469,10 +3452,8 @@ /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/bridge) "Hu" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - name = "Captains Locker"; - pixel_x = -28 +/obj/structure/closet/wall/blue/directional/west{ + name = "Captains Locker" }, /obj/item/clothing/under/rank/command/captain, /obj/item/clothing/under/rank/command, @@ -3653,10 +3634,7 @@ /turf/open/floor/engine/hull/interior, /area/ship/cargo) "IH" = ( -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/item/storage/briefcase, /obj/item/folder/yellow, /obj/item/folder/red, @@ -3755,10 +3733,7 @@ /obj/effect/turf_decal/techfloor{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/plasteel/tech, /area/ship/crew/cryo) "Jk" = ( @@ -3914,10 +3889,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/machinery/door/firedoor/border_only, /obj/item/reagent_containers/syringe/contraband{ pixel_x = 6; @@ -4974,10 +4946,8 @@ /area/ship/engineering) "WG" = ( /obj/effect/turf_decal/siding/wideplating/dark, -/obj/structure/closet/wall/red{ - dir = 1; - name = "Officer's Locker"; - pixel_y = -28 +/obj/structure/closet/wall/red/directional/south{ + name = "Officer's Locker" }, /obj/item/clothing/shoes/combat, /obj/item/storage/belt/security/webbing/inteq, diff --git a/_maps/shuttles/independent/independent_box.dmm b/_maps/shuttles/independent/independent_box.dmm index 685f9518f44e..0e1e4e9439b5 100644 --- a/_maps/shuttles/independent/independent_box.dmm +++ b/_maps/shuttles/independent/independent_box.dmm @@ -1180,10 +1180,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/item/storage/firstaid/fire, /obj/item/extinguisher/mini, /turf/open/floor/plasteel/tech, @@ -1570,10 +1567,7 @@ pixel_x = -25; pixel_y = 24 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plasteel/white, /area/ship/cargo) "ss" = ( @@ -2484,6 +2478,9 @@ /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering) "KI" = ( @@ -2554,8 +2551,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 9 }, -/obj/structure/salvageable/computer{ - dir = 8 +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating, /area/ship/engineering) diff --git a/_maps/shuttles/independent/independent_boyardee.dmm b/_maps/shuttles/independent/independent_boyardee.dmm index 20a0cacad9ac..7d6fb95b99da 100644 --- a/_maps/shuttles/independent/independent_boyardee.dmm +++ b/_maps/shuttles/independent/independent_boyardee.dmm @@ -97,10 +97,8 @@ pixel_x = -5; pixel_y = -4 }, -/obj/structure/closet/wall/white{ - dir = 8; - name = "First Aid"; - pixel_x = 28 +/obj/structure/closet/wall/white/directional/east{ + name = "First Aid" }, /obj/machinery/light/small/directional/south, /obj/machinery/newscaster/directional/west, @@ -439,6 +437,10 @@ icon_state = "2-8" }, /obj/item/radio/intercom/directional/east, +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus, +/obj/machinery/cell_charger, /turf/open/floor/plating, /area/ship/maintenance) "iB" = ( @@ -665,12 +667,14 @@ /turf/open/floor/carpet/red_gold, /area/ship/crew/canteen) "mH" = ( -/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/box, /obj/structure/cable/yellow{ - icon_state = "0-2" + icon_state = "2-4" }, -/obj/effect/turf_decal/box, -/obj/item/stack/sheet/mineral/plasma/five, +/obj/structure/reagent_dispensers/watertank/high, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, /turf/open/floor/plating, /area/ship/maintenance) "nc" = ( @@ -1573,11 +1577,12 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "CV" = ( -/obj/structure/reagent_dispensers/watertank/high, -/obj/item/reagent_containers/glass/bucket, -/obj/item/reagent_containers/glass/bucket, -/obj/item/mop, /obj/effect/turf_decal/box, +/obj/machinery/power/port_gen/pacman, +/obj/item/stack/sheet/mineral/plasma/five, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/ship/maintenance) "Da" = ( @@ -2496,10 +2501,10 @@ /turf/open/floor/plasteel, /area/ship/crew/canteen) "TN" = ( -/obj/structure/table/reinforced, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/item/stock_parts/cell/high/plus, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/maintenance) "Uf" = ( @@ -2627,6 +2632,9 @@ icon_state = "2-8" }, /obj/effect/turf_decal/box, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/maintenance) "VR" = ( diff --git a/_maps/shuttles/independent/independent_bubble.dmm b/_maps/shuttles/independent/independent_bubble.dmm index 32efe563c0bb..c34ad8349987 100644 --- a/_maps/shuttles/independent/independent_bubble.dmm +++ b/_maps/shuttles/independent/independent_bubble.dmm @@ -480,13 +480,9 @@ /turf/open/floor/plasteel, /area/ship/bridge) "uw" = ( -/obj/item/pipe_dispenser, -/obj/structure/closet/crate, -/obj/item/construction/plumbing, -/obj/item/construction/rcd/arcd, -/obj/item/stack/sheet/plasteel/fifty, -/obj/item/construction/rcd/combat, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating/rust, /area/ship/maintenance/aft) "uE" = ( @@ -636,6 +632,9 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating/rust, /area/ship/maintenance/aft) "Ay" = ( @@ -988,6 +987,21 @@ "Ob" = ( /turf/closed/wall, /area/ship/maintenance/aft) +"OR" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/closet/crate, +/obj/item/stack/sheet/plasteel/fifty, +/obj/item/pipe_dispenser, +/obj/item/construction/rcd/arcd, +/obj/item/construction/rcd/combat, +/obj/item/construction/plumbing, +/turf/open/floor/plating, +/area/ship/maintenance/aft) "OY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -1345,7 +1359,7 @@ bv MZ jI MW -VA +OR Ob Ob VB diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index 4e7e52e85dff..6150fe8877ec 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -254,6 +254,10 @@ dir = 4 }, /obj/structure/catwalk/over/plated_catwalk/dark, +/obj/machinery/power/ship_gravity, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, /turf/open/floor/plating, /area/ship/engineering) "gm" = ( @@ -292,9 +296,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/item/clothing/shoes/cowboy, /obj/item/clothing/shoes/cowboy, /obj/item/clothing/shoes/cowboy, @@ -422,9 +424,7 @@ /obj/effect/turf_decal/corner/opaque/blue{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/white{ dir = 1 }, @@ -563,7 +563,7 @@ pixel_x = -9; pixel_y = 7 }, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = 6; pixel_y = 7 }, @@ -1499,9 +1499,8 @@ /obj/item/pickaxe/silver, /obj/item/storage/bag/ore, /obj/item/storage/bag/ore, -/obj/structure/closet/wall{ - name = "equipment closet"; - pixel_y = 28 +/obj/structure/closet/wall/directional/north{ + name = "equipment closet" }, /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 @@ -2125,7 +2124,7 @@ "WL" = ( /obj/structure/table, /obj/item/storage/belt/utility, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = 6; pixel_y = 7 }, diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm index 006a74a2e3fb..a5b4354e7456 100644 --- a/_maps/shuttles/independent/independent_junker.dmm +++ b/_maps/shuttles/independent/independent_junker.dmm @@ -2266,9 +2266,7 @@ /obj/item/gun/ballistic/automatic/pistol/disposable, /obj/item/reagent_containers/food/drinks/bottle/hooch, /obj/machinery/light/dim/directional/south, -/obj/structure/closet/wall/blue{ - dir = 8; - pixel_x = 32; +/obj/structure/closet/wall/blue/directional/east{ welded = 1 }, /turf/open/floor/plating, diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm index 29264dd2958f..b9c686406b14 100644 --- a/_maps/shuttles/independent/independent_kilo.dmm +++ b/_maps/shuttles/independent/independent_kilo.dmm @@ -618,7 +618,6 @@ "cY" = ( /obj/effect/decal/cleanable/greenglow, /obj/effect/decal/cleanable/dirt, -/obj/structure/table, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, @@ -632,6 +631,10 @@ pixel_x = -23; id = "kiloengine" }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/engineering/engine) "cZ" = ( @@ -1841,6 +1844,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "Nq" = ( @@ -2267,11 +2273,11 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/structure/rack, /obj/item/storage/belt/utility, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = -3; pixel_y = 3 }, -/obj/item/radio/off, +/obj/item/radio, /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/mineral/plastitanium, /area/ship/cargo) diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index c015f0c262a1..f1f68c199fa4 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -386,10 +386,7 @@ /obj/item/clothing/suit/hawaiian, /obj/item/spacecash/bundle/c1000, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/wall/directional/west, /obj/effect/turf_decal/siding/wood{ dir = 8 }, @@ -741,8 +738,11 @@ /turf/open/floor/plasteel/dark, /area/ship/security) "eS" = ( -/obj/structure/reagent_dispensers/watertank, /obj/machinery/light/directional/west, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/ship/engineering) "eT" = ( @@ -1163,10 +1163,7 @@ /turf/open/floor/engine, /area/ship/engineering) "hN" = ( -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -32 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -1261,10 +1258,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/structure/cable{ icon_state = "1-4" }, @@ -2691,9 +2685,7 @@ /obj/item/cultivator, /obj/item/storage/box/beakers, /obj/item/plant_analyzer, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/item/storage/bag/plants/portaseeder, /obj/item/clothing/gloves/botanic_leather, /obj/effect/turf_decal/siding/wood{ @@ -2893,10 +2885,7 @@ /turf/open/floor/plating, /area/ship/engineering) "sQ" = ( -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, @@ -3717,10 +3706,7 @@ /turf/open/floor/plasteel, /area/ship/hallway/port) "ys" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/item/storage/firstaid/o2, /obj/effect/turf_decal/corner/opaque/white/border{ dir = 8 @@ -3791,9 +3777,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/structure/cable{ icon_state = "4-8" }, @@ -4074,6 +4058,7 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/ship/engineering) "Bg" = ( @@ -4195,9 +4180,7 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "BT" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -4598,10 +4581,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -32 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -5063,10 +5043,7 @@ /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/item/storage/firstaid/o2, /obj/effect/turf_decal/corner/opaque/white/border{ dir = 8 @@ -6274,10 +6251,7 @@ /turf/open/floor/wood, /area/ship/crew/dorm) "QU" = ( -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/structure/cable{ icon_state = "2-4" }, @@ -6763,10 +6737,9 @@ /obj/item/radio, /obj/item/gun/energy/e_gun/advtaser, /obj/item/pen/survival, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "equipment locker"; - pixel_y = 28; req_access = list(30) }, /obj/item/card/id/captains_spare, @@ -7449,6 +7422,9 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ship/engineering) "Yu" = ( diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index 5ac1bcdd0e65..f82cdc7ba748 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -162,6 +162,7 @@ name = "Engine Shutters" }, /obj/machinery/cell_charger, +/obj/item/storage/toolbox/mechanical, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering/engine) "dN" = ( @@ -384,6 +385,9 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "ib" = ( @@ -615,10 +619,8 @@ /turf/open/floor/plasteel/dark, /area/ship/cargo) "nV" = ( -/obj/structure/closet/wall/blue{ - dir = 4; +/obj/structure/closet/wall/blue/directional/west{ secure = 1; - pixel_x = -28; locked = 1 }, /obj/item/gun/energy/laser/scatter, @@ -876,10 +878,10 @@ /obj/structure/railing{ dir = 8 }, -/obj/structure/table/reinforced{ - color = "#c1b6a5" +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/item/storage/toolbox/mechanical, +/obj/machinery/power/ship_gravity, /turf/open/floor/plasteel/tech, /area/ship/engineering/engine) "sT" = ( @@ -1638,9 +1640,6 @@ /area/ship/hallway/aft) "KA" = ( /obj/structure/window/reinforced/spawner, -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, /obj/item/paper_bin, /obj/item/analyzer{ pixel_y = 3; @@ -1653,6 +1652,9 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering/engine) "KT" = ( diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm index 03044b113956..13b336dc36ae 100644 --- a/_maps/shuttles/independent/independent_rigger.dmm +++ b/_maps/shuttles/independent/independent_rigger.dmm @@ -351,12 +351,10 @@ /obj/item/reagent_containers/syringe{ pixel_x = 7 }, -/obj/structure/closet/secure_closet/wall{ - dir = 8; +/obj/structure/closet/secure_closet/wall/directional/east{ icon_door = "med_wall"; locked = 0; name = "mortuary locker"; - pixel_x = 28; req_access_txt = "5" }, /obj/effect/turf_decal/corner/opaque/green{ @@ -657,11 +655,9 @@ /obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/structure/closet/wall{ - dir = 8; +/obj/structure/closet/wall/directional/east{ icon_door = "white_wall"; - name = "medical closet"; - pixel_x = 28 + name = "medical closet" }, /obj/item/storage/backpack/satchel/med, /obj/item/clothing/shoes/sneakers/white, @@ -760,10 +756,16 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew) "jx" = ( -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-8" + }, +/obj/structure/closet/wall/orange/directional/north{ + name = "fuel supply" }, +/obj/item/stack/sheet/mineral/uranium/five, +/obj/item/stack/sheet/mineral/plasma/fifty, +/obj/effect/turf_decal/radiation, +/obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plasteel/tech, /area/ship/engineering/engine) "jy" = ( @@ -1008,16 +1010,13 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plating, /area/ship/maintenance/central) "mH" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "firearms locker"; - pixel_y = 28; req_access_txt = "1" }, /obj/item/gun/ballistic/shotgun/flamingarrow, @@ -1424,10 +1423,9 @@ /turf/open/floor/engine/hull, /area/ship/external) "sq" = ( -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "red_wall"; - name = "security closet"; - pixel_y = 28 + name = "security closet" }, /obj/item/storage/backpack/security, /obj/item/clothing/gloves/fingerless, @@ -1599,10 +1597,9 @@ dir = 4 }, /obj/structure/catwalk/over, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "yellow_wall"; - name = "engineering closet"; - pixel_y = 28 + name = "engineering closet" }, /obj/item/storage/backpack/industrial, /obj/item/clothing/shoes/workboots, @@ -1982,12 +1979,10 @@ pixel_x = -4; pixel_y = 5 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_door = "med_wall"; locked = 0; name = "medical locker"; - pixel_y = -28; req_access_txt = "5" }, /obj/effect/turf_decal/corner/opaque/green/border{ @@ -2334,8 +2329,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light/small/directional/north, /obj/structure/catwalk/over, +/obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/ship/engineering/atmospherics) "BZ" = ( @@ -2439,11 +2434,9 @@ /obj/effect/turf_decal/corner/opaque/red{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "firearms locker"; - pixel_y = -28; req_access_txt = "1" }, /obj/item/flashlight/seclite, @@ -2462,13 +2455,17 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "DE" = ( -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 32 - }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plasteel/tech, /area/ship/engineering/engine) "DG" = ( @@ -2885,11 +2882,9 @@ /obj/effect/turf_decal/corner/opaque/red{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "armor locker"; - pixel_y = -28; req_access_txt = "1" }, /obj/item/clothing/suit/armor/vest/alt, @@ -3077,11 +3072,9 @@ /obj/effect/turf_decal/corner/opaque/red{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "firearms locker"; - pixel_y = -28; req_access_txt = "1" }, /obj/item/storage/belt/security, @@ -3274,10 +3267,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/plasteel/tech, /area/ship/maintenance/central) "NU" = ( @@ -3434,12 +3424,10 @@ }, /obj/effect/turf_decal/corner/opaque/white/mono, /obj/item/roller, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_door = "med_wall"; locked = 0; name = "medical locker"; - pixel_y = -28; req_access_txt = "5" }, /obj/item/roller, @@ -3599,11 +3587,9 @@ /obj/item/clothing/head/HoS/cowboy, /obj/item/ammo_box/c38, /obj/item/ammo_box/c38, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "solgov_wall"; name = "first mate's closet"; - pixel_x = -28; req_access_txt = "57" }, /turf/open/floor/carpet/blue, @@ -3766,11 +3752,9 @@ /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/caphat/cowboy, /obj/item/gun/ballistic/automatic/pistol/candor, -/obj/structure/closet/secure_closet/wall{ - dir = 8; +/obj/structure/closet/secure_closet/wall/directional/east{ icon_state = "solgov_wall"; name = "captain's closet"; - pixel_x = 28; req_access_txt = "20" }, /obj/item/ammo_box/magazine/m45, @@ -4036,11 +4020,11 @@ /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/structure/closet/crate, -/obj/item/stack/sheet/mineral/uranium/five, -/obj/item/stack/sheet/mineral/plasma/fifty, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/radiation, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-5" + }, +/obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel/tech, /area/ship/engineering/engine) "Vo" = ( @@ -4149,10 +4133,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) "WG" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "ammunition locker"; - pixel_y = 28; req_access_txt = "1" }, /obj/item/ammo_box/c38_box, @@ -4184,6 +4167,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering/engine) "WO" = ( @@ -4482,9 +4468,8 @@ dir = 4 }, /obj/structure/catwalk/over, -/obj/structure/closet/wall/orange{ - name = "tool closet"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "tool closet" }, /obj/item/storage/toolbox/mechanical, /obj/item/storage/belt/utility, diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm index f9c4ee6c499c..a77e943f1558 100644 --- a/_maps/shuttles/independent/independent_schmiedeberg.dmm +++ b/_maps/shuttles/independent/independent_schmiedeberg.dmm @@ -146,7 +146,6 @@ /turf/open/floor/plating, /area/ship/bridge) "bu" = ( -/obj/structure/catwalk/over, /obj/structure/cable{ icon_state = "2-8" }, @@ -157,8 +156,9 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 + dir = 1 }, +/obj/structure/catwalk/over, /turf/open/floor/plating, /area/ship/engineering) "bD" = ( @@ -467,10 +467,7 @@ dir = 4 }, /obj/structure/curtain/bounty, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -32 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/effect/turf_decal/siding/wood{ dir = 1 }, @@ -536,6 +533,7 @@ /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering) "gt" = ( @@ -1290,6 +1288,9 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plating, /area/ship/engineering) "rC" = ( @@ -1559,6 +1560,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/engineering) "wz" = ( @@ -1759,10 +1763,7 @@ icon_state = "1-8" }, /obj/effect/turf_decal/corner/opaque/blue/three_quarters, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -32 - }, +/obj/structure/closet/emcloset/wall/directional/south, /turf/open/floor/plasteel/white, /area/ship/cargo) "yv" = ( @@ -1973,12 +1974,10 @@ /obj/item/reagent_containers/syringe/piercing, /obj/item/reagent_containers/syringe/piercing, /obj/item/reagent_containers/syringe/piercing, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/south{ desc = "For when you REALLY need to reserve the right to deny service. Immediate results guaranteed*"; - dir = 1; icon_state = "sec_wall"; - name = "Unruly Customer Pacification"; - pixel_y = -28 + name = "Unruly Customer Pacification" }, /obj/item/reagent_containers/glass/bottle/chloralhydrate{ pixel_x = 10 @@ -2039,10 +2038,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 32 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "CX" = ( @@ -2216,9 +2212,8 @@ /obj/item/clothing/head/helmet/space/orange, /obj/item/pickaxe/mini, /obj/item/pickaxe/mini, -/obj/structure/closet/wall/white{ - name = "E.V.A"; - pixel_y = 28 +/obj/structure/closet/wall/white/directional/north{ + name = "E.V.A" }, /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ @@ -2443,10 +2438,7 @@ /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/box/white, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -32 - }, +/obj/structure/closet/emcloset/wall/directional/south, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "Ln" = ( @@ -2527,9 +2519,7 @@ /turf/open/floor/concrete/slab_3, /area/ship/crew/hydroponics) "MP" = ( -/obj/structure/closet/secure_closet/freezer/wall{ - pixel_y = 32 - }, +/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, @@ -2673,8 +2663,11 @@ /obj/effect/turf_decal/siding/thinplating/dark/end{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/effect/decal/cleanable/oil/streak, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering) "Oe" = ( @@ -2692,10 +2685,7 @@ /turf/open/floor/concrete/tiles, /area/ship/crew/hydroponics) "On" = ( -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/wall/directional/west, /obj/machinery/washing_machine, /obj/item/clothing/suit/longcoat/chemist, /obj/item/clothing/suit/longcoat/chemist, @@ -3323,6 +3313,9 @@ pixel_x = 11; pixel_y = -16 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, /turf/open/floor/plating, /area/ship/engineering) "Yw" = ( @@ -3510,11 +3503,9 @@ /obj/machinery/door/window/eastright{ dir = 1 }, -/obj/structure/closet/secure_closet/wall{ - dir = 8; +/obj/structure/closet/secure_closet/wall/directional/east{ icon_state = "solgov_wall"; name = "Chief Pharmacist's Locker"; - pixel_x = 32; req_access_txt = "40" }, /obj/item/storage/bag/medical, diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 113975fc8edf..3d5fa7c58420 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -333,6 +333,9 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 9 }, +/obj/structure/cable{ + icon_state = "5-9" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "cR" = ( @@ -815,6 +818,9 @@ /obj/effect/turf_decal/miskilamo_big/six{ dir = 8 }, +/obj/structure/cable{ + icon_state = "2-9" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "gZ" = ( @@ -1282,11 +1288,9 @@ /obj/effect/turf_decal/corner/opaque/green{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ - dir = 8; +/obj/structure/closet/secure_closet/wall/directional/east{ icon_door = "med_wall"; name = "mortuary locker"; - pixel_x = 28; req_access_txt = "5" }, /obj/item/reagent_containers/glass/bottle/formaldehyde{ @@ -1662,6 +1666,9 @@ /area/ship/security) "oH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable{ + icon_state = "6-8" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "oK" = ( @@ -2111,11 +2118,9 @@ /area/ship/hallway/fore) "rQ" = ( /obj/effect/turf_decal/corner/opaque/bottlegreen/full, -/obj/structure/closet/wall{ - dir = 4; +/obj/structure/closet/wall/directional/west{ icon_door = "white_wall"; - name = "medical closet"; - pixel_x = -28 + name = "medical closet" }, /obj/item/storage/backpack/satchel/med, /obj/item/clothing/shoes/sneakers/white, @@ -2137,6 +2142,9 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-6" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "sb" = ( @@ -3194,10 +3202,7 @@ /turf/open/floor/carpet/blue, /area/ship/bridge) "AG" = ( -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/structure/cable{ icon_state = "4-8" }, @@ -3259,6 +3264,13 @@ /obj/effect/turf_decal/industrial/warning/fulltile, /turf/open/floor/plasteel/dark, /area/ship/hallway/port) +"BR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) "BY" = ( /obj/machinery/door/airlock{ name = "Dormitory" @@ -4169,6 +4181,10 @@ "Km" = ( /obj/effect/turf_decal/box, /obj/effect/decal/cleanable/dirt, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "Kn" = ( @@ -4601,6 +4617,9 @@ /area/ship/engineering/engine) "NK" = ( /obj/structure/closet/cardboard, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "NR" = ( @@ -4924,6 +4943,9 @@ /obj/machinery/atmospherics/pipe/layer_manifold/visible{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "Qt" = ( @@ -5019,11 +5041,9 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "Rm" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 8; +/obj/structure/closet/secure_closet/wall/directional/east{ icon_door = "med_wall"; name = "medical locker"; - pixel_x = 28; req_access_txt = "5" }, /obj/item/storage/box/syringes, @@ -5759,6 +5779,9 @@ /obj/effect/turf_decal/miskilamo_big/eight{ dir = 8 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "XY" = ( @@ -6111,7 +6134,7 @@ PP PP QB Id -pr +BR Zn JF xf diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index fd1a368ebc50..d39a1ef392e3 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -563,10 +563,8 @@ /obj/item/reagent_containers/food/condiment/rice, /obj/item/reagent_containers/food/condiment/rice, /obj/item/storage/box/condimentbottles, -/obj/structure/closet/secure_closet/wall{ - dir = 4; - name = "Kitchen Cabinet"; - pixel_x = -28 +/obj/structure/closet/secure_closet/wall/directional/west{ + name = "Kitchen Cabinet" }, /turf/open/floor/plasteel/white, /area/ship/crew/canteen) @@ -672,10 +670,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/item/radio, /obj/item/radio, /obj/item/radio, @@ -1284,6 +1279,10 @@ /obj/structure/railing{ dir = 4 }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/engine) "jk" = ( @@ -1329,10 +1328,8 @@ /turf/open/floor/grass, /area/ship/crew/hydroponics) "js" = ( -/obj/structure/closet/wall{ - dir = 4; - name = "Wardrobe"; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "Wardrobe" }, /obj/item/clothing/head/beret, /obj/item/clothing/under/color/jumpskirt/random, @@ -1418,6 +1415,23 @@ }, /turf/open/floor/wood/birch, /area/ship/crew/crewtwo) +"ka" = ( +/obj/machinery/power/terminal, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) "kr" = ( /obj/structure/cable{ icon_state = "2-8" @@ -1455,10 +1469,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, -/obj/structure/closet/wall{ - dir = 4; - name = "Wardrobe"; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "Wardrobe" }, /obj/item/clothing/head/wig/random, /obj/item/clothing/under/color/jumpskirt/random, @@ -1747,10 +1759,7 @@ /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/port) "ny" = ( -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/starboard) "nz" = ( @@ -1990,10 +1999,7 @@ /area/ship/hallway/port) "pT" = ( /obj/effect/turf_decal/techfloor/orange, -/obj/structure/closet/wall/orange{ - dir = 1; - pixel_y = -32 - }, +/obj/structure/closet/wall/orange/directional/south, /obj/item/stack/tape/industrial/electrical, /obj/item/stack/tape/industrial, /obj/item/holosign_creator/engineering, @@ -2071,10 +2077,8 @@ /area/ship/hallway/port) "qV" = ( /obj/effect/turf_decal/siding/wood, -/obj/structure/closet/wall{ - dir = 1; - name = "Wardrobe"; - pixel_y = -28 +/obj/structure/closet/wall/directional/south{ + name = "Wardrobe" }, /obj/item/clothing/head/wig/random, /obj/item/storage/box/syndie_kit/chameleon, @@ -2458,10 +2462,8 @@ /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/port) "ub" = ( -/obj/structure/closet/wall{ - dir = 8; - name = "Personal Effects"; - pixel_x = 32 +/obj/structure/closet/wall/directional/east{ + name = "Personal Effects" }, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -2937,9 +2939,7 @@ /turf/open/floor/carpet/nanoweave/red, /area/ship/crew/dorm/dormfour) "xW" = ( -/obj/structure/closet/wall/orange{ - pixel_y = 32 - }, +/obj/structure/closet/wall/orange/directional/north, /obj/item/clothing/suit/fire/atmos, /obj/item/clothing/mask/gas/atmos, /obj/item/clothing/head/hardhat/atmos, @@ -3469,9 +3469,8 @@ /obj/item/clothing/under/pants/khaki, /obj/item/clothing/shoes/laceup, /obj/item/clothing/under/suit/charcoal, -/obj/structure/closet/wall{ - name = "Wardrobe"; - pixel_y = 28 +/obj/structure/closet/wall/directional/north{ + name = "Wardrobe" }, /obj/item/clothing/accessory/waistcoat, /turf/open/floor/carpet/black, @@ -4486,10 +4485,8 @@ icon_state = "1-8" }, /obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/closet/wall/blue{ - dir = 1; - name = "Janitorial Closet"; - pixel_y = -28 +/obj/structure/closet/wall/blue/directional/south{ + name = "Janitorial Closet" }, /obj/item/soap/deluxe, /obj/item/mop, @@ -4748,10 +4745,8 @@ /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/starboard) "LS" = ( -/obj/structure/closet/wall{ - dir = 8; - name = "Wardrobe"; - pixel_x = 32 +/obj/structure/closet/wall/directional/east{ + name = "Wardrobe" }, /obj/item/clothing/suit/toggle/labcoat/chemist/side, /obj/item/clothing/head/beret/puce, @@ -4791,10 +4786,8 @@ "Md" = ( /obj/item/circuitboard/machine/telecomms/relay, /obj/item/circuitboard/machine/telecomms/message_server, -/obj/structure/closet/wall/blue{ - dir = 4; - name = "Component Storage"; - pixel_x = -28 +/obj/structure/closet/wall/blue/directional/west{ + name = "Component Storage" }, /obj/item/stack/cable_coil/blue, /obj/item/stock_parts/subspace/filter, @@ -5464,10 +5457,8 @@ /obj/item/reagent_containers/food/condiment/soymilk, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/structure/closet/secure_closet/wall{ - dir = 8; - name = "Freezer"; - pixel_x = 32 +/obj/structure/closet/secure_closet/wall/directional/east{ + name = "Freezer" }, /turf/open/floor/plasteel/white, /area/ship/crew/canteen) @@ -5836,10 +5827,8 @@ /turf/closed/wall/mineral/titanium, /area/ship/storage) "TI" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - name = "Personal Effects"; - pixel_x = -32 +/obj/structure/closet/wall/blue/directional/west{ + name = "Personal Effects" }, /obj/item/storage/belt/utility/full, /obj/item/clothing/suit/hooded/wintercoat/engineering, @@ -5856,10 +5845,8 @@ /turf/open/floor/carpet/nanoweave/red, /area/ship/crew/dorm/dormfour) "TJ" = ( -/obj/structure/closet/wall{ - dir = 8; - name = "Personal Effects"; - pixel_x = 32 +/obj/structure/closet/wall/directional/east{ + name = "Personal Effects" }, /obj/item/storage/bag/chemistry, /obj/item/storage/box/pillbottles, @@ -6634,10 +6621,7 @@ /turf/open/floor/plasteel/white, /area/ship/medical/surgery) "ZU" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/carpet/nanoweave/beige, /area/ship/hallway/port) @@ -7309,7 +7293,7 @@ rB aC Fq jh -JX +ka Jq Gs "} diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index 647896ce8185..e8baced58968 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -190,10 +190,9 @@ /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "orange_wall"; - name = "uniform closet"; - pixel_y = 28 + name = "uniform closet" }, /obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel/grimy, @@ -1775,10 +1774,8 @@ /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, -/obj/structure/closet/wall{ - dir = 8; - icon_state = "emergency_wall"; - pixel_x = 28 +/obj/structure/closet/wall/directional/east{ + icon_state = "emergency_wall" }, /turf/open/floor/plasteel/tech/grid, /area/ship/hallway/port) @@ -2294,10 +2291,9 @@ /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/shoes/sneakers/black, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "orange_wall"; - name = "uniform closet"; - pixel_y = 28 + name = "uniform closet" }, /turf/open/floor/plasteel/grimy, /area/ship/crew) @@ -2621,12 +2617,10 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/security/armory) "Da" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_door = "solgov_wall"; icon_state = "solgov_wall"; name = "vanguard's locker"; - pixel_x = -28; req_access_txt = "58" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -2801,6 +2795,9 @@ /obj/effect/turf_decal/corner_techfloor_gray{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "EQ" = ( @@ -2898,11 +2895,9 @@ /area/ship/crew/toilet) "GL" = ( /obj/machinery/atmospherics/pipe/layer_manifold/visible, -/obj/structure/closet/wall{ - dir = 8; +/obj/structure/closet/wall/directional/east{ icon_door = "yellow_wall"; - name = "engineering closet"; - pixel_x = 32 + name = "engineering closet" }, /obj/structure/catwalk/over/plated_catwalk/dark, /obj/item/storage/backpack/industrial, @@ -3264,10 +3259,7 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "KM" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -32 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "Ld" = ( @@ -3662,8 +3654,9 @@ /obj/structure/sign/warning/nosmoking/circle{ pixel_x = 32 }, -/obj/effect/turf_decal/number/zero{ - dir = 8 +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -4548,10 +4541,7 @@ piping_layer = 2 }, /obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/plating, /area/ship/engineering) "Zz" = ( diff --git a/_maps/shuttles/inteq/inteq_hound.dmm b/_maps/shuttles/inteq/inteq_hound.dmm index e67d176f5683..5616d1d2d4b0 100644 --- a/_maps/shuttles/inteq/inteq_hound.dmm +++ b/_maps/shuttles/inteq/inteq_hound.dmm @@ -650,10 +650,9 @@ /obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "orange_wall"; - name = "uniform closet"; - pixel_y = 28 + name = "uniform closet" }, /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, @@ -965,12 +964,10 @@ /turf/open/floor/plasteel/patterned, /area/ship/cargo) "va" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_door = "solgov_wall"; icon_state = "solgov_wall"; name = "vanguard's locker"; - pixel_x = -28; req_access_txt = "58" }, /obj/item/clothing/glasses/hud/security/sunglasses/inteq, @@ -1102,10 +1099,9 @@ /obj/item/storage/belt/security/webbing/inteq, /obj/item/storage/belt/security/webbing/inteq, /obj/item/storage/belt/security/webbing/inteq, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "equipment locker"; - pixel_y = 28; req_one_access_txt = "1" }, /turf/open/floor/plasteel/patterned/grid, @@ -1245,9 +1241,7 @@ /obj/structure/sign/poster/official/safety_internals{ pixel_x = -32 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "AW" = ( @@ -1391,11 +1385,9 @@ /obj/item/gun/ballistic/automatic/assault/skm/inteq{ pixel_x = -5 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "weapons lockup"; - pixel_y = -28; req_one_access_txt = "58" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -1956,10 +1948,7 @@ pixel_x = 25; pixel_y = 7 }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "OP" = ( @@ -2256,6 +2245,9 @@ /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 1 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/tech, /area/ship/storage/eva) "Wk" = ( @@ -2282,6 +2274,10 @@ codes_txt = "patrol;next_patrol=crew"; location = "eva" }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/tech, /area/ship/storage/eva) "Xc" = ( diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index c8bdcb1bd3be..4234e39cbafc 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -162,9 +162,7 @@ /obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 32 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "aV" = ( @@ -1317,15 +1315,9 @@ /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/analyzer{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/plasteel/dark, /area/ship/engineering) @@ -1540,6 +1532,13 @@ icon_state = "2-4" }, /obj/effect/turf_decal/number/five, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable/yellow{ + icon_state = "1-10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering) "jT" = ( @@ -2728,10 +2727,8 @@ /obj/structure/catwalk/over/plated_catwalk, /obj/structure/railing, /obj/machinery/airalarm/directional/north, -/obj/structure/closet/wall{ - dir = 4; - icon_door = "grey_wall"; - pixel_x = -32 +/obj/structure/closet/wall/directional/west{ + icon_door = "grey_wall" }, /obj/item/radio/headset, /obj/item/radio/headset, @@ -2757,6 +2754,19 @@ }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) +"qD" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/ship/engineering) "qF" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3787,9 +3797,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 32 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "wQ" = ( @@ -3815,9 +3823,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 32 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "xb" = ( @@ -4532,6 +4538,9 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/engineering) "Ba" = ( @@ -5822,7 +5831,13 @@ /obj/item/assembly/igniter{ pixel_y = 6 }, -/obj/structure/cable/yellow, +/obj/item/analyzer{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-5" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering) "Lu" = ( @@ -6237,16 +6252,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/engineering) "OG" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, /obj/structure/railing, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/catwalk/over, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/engineering) "OK" = ( /obj/machinery/cryopod{ @@ -7944,7 +7952,7 @@ sV sV AO cj -ek +qD jS AZ gV diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm index ede8c585a5c2..e66283a78671 100644 --- a/_maps/shuttles/inteq/inteq_valor.dmm +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -141,9 +141,7 @@ /obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /turf/open/floor/plasteel/patterned, /area/ship/cargo) "bB" = ( @@ -526,10 +524,9 @@ dir = 4 }, /obj/structure/table, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "equipment locker"; - pixel_y = 28; req_access = list(1) }, /obj/item/storage/box/zipties, @@ -572,10 +569,7 @@ /turf/open/floor/plasteel/white, /area/ship/medical) "eV" = ( -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/structure/cable{ icon_state = "1-4" }, @@ -904,10 +898,7 @@ /obj/structure/chair/sofa/left{ dir = 8 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "ix" = ( @@ -1745,9 +1736,7 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "pA" = ( -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/item/radio, /obj/item/radio, /obj/item/radio, @@ -1803,9 +1792,7 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "pU" = ( -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/machinery/atmospherics/components/binary/pump/on/layer2{ dir = 4 }, @@ -1943,6 +1930,10 @@ pixel_y = 32 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/maintenance/port) "rY" = ( @@ -2060,10 +2051,9 @@ /obj/item/gun/ballistic/automatic/pistol/commander/inteq/no_mag{ pixel_x = 4 }, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "weapons lockup"; - pixel_y = 28; req_access = list(1) }, /obj/structure/table, @@ -2369,10 +2359,7 @@ "vx" = ( /obj/effect/turf_decal/siding/thinplating/dark/end, /obj/machinery/airalarm/directional/south, -/obj/structure/closet/wall/white{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/wall/white/directional/east, /obj/item/clothing/under/rank/medical/gown, /obj/item/clothing/under/rank/medical/gown, /obj/item/clothing/under/rank/medical/gown, @@ -4311,7 +4298,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 8 }, /area/ship/cargo) @@ -4355,12 +4342,10 @@ /obj/item/clothing/under/syndicate/inteq, /obj/item/clothing/suit/armor/hos/inteq, /obj/item/clothing/head/beret/sec/hos/inteq, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_door = "solgov_wall"; icon_state = "solgov_wall"; name = "vanguard's locker"; - pixel_x = -28; req_access = list(58) }, /obj/item/storage/lockbox/medal/sec, @@ -4378,10 +4363,7 @@ /obj/structure/chair/sofa/right{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "Oh" = ( @@ -4398,9 +4380,7 @@ /obj/effect/turf_decal/borderfloor{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/patterned, /area/ship/cargo) "Ok" = ( @@ -4703,9 +4683,7 @@ /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/machinery/airalarm/directional/east, /turf/open/floor/carpet/black, /area/ship/crew/dorm) @@ -4720,10 +4698,8 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "RR" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ name = "honorable corpsman's locker"; - pixel_x = -28; req_access = list(19) }, /obj/item/clothing/shoes/combat, @@ -5131,6 +5107,9 @@ /obj/structure/cable{ icon_state = "2-10" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/ship/maintenance/port) "WC" = ( @@ -5389,9 +5368,7 @@ /obj/item/clothing/shoes/combat, /obj/item/clothing/shoes/combat, /obj/item/clothing/shoes/combat, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /turf/open/floor/carpet/black, /area/ship/crew/dorm) "YZ" = ( diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index c93d0cc7f0a8..23e763a6b9c6 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -670,7 +670,6 @@ name = "Air to Distro" }, /obj/effect/turf_decal/hardline_small, -/obj/machinery/light/small/directional/north, /obj/machinery/atmospherics/components/binary/pump/layer4{ dir = 4; name = "Input to Waste" @@ -679,6 +678,7 @@ pixel_x = 10; pixel_y = 22 }, +/obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "jB" = ( @@ -890,11 +890,9 @@ /obj/item/clothing/head/hardhat, /obj/item/clothing/shoes/combat, /obj/effect/turf_decal/hardline_small/right, -/obj/structure/closet/wall{ - dir = 8; +/obj/structure/closet/wall/directional/east{ icon_door = "yellow_wall"; - name = "engineering closet"; - pixel_x = 28 + name = "engineering closet" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 @@ -908,12 +906,10 @@ /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "mu" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_door = "solgov_wall"; icon_state = "solgov_wall"; name = "vanguard's locker"; - pixel_x = -28; req_access_txt = "20" }, /obj/item/clothing/glasses/hud/security/sunglasses/inteq, @@ -1209,10 +1205,9 @@ /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, /obj/item/clothing/head/soft/inteq, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "orange_wall"; - name = "uniform closet"; - pixel_y = 28 + name = "uniform closet" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 @@ -1737,9 +1732,8 @@ /turf/open/floor/plasteel/dark, /area/ship/security) "Bu" = ( -/obj/structure/closet/wall{ - icon_door = "grey_wall"; - pixel_y = 28 +/obj/structure/closet/wall/directional/north{ + icon_door = "grey_wall" }, /obj/structure/cable{ icon_state = "0-2" @@ -1868,10 +1862,8 @@ dir = 9 }, /obj/effect/turf_decal/number/six, -/obj/structure/closet/wall/orange{ - dir = 8; +/obj/structure/closet/wall/orange/directional/east{ name = "tool closet"; - pixel_x = 28; req_access_txt = "11" }, /obj/item/pipe_dispenser, @@ -2149,10 +2141,9 @@ /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/shoes/sneakers/black, -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/north{ icon_door = "orange_wall"; - name = "uniform closet"; - pixel_y = 28 + name = "uniform closet" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 @@ -2167,13 +2158,16 @@ /obj/machinery/atmospherics/pipe/manifold/cyan/visible/layer2{ dir = 1 }, -/obj/machinery/firealarm/directional/north, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light/small/directional/north, /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "Hn" = ( @@ -2220,10 +2214,9 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/security) "HN" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_door = "med_wall"; name = "medical locker"; - pixel_y = 28; req_access_txt = "5" }, /obj/item/storage/firstaid/regular{ @@ -2382,6 +2375,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "JL" = ( @@ -2391,6 +2387,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/south, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Kr" = ( diff --git a/_maps/shuttles/minutemen/minutemen_vela.dmm b/_maps/shuttles/minutemen/minutemen_vela.dmm index 200a677ea101..b0c66424a2d4 100644 --- a/_maps/shuttles/minutemen/minutemen_vela.dmm +++ b/_maps/shuttles/minutemen/minutemen_vela.dmm @@ -1032,10 +1032,7 @@ /turf/open/floor/plasteel/grimy, /area/ship/crew/dorm) "gB" = ( -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/effect/turf_decal/techfloor{ dir = 10 }, @@ -1471,7 +1468,7 @@ /turf/open/floor/carpet/nanoweave/purple, /area/ship/science) "jh" = ( -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 1 }, /area/ship/hallway/central) @@ -1563,10 +1560,7 @@ /turf/open/floor/plasteel/dark, /area/ship/science) "jI" = ( -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, @@ -2490,10 +2484,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/machinery/button/door{ dir = 8; id = "vela_labeva"; @@ -3979,10 +3970,7 @@ /turf/open/floor/plasteel/tech, /area/ship/engineering/atmospherics) "wk" = ( -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, @@ -4074,6 +4062,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/generic, +/obj/machinery/power/floodlight, /turf/open/floor/plating, /area/ship/storage) "wD" = ( @@ -4735,10 +4724,7 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "zR" = ( -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/effect/decal/cleanable/dirt, /obj/item/storage/firstaid/fire, /obj/effect/turf_decal/techfloor, @@ -5555,7 +5541,7 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/box/corners, -/obj/machinery/power/floodlight, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/storage) "Ex" = ( @@ -6188,10 +6174,7 @@ /turf/open/floor/plating, /area/ship/hallway/central) "HO" = ( -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/steeldecal/steel_decals_central7{ pixel_y = 1 @@ -6399,10 +6382,8 @@ /area/ship/hallway/central) "Jj" = ( /obj/effect/turf_decal/spline/fancy/opaque/black, -/obj/structure/closet/wall{ - dir = 4; - name = "spare uniforms"; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "spare uniforms" }, /obj/item/clothing/under/clip/minutemen, /obj/item/clothing/under/clip/minutemen, @@ -6662,7 +6643,7 @@ /turf/open/floor/circuit/green, /area/ship/science/ai_chamber) "KC" = ( -/turf/open/floor/plasteel/stairs/medium, +/turf/open/floor/plasteel/stairs/mid, /area/ship/hallway/central) "KE" = ( /obj/machinery/firealarm/directional/south, @@ -7411,10 +7392,7 @@ /turf/open/floor/plasteel/dark, /area/ship/science/xenobiology) "Ox" = ( -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/effect/turf_decal/techfloor{ dir = 6 }, @@ -8486,10 +8464,7 @@ /obj/machinery/camera/autoname{ dir = 10 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/dark, /area/ship/hangar/port) @@ -8517,10 +8492,7 @@ /turf/open/floor/plating, /area/ship/engineering) "Uw" = ( -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/item/storage/box/gum/happiness, /turf/open/floor/plasteel/tech, /area/ship/engineering/engine) diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm index 4ee6ad18467c..6fef103cab50 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -46,11 +46,7 @@ "ap" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -32; - pixel_y = -6 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plating, /area/ship/hallway/port) "ar" = ( @@ -726,6 +722,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering) "dd" = ( @@ -845,9 +844,7 @@ /obj/effect/turf_decal/corner/opaque/bar{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel, /area/ship/crew) "dr" = ( @@ -917,6 +914,10 @@ /obj/effect/turf_decal/industrial/warning{ dir = 8 }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-1" + }, /turf/open/floor/plating, /area/ship/engineering) "dE" = ( @@ -927,10 +928,8 @@ /obj/machinery/camera{ dir = 5 }, -/obj/structure/closet/wall{ - dir = 4; - name = "Emergency Defense Storage"; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "Emergency Defense Storage" }, /obj/item/ammo_box/magazine/co9mm{ pixel_x = 5 @@ -1444,10 +1443,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/plasteel, /area/ship/hallway/port) "oz" = ( @@ -2205,6 +2201,9 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/structure/catwalk/over, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ship/engineering) "ID" = ( @@ -2705,10 +2704,8 @@ dir = 4 }, /obj/effect/turf_decal/corner/opaque/lime, -/obj/structure/closet/wall{ - dir = 4; - name = "Radio Storage"; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "Radio Storage" }, /obj/item/radio, /obj/item/radio, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm index 46e396a197a8..8c17da5f36ee 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_gecko.dmm @@ -1064,9 +1064,9 @@ /turf/open/floor/plasteel/patterned, /area/ship/cargo/port) "ks" = ( -/obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/firecloset/full, +/obj/structure/cable, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/engineering/engine) "ku" = ( @@ -1094,6 +1094,9 @@ "kL" = ( /obj/structure/chair/stool, /obj/effect/landmark/start/station_engineer, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "kM" = ( @@ -2282,6 +2285,9 @@ /obj/structure/cable{ icon_state = "1-4" }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "wY" = ( @@ -2503,6 +2509,9 @@ /obj/machinery/atmospherics/pipe/simple/purple/hidden/layer1{ dir = 9 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering/engine) "zn" = ( @@ -3567,6 +3576,12 @@ /obj/effect/spawner/lootdrop/grille_or_trash, /turf/open/floor/plating, /area/ship/maintenance/fore) +"JL" = ( +/obj/structure/closet/firecloset/full, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/engineering/engine) "JV" = ( /obj/structure/table/reinforced, /obj/machinery/fax/nanotrasen, @@ -4030,6 +4045,12 @@ /obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plasteel/tech, /area/ship/engineering/atmospherics) +"Pp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) "Pr" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/mineral/titanium/nodiagonal, @@ -5389,7 +5410,7 @@ Bi Tb st Tb -SQ +JL Ug hu hu @@ -5475,7 +5496,7 @@ FZ on on Fq -on +Pp lW Ug hu diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index ac76ca6c6ca1..91a2a0a4fc90 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -352,11 +352,9 @@ /obj/item/clothing/under/rank/cargo/qm, /obj/effect/turf_decal/corner/opaque/yellow/full, /obj/effect/turf_decal/corner/opaque/yellow/diagonal, -/obj/structure/closet/wall{ - dir = 4; +/obj/structure/closet/wall/directional/west{ icon_door = "orange_wall"; - name = "quartermaster's closet"; - pixel_x = -28 + name = "quartermaster's closet" }, /obj/item/clothing/neck/cloak/qm, /obj/item/clothing/under/rank/cargo/qm/skirt, @@ -1192,9 +1190,8 @@ /turf/open/floor/plasteel/white, /area/ship/medical) "eV" = ( -/obj/structure/closet/wall/orange{ - name = "fuel locker"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "fuel locker" }, /obj/item/stack/sheet/mineral/plasma/fifty, /obj/effect/decal/cleanable/wrapping{ @@ -1458,9 +1455,8 @@ /turf/open/floor/plasteel, /area/ship/hallway/fore) "gb" = ( -/obj/structure/closet/wall/orange{ - name = "Chief Engineer's Locker"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "Chief Engineer's Locker" }, /obj/item/clothing/under/rank/engineering/chief_engineer, /obj/item/clothing/suit/toggle/hazard, @@ -2578,9 +2574,7 @@ /turf/open/floor/wood, /area/ship/crew/dorm) "ki" = ( -/obj/structure/closet/wall/orange{ - dir = 4; - pixel_x = -28; +/obj/structure/closet/wall/orange/directional/west{ name = "Pilot's Locker" }, /obj/item/clothing/under/rank/security/officer/military/eng, @@ -3761,9 +3755,7 @@ /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 4 }, -/obj/structure/closet/wall/blue{ - pixel_y = 28 - }, +/obj/structure/closet/wall/blue/directional/north, /obj/item/aicard{ pixel_x = -5 }, @@ -3851,7 +3843,7 @@ "oa" = ( /obj/item/multitool, /obj/item/clothing/glasses/meson/engine/tray, -/obj/item/radio/off, +/obj/item/radio, /obj/item/storage/belt/utility/atmostech, /obj/item/holosign_creator/atmos, /obj/item/analyzer, @@ -3861,10 +3853,8 @@ /obj/item/clothing/suit/fire/atmos, /obj/item/clothing/mask/gas/atmos, /obj/item/clothing/head/hardhat/atmos, -/obj/structure/closet/wall{ - name = "Atmospheric locker"; - dir = 8; - pixel_x = 28 +/obj/structure/closet/wall/directional/east{ + name = "Atmospheric locker" }, /obj/effect/turf_decal/techfloor/orange{ dir = 4 @@ -3959,10 +3949,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/directional/west, -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/item/clothing/under/rank/rnd/roboticist, /obj/item/clothing/under/rank/rnd/research_director/turtleneck, /obj/item/clothing/under/rank/rnd/roboticist/skirt, @@ -4151,10 +4138,7 @@ /turf/open/floor/plasteel/elevatorshaft, /area/ship/science/robotics) "pk" = ( -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/under/shorts/cookjorts, /obj/item/clothing/shoes/cookflops, /obj/item/clothing/suit/toggle/chef, @@ -4173,10 +4157,7 @@ }, /obj/effect/decal/cleanable/vomit/old, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/wall/directional/west, /obj/item/reagent_containers/syringe/contraband/fentanyl{ pixel_x = -3; pixel_y = 4 @@ -5019,10 +5000,7 @@ /obj/effect/turf_decal/techfloor/orange{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, @@ -5442,9 +5420,8 @@ pixel_y = 7; pixel_x = 9 }, -/obj/structure/closet/wall{ - name = "Toy Storage"; - pixel_y = 28 +/obj/structure/closet/wall/directional/north{ + name = "Toy Storage" }, /obj/item/toy/figure/engineer{ pixel_x = 7 @@ -5777,7 +5754,6 @@ /obj/effect/decal/cleanable/greenglow{ pixel_y = -10 }, -/obj/machinery/light/directional/east, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -5802,7 +5778,6 @@ /obj/effect/turf_decal/techfloor/orange{ dir = 8 }, -/obj/structure/frame/machine, /obj/effect/turf_decal/industrial/warning{ dir = 4; color = "#808080" @@ -5825,9 +5800,8 @@ /turf/open/floor/plasteel/elevatorshaft, /area/ship/science/robotics) "vb" = ( -/obj/structure/closet/wall/orange{ - name = "Pilot's Locker"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "Pilot's Locker" }, /obj/item/clothing/under/rank/security/officer/military/eng, /obj/item/clothing/suit/jacket/leather/duster, @@ -6366,10 +6340,7 @@ /obj/effect/turf_decal/techfloor/orange{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/effect/turf_decal/techfloor/hole/right{ dir = 4 }, @@ -7528,10 +7499,7 @@ /turf/open/floor/plasteel/tech, /area/ship/engineering) "BJ" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, @@ -8648,10 +8616,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 9 }, -/obj/structure/closet/wall{ - name = "Utility Closet"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "Utility Closet" }, /obj/item/flashlight, /obj/item/flashlight, @@ -8660,52 +8626,31 @@ /obj/item/flashlight, /obj/item/flashlight, /obj/item/flashlight, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 2 }, @@ -9135,10 +9080,7 @@ /turf/open/floor/plasteel/dark, /area/ship/engineering/atmospherics) "HG" = ( -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/secure_closet/freezer/wall/directional/west, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/holopad, /obj/effect/turf_decal/siding/white{ @@ -9191,9 +9133,8 @@ /turf/open/floor/wood, /area/ship/crew/dorm/dormtwo) "HI" = ( -/obj/structure/closet/wall/orange{ - name = "Pilot's Locker"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "Pilot's Locker" }, /obj/item/clothing/under/rank/security/officer/military/eng, /obj/item/clothing/suit/jacket/leather/duster, @@ -9794,9 +9735,6 @@ /obj/effect/turf_decal/techfloor/orange{ dir = 1 }, -/obj/structure/sign/poster/official/build{ - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, @@ -9809,6 +9747,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "Kp" = ( @@ -10260,11 +10201,9 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall{ - dir = 1; +/obj/structure/closet/wall/directional/south{ icon_door = null; - name = "Office Supplies"; - pixel_y = -28 + name = "Office Supplies" }, /obj/item/storage/briefcase, /obj/item/storage/secure/briefcase{ @@ -10507,10 +10446,7 @@ "MM" = ( /obj/effect/turf_decal/corner/transparent/beige/full, /obj/structure/table, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = -5; pixel_y = 10 }, @@ -10590,11 +10526,9 @@ /turf/open/floor/plating, /area/ship/engineering) "MT" = ( -/obj/structure/closet/wall{ - dir = 8; +/obj/structure/closet/wall/directional/east{ icon_door = "red_wall"; - name = "Roboticists Locker"; - pixel_x = 28 + name = "Roboticists Locker" }, /obj/item/clothing/suit/longcoat/roboblack, /obj/item/clothing/suit/longcoat/robowhite, @@ -10717,9 +10651,8 @@ /obj/item/storage/backpack/industrial, /obj/item/clothing/head/beret/eng/hazard, /obj/item/clothing/glasses/meson/engine, -/obj/structure/closet/wall/orange{ - name = "Engineering locker"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "Engineering locker" }, /obj/effect/decal/cleanable/dirt, /obj/item/storage/belt/utility/full/engi{ @@ -10904,11 +10837,9 @@ /turf/open/floor/plasteel, /area/ship/hallway/fore) "Of" = ( -/obj/structure/closet/wall{ +/obj/structure/closet/wall/directional/east{ icon_door = "orange_wall"; - name = "Mining equipment"; - pixel_x = 29; - dir = 8 + name = "Mining equipment" }, /obj/item/storage/bag/ore, /obj/item/storage/bag/ore, @@ -11786,6 +11717,17 @@ /obj/machinery/light/directional/south, /turf/open/floor/plasteel, /area/ship/hallway/aft) +"Sb" = ( +/obj/structure/sign/poster/official/build{ + pixel_y = -32 + }, +/obj/machinery/light/directional/south, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/machinery/power/ship_gravity, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) "Sc" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -13106,9 +13048,8 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/structure/closet/wall/red{ - name = "Ammo locker"; - pixel_y = 28 +/obj/structure/closet/wall/red/directional/north{ + name = "Ammo locker" }, /obj/item/ammo_box/magazine/co9mm{ pixel_x = -7 @@ -13591,10 +13532,8 @@ /obj/item/storage/backpack/ert/janitor{ pixel_x = 6 }, -/obj/structure/closet/wall/blue{ - dir = 8; - name = "Janitorial Closet"; - pixel_x = 28 +/obj/structure/closet/wall/blue/directional/east{ + name = "Janitorial Closet" }, /obj/item/clothing/suit/longcoat/science{ name = "janitor longcoat" @@ -14192,7 +14131,7 @@ Fu WW Mv Ko -hr +Sb hr UJ UJ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index 70be6e034c6c..117d575d366a 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -227,7 +227,7 @@ pixel_x = -2; pixel_y = -4 }, -/obj/item/radio/off{ +/obj/item/radio{ pixel_x = 6; pixel_y = 7 }, @@ -1639,6 +1639,9 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering) "id" = ( @@ -2237,8 +2240,8 @@ /obj/item/storage/belt/utility{ pixel_y = 6 }, -/obj/item/radio/off, -/obj/item/radio/off{ +/obj/item/radio, +/obj/item/radio{ pixel_x = -3; pixel_y = 3 }, @@ -3227,6 +3230,8 @@ "NL" = ( /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/ship_gravity, +/obj/structure/cable, /turf/open/floor/plating, /area/ship/engineering) "NN" = ( diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index d14755d94d3a..735f484525f0 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -108,10 +108,7 @@ /turf/open/floor/plasteel/white, /area/ship/crew/toilet) "aV" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/structure/cable{ icon_state = "1-8" }, @@ -1520,6 +1517,10 @@ /obj/structure/railing{ dir = 8 }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/ship_gravity, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/port) "iy" = ( @@ -1819,9 +1820,7 @@ /turf/open/floor/mineral/plastitanium/red/brig, /area/ship/hallway/central) "km" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - pixel_x = -30; +/obj/structure/closet/wall/blue/directional/west{ name = "Space Suits"; desc = "Contains supplies for space walking." }, @@ -2101,10 +2100,7 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "lA" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 32 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/machinery/light/directional/north, /turf/open/floor/plasteel/patterned/grid, /area/ship/crew/dorm/dormthree) @@ -2672,6 +2668,9 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/port) "pe" = ( @@ -3567,10 +3566,7 @@ /turf/open/floor/plating, /area/ship/storage/eva) "uO" = ( -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/structure/cable{ icon_state = "1-2" }, @@ -3750,9 +3746,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/engineering/electrical) "wk" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/structure/cable{ icon_state = "4-8" }, @@ -4515,9 +4509,7 @@ /turf/open/floor/plasteel/dark, /area/ship/security/armory) "AP" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - pixel_x = -30; +/obj/structure/closet/wall/blue/directional/west{ name = "Space Suits"; desc = "Contains supplies for space walking." }, @@ -6395,10 +6387,7 @@ /obj/structure/railing/corner{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/effect/turf_decal/corner/opaque/orange/border{ dir = 8 }, @@ -7461,9 +7450,7 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Rm" = ( -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/structure/cable{ icon_state = "4-8" }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index b9f1fe3ee680..64d506147d56 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -3,12 +3,10 @@ /obj/structure/chair/comfy/brown{ dir = 1 }, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_door = "sec_wall"; icon_state = "sec_wall"; name = "gun locker"; - pixel_x = -32; req_access_txt = "19" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -1169,6 +1167,10 @@ sortTypes = list(4); tag = "Engineering" }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/firealarm/directional/east, /turf/open/floor/plasteel/patterned/grid, /area/ship/engineering) "ir" = ( @@ -1330,7 +1332,9 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/firealarm/directional/south, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/engineering) "jo" = ( @@ -2185,10 +2189,8 @@ /turf/open/floor/plasteel/white, /area/ship/science) "oE" = ( -/obj/structure/closet/wall{ - dir = 1; - icon_door = "grey_wall"; - pixel_y = -28 +/obj/structure/closet/wall/directional/south{ + icon_door = "grey_wall" }, /obj/item/clothing/under/color/grey, /obj/item/clothing/under/color/grey, @@ -2239,9 +2241,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /turf/open/floor/plasteel/patterned/grid, /area/ship/engineering/atmospherics) "oQ" = ( @@ -2545,10 +2545,7 @@ dir = 8 }, /obj/effect/turf_decal/corner/transparent/neutral, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /turf/open/floor/plasteel, /area/ship/hallway/central) "qw" = ( @@ -2922,10 +2919,7 @@ /obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /turf/open/floor/plasteel, /area/ship/crew/cryo) "sJ" = ( @@ -3057,9 +3051,7 @@ /obj/effect/turf_decal/corner/transparent/neutral{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel, /area/ship/hallway/central) "tO" = ( @@ -4006,7 +3998,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 4 }, /area/ship/cargo) @@ -5972,6 +5964,12 @@ }, /turf/open/floor/plasteel, /area/ship/cargo) +"MT" = ( +/obj/machinery/power/ship_gravity, +/obj/structure/cable, +/obj/effect/turf_decal/industrial/warning/corner, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/engineering) "Nd" = ( /obj/structure/disposalpipe/segment{ dir = 2 @@ -8183,7 +8181,7 @@ hr vx XK jn -WU +MT VV Aj VV diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index 1a876c27135c..4ce3ae890503 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -381,9 +381,7 @@ /turf/open/floor/plating, /area/ship/hallway/central) "dK" = ( -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, @@ -441,22 +439,13 @@ /turf/template_noop, /area/template_noop) "eo" = ( -/obj/structure/rack, -/obj/item/flashlight/seclite{ - pixel_x = 4; - pixel_y = -1 - }, -/obj/item/gps{ - pixel_y = 10; - pixel_x = -5 - }, -/obj/item/kitchen/knife/combat/survival{ - pixel_y = 6; - pixel_x = 5 - }, /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/ship_gravity, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "er" = ( @@ -947,9 +936,7 @@ /turf/open/floor/plasteel/dark, /area/ship/security) "iI" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, @@ -1495,10 +1482,7 @@ /turf/open/floor/plasteel/white, /area/ship/hallway/port) "pf" = ( -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -1536,14 +1520,43 @@ /area/ship/crew/toilet) "ps" = ( /obj/structure/closet/secure_closet/lp/engineer, -/obj/item/clothing/head/welding, -/obj/item/holosign_creator/engineering, -/obj/item/holosign_creator/atmos, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/glasses/meson/gar, -/obj/item/crowbar/power, -/obj/item/clothing/shoes/magboots, /obj/machinery/light/dim/directional/north, +/obj/item/clothing/gloves/color/yellow{ + pixel_y = -9 + }, +/obj/item/crowbar/power{ + pixel_y = 3 + }, +/obj/item/clothing/shoes/magboots{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/holosign_creator/engineering{ + pixel_y = 6; + pixel_x = -5 + }, +/obj/item/holosign_creator/atmos{ + pixel_y = 6; + pixel_x = 6 + }, +/obj/item/flashlight/seclite{ + pixel_x = 2; + pixel_y = 15 + }, +/obj/item/gps{ + pixel_y = 9; + pixel_x = -12 + }, +/obj/item/kitchen/knife/combat/survival{ + pixel_y = 6; + pixel_x = 5 + }, +/obj/item/clothing/head/welding{ + pixel_y = -9 + }, +/obj/item/clothing/glasses/meson/gar{ + pixel_y = 8 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "pA" = ( @@ -2668,10 +2681,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/plasteel/white, /area/ship/hallway/central) "BY" = ( @@ -2979,6 +2989,9 @@ /obj/effect/turf_decal/siding/yellow{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "FQ" = ( @@ -3043,10 +3056,7 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -30 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plasteel/white, /area/ship/hallway/central) "Gn" = ( @@ -4015,10 +4025,7 @@ /turf/open/floor/plasteel/white, /area/ship/hallway/port) "RA" = ( -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index 5ec1a75727d5..803c5f0ea0c2 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -2164,10 +2164,8 @@ /turf/open/floor/plasteel/dark, /area/ship/cargo/office) "qS" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ name = "The Captain's Personal Medicine Cabinet And Soap Holder"; - pixel_x = -28; req_access_txt = "20" }, /obj/item/soap/nanotrasen, @@ -2385,6 +2383,10 @@ /obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-1" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering/engine) "sU" = ( @@ -3700,10 +3702,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /turf/open/floor/carpet/nanoweave, /area/ship/hallway/central) "Dy" = ( @@ -5672,9 +5671,7 @@ /turf/open/floor/engine, /area/ship/engineering/atmospherics) "Wy" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/carpet/nanoweave, /area/ship/hallway/central) "Wz" = ( diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm index f797f25d2f95..e39ca5bb9654 100644 --- a/_maps/shuttles/pgf/pgf_crying_sun.dmm +++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm @@ -239,10 +239,8 @@ pixel_x = 7; pixel_y = -5 }, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "sec_wall"; - dir = 4; - pixel_x = -28; name = "equipment locker" }, /obj/effect/turf_decal/corner/opaque/purple/border{ @@ -292,6 +290,13 @@ }, /turf/open/floor/plasteel/sepia, /area/ship/crew/dorm/dormthree) +"ck" = ( +/obj/effect/turf_decal/borderfloorblack{ + dir = 1 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/plasteel/mono/dark, +/area/ship/construction) "cs" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ @@ -701,8 +706,8 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/item/radio/intercom/directional/east, -/obj/structure/tank_dispenser, +/obj/structure/cable, +/obj/machinery/power/ship_gravity, /turf/open/floor/plating, /area/ship/engineering) "gx" = ( @@ -786,11 +791,9 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/closet/wall{ - dir = 1; +/obj/structure/closet/wall/directional/south{ icon_door = null; - name = "Uniforms"; - pixel_y = -28 + name = "Uniforms" }, /obj/item/clothing/under/gezena{ pixel_y = -5; @@ -983,10 +986,7 @@ /obj/effect/turf_decal/spline/fancy/opaque/lime{ dir = 8 }, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/structure/cable{ icon_state = "1-2" }, @@ -1175,9 +1175,8 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "jt" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "cargo_wall"; - pixel_y = 28; name = "Engineer's Locker" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -1512,10 +1511,7 @@ /turf/open/floor/plasteel/sepia, /area/ship/crew/dorm/dormthree) "na" = ( -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/machinery/light/directional/north, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) @@ -1536,9 +1532,7 @@ /turf/open/floor/plating, /area/ship/engineering) "nm" = ( -/obj/structure/closet/wall/blue{ - dir = 4; - pixel_x = -28; +/obj/structure/closet/wall/blue/directional/west{ name = "Spare EVA Closet" }, /obj/effect/turf_decal/corner/opaque/lime/mono, @@ -1729,9 +1723,7 @@ /obj/effect/turf_decal/siding/wood/end{ dir = 4 }, -/obj/structure/closet/wall{ - dir = 8; - pixel_x = 28; +/obj/structure/closet/wall/directional/east{ name = "Cleaning Station" }, /obj/machinery/computer/helm/viewscreen/directional/south, @@ -1990,9 +1982,8 @@ /turf/closed/wall/mineral/titanium/exterior, /area/ship/construction) "qZ" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "cargo_wall"; - pixel_y = 28; name = "Engineer's Locker" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, @@ -2068,10 +2059,8 @@ /turf/open/floor/plasteel/tech, /area/ship/crew/office) "rN" = ( -/obj/structure/closet/secure_closet/wall{ - icon_state = "secure_wall"; - dir = 8; - pixel_x = 26 +/obj/structure/closet/secure_closet/wall/directional/east{ + icon_state = "secure_wall" }, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ @@ -2125,10 +2114,7 @@ /obj/effect/turf_decal/corner_steel_grid{ dir = 10 }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -27 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, @@ -2218,10 +2204,7 @@ /obj/structure/railing{ dir = 6 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "ty" = ( @@ -2314,10 +2297,8 @@ pixel_x = 11; pixel_y = -5 }, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "sec_wall"; - dir = 4; - pixel_x = -28; name = "equipment locker" }, /obj/structure/window/reinforced{ @@ -3033,11 +3014,9 @@ /obj/effect/turf_decal/corner_steel_grid{ dir = 9 }, -/obj/structure/closet/wall{ - dir = 2; +/obj/structure/closet/wall/directional/north{ icon_door = null; - name = "headset storage"; - pixel_y = 28 + name = "headset storage" }, /obj/item/encryptionkey/pgf{ pixel_y = -5; @@ -3412,9 +3391,7 @@ /obj/item/towel, /obj/item/towel, /obj/item/towel, -/obj/structure/closet/wall{ - dir = 4; - pixel_x = -28; +/obj/structure/closet/wall/directional/west{ name = "towel closet" }, /turf/open/floor/plastic, @@ -3707,10 +3684,7 @@ /obj/effect/turf_decal/spline/fancy/opaque/lime{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/structure/cable{ icon_state = "1-2" }, @@ -3730,11 +3704,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, -/obj/structure/closet/wall{ - dir = 1; +/obj/structure/closet/wall/directional/south{ icon_door = null; - name = "Uniforms"; - pixel_y = -28 + name = "Uniforms" }, /obj/item/clothing/gloves/gezena{ pixel_x = -5; @@ -4462,10 +4434,7 @@ /obj/effect/turf_decal/corner_steel_grid{ dir = 10 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, @@ -4481,10 +4450,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/plating, /area/ship/engineering) "KB" = ( @@ -4711,13 +4677,10 @@ /turf/open/floor/plasteel/tech, /area/ship/crew/dorm/dormtwo) "MC" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/east{ icon_door = "med_wall"; name = "Doctor's Locker"; - pixel_y = 0; - req_access_txt = "5"; - dir = 8; - pixel_x = 28 + req_access_txt = "5" }, /obj/item/clothing/gloves/gezena{ pixel_x = 3; @@ -4935,6 +4898,7 @@ pixel_x = 6; pixel_y = 2 }, +/obj/item/radio/intercom/directional/south, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "Nz" = ( @@ -5269,10 +5233,8 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "PP" = ( -/obj/structure/closet/wall{ - dir = 4; +/obj/structure/closet/wall/directional/west{ icon_state = "emergency_wall"; - pixel_x = -28; name = "Spare Internals Closet" }, /obj/effect/turf_decal/corner/opaque/lime/mono, @@ -5417,10 +5379,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -27 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/ship/engineering) @@ -5574,10 +5533,7 @@ dir = 10 }, /obj/machinery/light/directional/north, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/engine/hull/reinforced/interior, /area/ship/construction) "RX" = ( @@ -6359,10 +6315,8 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/central) "Xz" = ( -/obj/structure/closet/secure_closet/wall{ - icon_state = "secure_wall"; - dir = 8; - pixel_x = 26 +/obj/structure/closet/secure_closet/wall/directional/east{ + icon_state = "secure_wall" }, /turf/open/floor/plastic, /area/ship/crew/toilet) @@ -6642,10 +6596,8 @@ /turf/open/floor/plasteel/tech, /area/ship/crew/dorm/dormthree) "ZH" = ( -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "cargo_wall"; - pixel_y = -28; - dir = 1; name = "Engineering Equipment" }, /obj/item/storage/box/metalfoam{ @@ -7597,7 +7549,7 @@ Sh vh mL cY -xO +ck TO xz xz diff --git a/_maps/shuttles/pirate/pirate_ember.dmm b/_maps/shuttles/pirate/pirate_ember.dmm index 195b7268b8aa..2ebdfc9313a1 100644 --- a/_maps/shuttles/pirate/pirate_ember.dmm +++ b/_maps/shuttles/pirate/pirate_ember.dmm @@ -205,10 +205,7 @@ /area/ship/hallway/central) "aZ" = ( /obj/effect/decal/cleanable/oil, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, @@ -1414,10 +1411,8 @@ /turf/open/floor/plasteel, /area/ship/crew/canteen) "hq" = ( -/obj/structure/closet/wall{ - name = "Atmospheric locker"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/directional/west{ + name = "Atmospheric locker" }, /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, /obj/item/clothing/suit/fire/atmos, @@ -1464,10 +1459,7 @@ /turf/open/floor/plating/rust, /area/ship/medical) "hy" = ( -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/wrapping, /obj/item/kirbyplants/random, @@ -1996,6 +1988,20 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/closet/crate/engineering, +/obj/item/stack/sheet/metal/fifty{ + pixel_y = 2 + }, +/obj/item/stack/sheet/metal/fifty{ + pixel_y = 6; + pixel_x = 6 + }, +/obj/item/stack/sheet/mineral/plastitanium/fifty{ + pixel_x = -3 + }, +/obj/item/stack/sheet/mineral/plastitanium/twenty{ + pixel_y = 2 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering/electrical) "kc" = ( @@ -2423,10 +2429,8 @@ }, /area/ship/engineering/electrical) "mi" = ( -/obj/structure/closet/wall/red{ - dir = 4; +/obj/structure/closet/wall/red/directional/west{ name = "armory locker"; - pixel_x = -28; req_one_access_txt = "1" }, /obj/effect/turf_decal/techfloor{ @@ -2722,11 +2726,9 @@ /area/ship/maintenance/fore) "nx" = ( /obj/effect/turf_decal/techfloor, -/obj/structure/closet/wall{ - dir = 1; +/obj/structure/closet/wall/directional/south{ icon_door = "yellow_wall"; - name = "engineering closet"; - pixel_y = -28 + name = "engineering closet" }, /obj/item/clothing/suit/toggle/industrial, /obj/item/clothing/under/utility, @@ -2849,10 +2851,8 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, -/obj/structure/closet/wall/red{ - dir = 1; - name = "Firearm Locker"; - pixel_y = -28 +/obj/structure/closet/wall/red/directional/south{ + name = "Firearm Locker" }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/steeldecal/steel_decals_central2{ @@ -3301,9 +3301,7 @@ /turf/open/floor/plasteel/dark, /area/ship/hallway/fore) "qr" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/item/seeds/berry{ pixel_x = -8; pixel_y = 6 @@ -3339,10 +3337,8 @@ pixel_x = 1; pixel_y = -4 }, -/obj/structure/closet/wall/blue{ - dir = 4; - name = "Component Storage"; - pixel_x = -28 +/obj/structure/closet/wall/blue/directional/west{ + name = "Component Storage" }, /obj/item/stack/cable_coil/blue, /obj/item/stack/cable_coil/orange{ @@ -3565,10 +3561,7 @@ "rJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/wall/directional/south, /obj/item/reagent_containers/syringe/contraband/fentanyl{ pixel_x = -3; pixel_y = 4 @@ -3609,10 +3602,7 @@ /turf/closed/wall/rust, /area/ship/crew/canteen) "rQ" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ship/hallway/central) @@ -3707,19 +3697,9 @@ /obj/structure/cable{ icon_state = "2-9" }, -/obj/item/stack/sheet/metal/fifty{ - pixel_y = 2 - }, -/obj/item/stack/sheet/metal/fifty{ - pixel_y = 6; - pixel_x = 6 - }, -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/mineral/plastitanium/fifty{ - pixel_x = -3 - }, -/obj/item/stack/sheet/mineral/plastitanium/twenty{ - pixel_y = 2 +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-2" }, /turf/open/floor/plasteel/tech, /area/ship/engineering/electrical) @@ -4545,6 +4525,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/machinery/power/ship_gravity/unanchored, /turf/open/floor/plating/rust, /area/ship/hallway/central) "vY" = ( @@ -4684,9 +4665,7 @@ /area/ship/maintenance/central) "wC" = ( /obj/structure/catwalk/over/plated_catwalk, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plating, /area/ship/hallway/central) @@ -4732,10 +4711,7 @@ /obj/effect/turf_decal/trimline/transparent/lightgrey/line{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/structure/cable{ icon_state = "1-2" }, @@ -5449,10 +5425,8 @@ /turf/open/floor/plasteel/dark, /area/ship/hallway/fore) "AL" = ( -/obj/structure/closet/wall/orange{ - dir = 8; - name = "Engineering locker"; - pixel_x = 28 +/obj/structure/closet/wall/orange/directional/east{ + name = "Engineering locker" }, /obj/effect/decal/cleanable/robot_debris/gib, /obj/item/clothing/under/utility, @@ -5863,9 +5837,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall{ - dir = 8; - pixel_x = 28; +/obj/structure/closet/wall/directional/east{ name = "Uniform Closet" }, /obj/item/clothing/neck/shemagh, @@ -6098,9 +6070,7 @@ /obj/effect/turf_decal/techfloor/corner{ dir = 4 }, -/obj/structure/closet/wall/blue{ - dir = 8; - pixel_x = 28; +/obj/structure/closet/wall/blue/directional/east{ name = "Bridge Officer's locker" }, /obj/item/clothing/shoes/workboots, @@ -6839,11 +6809,9 @@ /area/ship/maintenance/fore) "GF" = ( /obj/effect/turf_decal/techfloor, -/obj/structure/closet/wall{ - dir = 1; +/obj/structure/closet/wall/directional/south{ icon_door = "yellow_wall"; - name = "engineering closet"; - pixel_y = -28 + name = "engineering closet" }, /obj/item/clothing/suit/toggle/industrial, /obj/item/clothing/under/utility, @@ -7747,92 +7715,54 @@ dir = 6 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall{ - name = "Utility Closet"; - pixel_y = -28; - dir = 1 +/obj/structure/closet/wall/directional/south{ + name = "Utility Closet" }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, -/obj/item/radio{ - desc = "An old handheld radio. You could use it, if you really wanted to."; - icon_state = "radio"; - name = "old radio"; +/obj/item/radio/old{ pixel_x = 2; pixel_y = 9 }, @@ -8208,9 +8138,7 @@ /obj/effect/turf_decal/techfloor/corner{ dir = 4 }, -/obj/structure/closet/wall/blue{ - dir = 8; - pixel_x = 28; +/obj/structure/closet/wall/blue/directional/east{ name = "Bridge Officer's locker" }, /obj/item/clothing/shoes/workboots, @@ -8985,10 +8913,8 @@ /turf/open/floor/plasteel, /area/ship/hallway/central) "Pn" = ( -/obj/structure/closet/wall/red{ - name = "Ammo locker"; - dir = 4; - pixel_x = -28 +/obj/structure/closet/wall/red/directional/west{ + name = "Ammo locker" }, /obj/effect/turf_decal/techfloor{ dir = 8 @@ -9278,10 +9204,7 @@ "QH" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, /area/ship/engineering/communications) @@ -9915,10 +9838,7 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/machinery/advanced_airlock_controller{ pixel_y = 26 }, diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm index e0c0905371ad..2fe2cd9ddb20 100644 --- a/_maps/shuttles/pirate/pirate_libertatia.dmm +++ b/_maps/shuttles/pirate/pirate_libertatia.dmm @@ -424,10 +424,8 @@ /obj/effect/turf_decal/industrial/warning{ dir = 5 }, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "armory locker"; - pixel_x = 28; req_one_access_txt = "1" }, /turf/open/floor/mineral/plastitanium, @@ -443,10 +441,8 @@ /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/structure/closet/wall/red{ - dir = 4; +/obj/structure/closet/wall/red/directional/west{ name = "suit locker"; - pixel_x = -28; req_one_access_txt = "1" }, /turf/open/floor/mineral/plastitanium, @@ -501,10 +497,8 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "armory locker"; - pixel_x = 28; req_one_access_txt = "1" }, /obj/item/gun/ballistic/shotgun/doublebarrel{ @@ -535,10 +529,8 @@ /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/obj/structure/closet/wall/red{ - dir = 4; +/obj/structure/closet/wall/red/directional/west{ name = "suit locker"; - pixel_x = -28; req_one_access_txt = "1" }, /turf/open/floor/mineral/plastitanium, @@ -585,10 +577,8 @@ /obj/effect/turf_decal/industrial/warning{ dir = 6 }, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "armory locker"; - pixel_x = 28; req_one_access_txt = "1" }, /turf/open/floor/mineral/plastitanium, @@ -659,9 +649,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/machinery/advanced_airlock_controller{ pixel_y = -25 }, @@ -900,10 +888,8 @@ /obj/item/clothing/under/costume/sailor, /obj/item/clothing/under/costume/sailor, /obj/item/clothing/under/costume/sailor, -/obj/structure/closet/wall{ - dir = 8; - icon_door = "grey_wall"; - pixel_x = 28 +/obj/structure/closet/wall/directional/east{ + icon_door = "grey_wall" }, /turf/open/floor/pod/light, /area/ship/crew) @@ -1139,10 +1125,7 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/pod/light, /area/ship/cargo) "Hh" = ( @@ -1312,10 +1295,7 @@ /obj/structure/cable/yellow, /obj/machinery/power/terminal, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -1402,10 +1382,7 @@ /obj/item/wrench, /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /turf/open/floor/plating, /area/ship/hallway/starboard) "OA" = ( @@ -1790,6 +1767,7 @@ "WC" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/power/ship_gravity/unanchored, /turf/open/floor/mineral/plastitanium, /area/ship/cargo) "WK" = ( diff --git a/_maps/shuttles/pirate/pirate_noderider.dmm b/_maps/shuttles/pirate/pirate_noderider.dmm index c10e072892df..10c591d8f52f 100644 --- a/_maps/shuttles/pirate/pirate_noderider.dmm +++ b/_maps/shuttles/pirate/pirate_noderider.dmm @@ -294,10 +294,7 @@ /obj/item/storage/box/handcuffs, /obj/item/storage/box/handcuffs, /obj/item/storage/box/handcuffs, -/obj/structure/closet/wall/red{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/wall/red/directional/east, /obj/item/storage/backpack/duffelbag/syndie/c4, /turf/open/floor/plasteel/tech, /area/ship/security/armory) @@ -413,6 +410,12 @@ dir = 1 }, /obj/effect/turf_decal/industrial/caution, +/obj/structure/closet/secure_closet/engineering_electrical{ + req_access = null + }, +/obj/structure/cable{ + icon_state = "5-8" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering) "fD" = ( @@ -1021,8 +1024,7 @@ /turf/open/floor/plating/airless, /area/ship/external) "qh" = ( -/obj/structure/closet/wall/red{ - pixel_y = 28; +/obj/structure/closet/wall/red/directional/north{ name = "weapons locker" }, /obj/item/gun/energy/e_gun/smg, @@ -1188,10 +1190,8 @@ /obj/structure/sign/poster/contraband/cybersun_borg{ pixel_y = 32 }, -/obj/structure/closet/wall/white{ - dir = 4; - name = "First Aid"; - pixel_x = -28 +/obj/structure/closet/wall/white/directional/west{ + name = "First Aid" }, /obj/item/storage/backpack/duffelbag/med/surgery, /obj/item/storage/toolbox/mechanical, @@ -1291,8 +1291,7 @@ /turf/closed/wall/r_wall/syndicate, /area/ship/maintenance/central) "tF" = ( -/obj/structure/closet/wall/red{ - pixel_y = 28; +/obj/structure/closet/wall/red/directional/north{ name = "armor locker" }, /obj/item/clothing/suit/armor/riot, @@ -1477,9 +1476,7 @@ /area/ship/external) "xl" = ( /obj/structure/table, -/obj/structure/closet/wall/red{ - pixel_x = -28; - dir = 4; +/obj/structure/closet/wall/red/directional/west{ name = "captain's locker" }, /obj/effect/turf_decal/spline/fancy/opaque/black{ @@ -2539,9 +2536,7 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/central) "MJ" = ( -/obj/structure/closet/wall{ - dir = 1; - pixel_y = -28; +/obj/structure/closet/wall/directional/south{ name = "node uniforms" }, /obj/item/clothing/under/utility, @@ -2964,9 +2959,6 @@ /obj/structure/railing/corner{ layer = 3.1 }, -/obj/structure/closet/secure_closet/engineering_electrical{ - req_access = null - }, /obj/effect/turf_decal/spline/fancy/opaque/black/corner, /obj/effect/turf_decal/industrial/warning{ dir = 1 @@ -2974,6 +2966,10 @@ /obj/effect/turf_decal/corner_techfloor_gray{ dir = 8 }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering) "Vb" = ( diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm index e5f06babb733..6d1a743dc6a0 100644 --- a/_maps/shuttles/roumain/srm_elder.dmm +++ b/_maps/shuttles/roumain/srm_elder.dmm @@ -30,6 +30,9 @@ /obj/structure/cable{ icon_state = "1-10" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "al" = ( @@ -207,9 +210,7 @@ /turf/open/floor/wood/maple, /area/ship/hallway/central) "cg" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/structure/cable{ icon_state = "4-8" }, @@ -815,10 +816,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ dir = 10 }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/effect/turf_decal/trimline/opaque/red/arrow_cw{ dir = 8 }, @@ -850,9 +848,7 @@ /turf/open/floor/wood/ebony, /area/ship/hallway/port) "iT" = ( -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/effect/turf_decal/siding/brown{ dir = 1 }, @@ -913,12 +909,12 @@ /turf/open/floor/plasteel/white, /area/ship/medical) "jr" = ( +/obj/machinery/power/ship_gravity, +/obj/structure/cable, /turf/open/floor/plasteel/dark, /area/ship/engineering/engine) "jv" = ( -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/structure/cable{ icon_state = "4-8" }, @@ -1887,10 +1883,7 @@ /turf/open/floor/grass/ship/jungle, /area/ship/bridge) "wE" = ( -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "xe" = ( @@ -2322,10 +2315,7 @@ /turf/open/floor/plasteel/dark, /area/ship/engineering/atmospherics) "Cr" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/grass/ship/jungle, /area/ship/roumain) "Cx" = ( @@ -2396,9 +2386,7 @@ /turf/open/floor/plating, /area/ship/hallway/port) "CF" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/effect/turf_decal/siding/brown{ dir = 1 }, @@ -2662,9 +2650,7 @@ /turf/open/floor/wood/ebony, /area/ship/storage) "HB" = ( -/obj/structure/closet/wall/blue{ - dir = 8; - pixel_x = 28; +/obj/structure/closet/wall/blue/directional/east{ name = "Spare EVA Closet" }, /obj/item/clothing/suit/space/eva{ @@ -2695,10 +2681,7 @@ /turf/open/floor/wood/mahogany, /area/ship/bridge) "Ii" = ( -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/effect/turf_decal/spline/fancy/wood{ dir = 4 }, @@ -4159,10 +4142,7 @@ /turf/open/floor/wood/mahogany, /area/ship/hallway/starboard) "ZI" = ( -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/effect/turf_decal/spline/fancy/wood{ dir = 4 }, diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm index 9cceb17c5dea..c790d8a67b7c 100644 --- a/_maps/shuttles/solgov/solgov_chronicle.dmm +++ b/_maps/shuttles/solgov/solgov_chronicle.dmm @@ -51,6 +51,9 @@ dir = 4 }, /obj/machinery/meter/atmos/layer2, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/engine) "aB" = ( @@ -3127,8 +3130,7 @@ /turf/open/floor/engine/n2, /area/ship/engineering/engine) "Ez" = ( -/obj/structure/closet/secure_closet/wall{ - pixel_y = 28; +/obj/structure/closet/secure_closet/wall/directional/north{ name = "bridge supplies" }, /obj/item/binoculars, @@ -3333,10 +3335,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 10 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/machinery/camera/autoname{ dir = 4 }, @@ -3866,6 +3865,10 @@ /obj/effect/turf_decal/techfloor{ dir = 1 }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering/engine) "LE" = ( @@ -3896,10 +3899,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/wood, /area/ship/bridge) "Me" = ( @@ -3942,6 +3942,9 @@ dir = 4 }, /obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/white, /area/ship/engineering/engine) "MT" = ( @@ -3972,10 +3975,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/plasteel/white, /area/ship/engineering/engine) "Nm" = ( diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm index e42972d85eed..21331c0bf281 100644 --- a/_maps/shuttles/solgov/solgov_inkwell.dmm +++ b/_maps/shuttles/solgov/solgov_inkwell.dmm @@ -400,6 +400,9 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/white, /area/ship/engineering) "dm" = ( @@ -1051,10 +1054,7 @@ /obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned, /area/ship/cargo) @@ -1308,10 +1308,7 @@ /obj/item/clothing/under/solgov/formal/skirt, /obj/item/clothing/suit/solgov/suit, /obj/structure/table/wood, -/obj/structure/closet/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/wall/directional/east, /obj/machinery/button/door{ pixel_y = -21; pixel_x = -8; @@ -1695,10 +1692,7 @@ /obj/item/clothing/under/solgov/formal/skirt, /obj/item/clothing/suit/solgov/suit, /obj/structure/table/wood, -/obj/structure/closet/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/wall/directional/east, /obj/item/clothing/suit/hooded/wintercoat/solgov, /obj/item/clothing/suit/hooded/wintercoat/solgov, /turf/open/floor/wood/walnut, @@ -1722,7 +1716,7 @@ pixel_y = 0; pixel_x = -26 }, -/turf/open/floor/plasteel/stairs/wood{ +/turf/open/floor/plasteel/stairs/wood/left{ dir = 1 }, /area/ship/bridge) @@ -2441,7 +2435,7 @@ /area/ship/crew/canteen/kitchen) "qe" = ( /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs/wood{ +/turf/open/floor/plasteel/stairs/wood/right{ dir = 1 }, /area/ship/bridge) @@ -2566,9 +2560,7 @@ dir = 8 }, /obj/structure/table/wood, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/item/radio, /obj/item/radio, /obj/item/radio, @@ -3712,9 +3704,8 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs/wood{ - dir = 8; - color = "#D5A66E" +/turf/open/floor/plasteel/stairs/wood/birch{ + dir = 8 }, /area/ship/crew/dorm/dormthree) "xF" = ( @@ -4416,6 +4407,9 @@ }, /obj/machinery/light/directional/west, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering) "Ct" = ( @@ -4619,6 +4613,10 @@ /obj/structure/sign/poster/solgov/random{ pixel_y = 32 }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/engineering) "DF" = ( @@ -5827,9 +5825,7 @@ /obj/effect/turf_decal/techfloor{ dir = 1 }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/white, /area/ship/hallway/starboard) @@ -6259,10 +6255,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "PB" = ( @@ -6307,7 +6300,7 @@ /obj/structure/railing/wood{ dir = 4 }, -/turf/open/floor/plasteel/stairs/wood, +/turf/open/floor/plasteel/stairs/wood/right, /area/ship/bridge) "Qt" = ( /obj/machinery/power/terminal{ @@ -6400,9 +6393,7 @@ /obj/effect/turf_decal/spline/fancy/transparent/solgovblue{ dir = 8 }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /turf/open/floor/plasteel/patterned, /area/ship/cargo) "QT" = ( @@ -6470,7 +6461,7 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs/wood, +/turf/open/floor/plasteel/stairs/wood/left, /area/ship/bridge) "Rh" = ( /obj/effect/turf_decal/techfloor, @@ -6900,9 +6891,8 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/stairs/wood{ - dir = 8; - color = "#543C30" +/turf/open/floor/plasteel/stairs/wood/walnut{ + dir = 8 }, /area/ship/crew/dorm/dormtwo) "TV" = ( @@ -6933,6 +6923,9 @@ }, /obj/machinery/light/directional/north, /obj/effect/decal/cleanable/dirt/dust, +/obj/structure/cable{ + icon_state = "0-2" + }, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Ul" = ( diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm index b4ca4f13cb07..ba1181c14daa 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -1160,9 +1160,7 @@ /turf/template_noop, /area/template_noop) "lD" = ( -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/item/radio, /obj/item/radio, /obj/item/radio, @@ -1891,8 +1889,7 @@ /obj/structure/railing/wood{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ - pixel_y = 28; +/obj/structure/closet/secure_closet/wall/directional/north{ name = "navigational supplies"; req_access_txt = "19" }, @@ -2025,6 +2022,7 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible/layer2{ dir = 4 }, +/obj/machinery/airalarm/directional/east, /turf/open/floor/plasteel/dark, /area/ship/maintenance/starboard) "ul" = ( @@ -2450,7 +2448,8 @@ /area/ship/hallway/starboard) "xU" = ( /obj/effect/turf_decal/techfloor, -/obj/machinery/airalarm/directional/south, +/obj/structure/cable, +/obj/machinery/power/ship_gravity, /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/starboard) "xX" = ( @@ -2866,11 +2865,9 @@ /obj/item/ammo_box/magazine/pistol556mm, /obj/item/ammo_box/magazine/pistol556mm, /obj/item/ammo_box/magazine/pistol556mm, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "firearms locker"; - pixel_y = -28; req_access_txt = "19" }, /turf/open/floor/carpet/royalblue, @@ -3540,6 +3537,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/maintenance/starboard) "IO" = ( @@ -4316,10 +4316,7 @@ /area/ship/cargo/office) "Pp" = ( /obj/structure/table/wood, -/obj/structure/closet/secure_closet/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/secure_closet/wall/directional/east, /obj/item/clipboard, /obj/item/paper_bin/carbon, /obj/item/clothing/accessory/waistcoat/solgov, @@ -4552,6 +4549,9 @@ dir = 8; name = "Air to Distro" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/maintenance/starboard) "RA" = ( diff --git a/_maps/shuttles/subshuttles/inteq_anvil.dmm b/_maps/shuttles/subshuttles/inteq_anvil.dmm index f14f1e64d7fd..5e591774e259 100644 --- a/_maps/shuttles/subshuttles/inteq_anvil.dmm +++ b/_maps/shuttles/subshuttles/inteq_anvil.dmm @@ -46,10 +46,7 @@ }, /obj/effect/landmark/ert_shuttle_spawn, /obj/machinery/light/directional/east, -/obj/structure/closet/emcloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/emcloset/wall/directional/south, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/subshuttles/nanotrasen_ancon.dmm b/_maps/shuttles/subshuttles/nanotrasen_ancon.dmm index 7176477bab9c..1238678040f8 100644 --- a/_maps/shuttles/subshuttles/nanotrasen_ancon.dmm +++ b/_maps/shuttles/subshuttles/nanotrasen_ancon.dmm @@ -149,9 +149,7 @@ /turf/open/floor/plasteel/white, /area/ship/bridge) "vV" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/item/clothing/suit/space/eva, /obj/item/clothing/suit/space/eva, /obj/item/clothing/suit/space/eva, diff --git a/_maps/shuttles/subshuttles/pgf_nail.dmm b/_maps/shuttles/subshuttles/pgf_nail.dmm index 80534adfc514..9a5224dc4573 100644 --- a/_maps/shuttles/subshuttles/pgf_nail.dmm +++ b/_maps/shuttles/subshuttles/pgf_nail.dmm @@ -194,9 +194,7 @@ /obj/structure/railing{ dir = 4 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/tech, /area/ship/bridge) "y" = ( diff --git a/_maps/shuttles/subshuttles/syndicate_runner.dmm b/_maps/shuttles/subshuttles/syndicate_runner.dmm index 21e4f84a10e5..100a0d234000 100644 --- a/_maps/shuttles/subshuttles/syndicate_runner.dmm +++ b/_maps/shuttles/subshuttles/syndicate_runner.dmm @@ -188,10 +188,7 @@ /obj/effect/turf_decal/trimline/opaque/bar/filled/corner{ dir = 1 }, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, /obj/item/tank/internals/oxygen, diff --git a/_maps/shuttles/syndicate/syndicate_aegis.dmm b/_maps/shuttles/syndicate/syndicate_aegis.dmm index f5b0e87a6b1b..e879c978eef0 100644 --- a/_maps/shuttles/syndicate/syndicate_aegis.dmm +++ b/_maps/shuttles/syndicate/syndicate_aegis.dmm @@ -32,10 +32,8 @@ }, /obj/item/clothing/neck/stripedredscarf, /obj/item/clothing/neck/tie/red, -/obj/structure/closet/wall/red{ - dir = 8; +/obj/structure/closet/wall/red/directional/east{ name = "Captain's Locker"; - pixel_x = 30; req_access_txt = "20" }, /obj/item/storage/belt/sabre, @@ -84,10 +82,9 @@ /obj/item/shovel/spade, /obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, -/obj/structure/closet/wall/white{ +/obj/structure/closet/wall/white/directional/north{ color = "#50C878"; - name = "Produce Production Locker"; - pixel_y = 30 + name = "Produce Production Locker" }, /obj/item/storage/box/disks_plantgene, /obj/item/clothing/gloves/botanic_leather, @@ -128,11 +125,9 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/structure/closet/wall{ - dir = 8; +/obj/structure/closet/wall/directional/east{ icon_door = "orange_wall"; - name = "Mining equipment"; - pixel_x = 29 + name = "Mining equipment" }, /obj/item/gps/mining, /obj/item/pickaxe, @@ -236,9 +231,8 @@ /obj/item/folder/red, /obj/item/laser_pointer/red, /obj/item/clipboard, -/obj/structure/closet/wall/red{ - name = "Psychologists Locker"; - pixel_y = 28 +/obj/structure/closet/wall/red/directional/north{ + name = "Psychologists Locker" }, /obj/item/clothing/head/suns, /obj/item/clothing/gloves/suns/xo, @@ -506,9 +500,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/closet/firecloset/wall{ - pixel_y = 29 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/structure/catwalk/over, /obj/machinery/atmospherics/pipe/manifold/orange/hidden{ dir = 1 @@ -571,9 +563,8 @@ /obj/item/clothing/glasses/hud/health/sunglasses, /obj/item/clothing/neck/stripedredscarf, /obj/item/clothing/neck/stripedbluescarf, -/obj/structure/closet/wall/red{ - name = "Lead Doctor's Locker"; - pixel_y = 28 +/obj/structure/closet/wall/red/directional/north{ + name = "Lead Doctor's Locker" }, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/clothing/suit/armor/vest/security/brig_phys{ @@ -671,10 +662,8 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/white{ - dir = 8; - name = "Bartenders Clothing"; - pixel_x = 30 +/obj/structure/closet/wall/white/directional/east{ + name = "Bartenders Clothing" }, /obj/item/clothing/under/rank/civilian/bartender/skirt, /obj/item/clothing/under/rank/civilian/bartender, @@ -742,9 +731,8 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "fJ" = ( -/obj/structure/closet/wall/orange{ - name = "fuel locker"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "fuel locker" }, /obj/item/stack/sheet/mineral/uranium/five{ pixel_x = 2 @@ -1002,8 +990,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/white{ - pixel_y = 26; +/obj/structure/closet/wall/white/directional/north{ name = "bureaucratic supplies" }, /obj/item/paper_bin, @@ -1528,7 +1515,9 @@ name = "Engineering storage"; pixel_x = 23 }, -/obj/machinery/space_heater, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "mv" = ( @@ -1886,6 +1875,7 @@ /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "qa" = ( @@ -2327,10 +2317,8 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall/white{ - dir = 4; - name = "Cooks Clothing"; - pixel_x = -30 +/obj/structure/closet/wall/white/directional/west{ + name = "Cooks Clothing" }, /obj/item/book/manual/wiki/cooking, /obj/item/clothing/under/rank/civilian/chef, @@ -2362,9 +2350,8 @@ /turf/open/floor/plating, /area/ship/engineering) "vs" = ( -/obj/structure/closet/wall/orange{ - name = "Engineering locker"; - pixel_y = 30 +/obj/structure/closet/wall/orange/directional/north{ + name = "Engineering locker" }, /obj/machinery/atmospherics/pipe/simple/orange/hidden{ dir = 8 @@ -2501,9 +2488,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 8 }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 31 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/structure/catwalk/over, /obj/structure/cable/yellow{ icon_state = "4-8" @@ -2512,11 +2497,11 @@ /area/ship/engineering) "wM" = ( /obj/machinery/atmospherics/pipe/layer_manifold, +/obj/structure/rack, /obj/item/clothing/mask/gas/suns, /obj/item/clothing/mask/gas/suns, /obj/item/clothing/mask/gas/suns, /obj/item/holosign_creator/atmos, -/obj/structure/rack, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "wQ" = ( @@ -2547,10 +2532,8 @@ /area/ship/hallway/central) "xh" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/wall{ - dir = 1; - name = "Patient Clothing Closet"; - pixel_y = -30 +/obj/structure/closet/wall/directional/south{ + name = "Patient Clothing Closet" }, /obj/effect/decal/cleanable/blood/drip, /obj/item/clothing/under/rank/medical/gown, @@ -2686,6 +2669,9 @@ pixel_y = 7 }, /obj/item/storage/toolbox/mechanical, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "yA" = ( @@ -3142,9 +3128,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/closet/wall/orange{ - name = "Emergency Engineering"; - pixel_y = 30 +/obj/structure/closet/wall/orange/directional/north{ + name = "Emergency Engineering" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -3399,11 +3384,9 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/structure/closet/wall{ - dir = 8; +/obj/structure/closet/wall/directional/east{ icon_door = "orange_wall"; - name = "Mining equipment"; - pixel_x = 29 + name = "Mining equipment" }, /obj/item/gps/mining, /obj/item/pickaxe, @@ -3860,12 +3843,9 @@ /turf/open/floor/carpet/red, /area/ship/crew/office) "Mb" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/corner_techfloor_grid/diagonal{ - dir = 4 - }, -/obj/effect/decal/cleanable/generic, /obj/machinery/light/small/directional/south, +/obj/machinery/power/ship_gravity, +/obj/structure/cable/yellow, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "Mc" = ( @@ -4488,10 +4468,8 @@ name = "butlers's uniform" }, /obj/item/clothing/under/suit/waiter/syndicate, -/obj/structure/closet/wall/red{ - dir = 8; - name = "Uniform Closet"; - pixel_x = 30 +/obj/structure/closet/wall/red/directional/east{ + name = "Uniform Closet" }, /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -4613,9 +4591,8 @@ /turf/open/floor/plasteel/tech, /area/ship/medical) "Tt" = ( -/obj/structure/closet/wall/orange{ - name = "Chemical Closet"; - pixel_y = 30 +/obj/structure/closet/wall/orange/directional/north{ + name = "Chemical Closet" }, /obj/item/storage/bag/chemistry, /obj/item/clothing/glasses/sunglasses/chemical, @@ -4738,10 +4715,7 @@ /obj/item/ammo_box/magazine/m10mm, /obj/item/kitchen/knife/combat/survival, /obj/item/kitchen/knife/combat/survival, -/obj/structure/closet/secure_closet/wall{ - dir = 8; - pixel_x = 32 - }, +/obj/structure/closet/secure_closet/wall/directional/east, /turf/open/floor/wood/walnut, /area/ship/bridge) "Uu" = ( @@ -4978,6 +4952,7 @@ dir = 1 }, /obj/effect/decal/cleanable/glass, +/obj/machinery/space_heater, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "WE" = ( @@ -5085,10 +5060,8 @@ /obj/item/radio, /obj/item/radio, /obj/item/radio, -/obj/structure/closet/wall{ - dir = 8; - name = "Uniform closet"; - pixel_x = 32 +/obj/structure/closet/wall/directional/east{ + name = "Uniform closet" }, /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -5212,10 +5185,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/structure/closet/secure_closet/freezer/wall{ - dir = 1; - name = "Kitchen Freezer"; - pixel_y = -30 +/obj/structure/closet/secure_closet/freezer/wall/directional/south{ + name = "Kitchen Freezer" }, /obj/effect/turf_decal/trimline/opaque/brown/filled/line, /obj/structure/table/wood/reinforced, @@ -5256,7 +5227,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/catwalk/over, -/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/ship/engineering) "Zj" = ( @@ -5279,6 +5249,42 @@ }, /turf/open/floor/plasteel/tech, /area/ship/cargo) +"Zq" = ( +/obj/structure/closet/wall/orange{ + name = "Engineering locker"; + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/orange/hidden{ + dir = 8 + }, +/obj/item/tank/internals/oxygen, +/obj/item/storage/toolbox/syndicate{ + name = "syndicate toolbox"; + pixel_x = -3; + pixel_y = 5 + }, +/obj/item/storage/belt/utility/syndicate, +/obj/structure/catwalk/over, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 8 + }, +/obj/item/storage/box/stockparts/t2, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/gloves/suns/yellow, +/obj/item/clothing/shoes/jackboots/suns, +/obj/item/clothing/suit/toggle/suns/workervest, +/obj/item/clothing/under/syndicate/suns/workerjumpsuit, +/obj/item/clothing/mask/gas/suns, +/obj/item/clothing/head/safety_helmet/suns, +/obj/item/clothing/glasses/meson/engine, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/ship/engineering) "Zu" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/turf_decal/siding/wood{ @@ -5805,7 +5811,7 @@ vh ZU gB It -vs +Zq yb mt Mb diff --git a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm index 523a524de9d0..d02d2a60319c 100644 --- a/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm +++ b/_maps/shuttles/syndicate/syndicate_cybersun_kansatsu.dmm @@ -86,10 +86,8 @@ /obj/item/storage/firstaid/medical, /obj/item/storage/firstaid/regular, /obj/item/storage/firstaid/regular, -/obj/structure/closet/wall/white{ - dir = 1; - name = "Medical Supplies"; - pixel_y = -32 +/obj/structure/closet/wall/white/directional/south{ + name = "Medical Supplies" }, /turf/open/floor/plasteel/dark, /area/ship/crew) @@ -1156,6 +1154,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/ship/engineering) "BS" = ( @@ -1379,9 +1380,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /obj/machinery/computer/cryopod/directional/west, /obj/machinery/camera/autoname{ dir = 4 @@ -1425,9 +1424,8 @@ /turf/closed/wall/mineral/plastitanium, /area/ship/bridge) "KP" = ( -/obj/structure/closet/wall{ - name = "emergency rum cabinet"; - pixel_y = 28 +/obj/structure/closet/wall/directional/north{ + name = "emergency rum cabinet" }, /obj/item/reagent_containers/food/drinks/bottle/rum, /obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{ @@ -1765,7 +1763,16 @@ dir = 1 }, /obj/machinery/light/small/directional/south, -/obj/machinery/space_heater, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/storage/belt/utility/full, +/obj/item/storage/belt/utility/full, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plating, /area/ship/engineering) "SL" = ( @@ -1794,14 +1801,10 @@ /area/ship/engineering) "Ul" = ( /obj/effect/decal/cleanable/oil, -/obj/structure/closet/secure_closet/engineering_personal, -/obj/item/clothing/gloves/color/yellow, -/obj/item/clothing/gloves/color/yellow, -/obj/item/storage/belt/utility/full, -/obj/item/storage/belt/utility/full, -/obj/item/clothing/glasses/welding, -/obj/item/clothing/glasses/welding, -/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plating, /area/ship/engineering) "UZ" = ( @@ -1874,9 +1877,7 @@ "VJ" = ( /obj/structure/chair/comfy/black, /obj/effect/turf_decal/corner/opaque/syndiered/bordercorner, -/obj/structure/closet/wall{ - pixel_y = 28 - }, +/obj/structure/closet/wall/directional/north, /turf/open/floor/plasteel/dark, /area/ship/crew) "Xa" = ( @@ -1976,6 +1977,7 @@ /obj/effect/turf_decal/spline/fancy/transparent/grey{ dir = 1 }, +/obj/machinery/space_heater, /turf/open/floor/plating, /area/ship/engineering) "ZI" = ( diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm index 0cd79289edec..cce460292a0c 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_hyena.dmm @@ -1486,10 +1486,8 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "zq" = ( -/obj/structure/closet/wall/red{ - dir = 8; - name = "uniform closet"; - pixel_x = 28 +/obj/structure/closet/wall/red/directional/east{ + name = "uniform closet" }, /obj/item/clothing/under/syndicate/gorlex, /obj/item/clothing/under/syndicate/gorlex, @@ -1558,9 +1556,7 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Af" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) @@ -2395,6 +2391,8 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/machinery/power/ship_gravity, +/obj/structure/cable, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Oy" = ( @@ -3161,9 +3159,7 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /turf/open/floor/plasteel/tech, /area/ship/hallway/central) "Yc" = ( diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 63bcd879d7e1..72925f49b230 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -376,12 +376,10 @@ /obj/item/clothing/shoes/combat, /obj/item/clothing/mask/gas/syndicate, /obj/item/clothing/suit/armor/vest/duster, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "Bridge Officer's Locker"; - req_access_txt = "57"; - pixel_y = -29 + req_access_txt = "57" }, /obj/item/melee/classic_baton/telescopic, /obj/item/clothing/neck/chameleon, @@ -834,10 +832,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/structure/closet/wall{ - dir = 4; - name = "Utility Closet"; - pixel_x = -30 +/obj/structure/closet/wall/directional/west{ + name = "Utility Closet" }, /obj/item/radio, /obj/item/radio, @@ -887,10 +883,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/machinery/advanced_airlock_controller{ dir = 8; pixel_x = 24 @@ -1160,10 +1153,8 @@ /turf/open/floor/circuit/green/off, /area/ship/maintenance/starboard) "lr" = ( -/obj/structure/closet/wall/orange{ - dir = 1; - name = "Engineering locker"; - pixel_y = -30 +/obj/structure/closet/wall/orange/directional/south{ + name = "Engineering locker" }, /obj/item/clothing/under/syndicate/coldres, /obj/item/clothing/suit/toggle/industrial, @@ -1411,11 +1402,9 @@ /obj/item/pickaxe, /obj/item/mining_scanner, /obj/item/mining_scanner, -/obj/structure/closet/wall{ - dir = 1; +/obj/structure/closet/wall/directional/south{ icon_door = "orange_wall"; - name = "Mining equipment"; - pixel_y = -29 + name = "Mining equipment" }, /obj/item/gps/mining, /turf/open/floor/plasteel/tech, @@ -1580,10 +1569,7 @@ dir = 8; name = "tactical chair" }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 29 - }, +/obj/structure/closet/firecloset/wall/directional/east, /obj/effect/turf_decal/techfloor{ dir = 4 }, @@ -2017,12 +2003,10 @@ /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/m10mm, /obj/item/storage/toolbox/ammo/c10mm, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "sec_wall"; name = "Ammo Locker"; - req_access_txt = "1"; - pixel_x = -29 + req_access_txt = "1" }, /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/smgm45, @@ -2301,12 +2285,10 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "secure_wall"; name = "Peacekeeping Locker"; - req_access_txt = "1"; - pixel_x = -29 + req_access_txt = "1" }, /obj/item/gun/energy/disabler, /obj/item/gun/energy/disabler, @@ -2704,8 +2686,8 @@ /obj/structure/cable{ icon_state = "0-2" }, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) @@ -2727,10 +2709,8 @@ icon_state = "1-2" }, /obj/structure/catwalk/over, -/obj/structure/closet/wall/orange{ - dir = 8; - name = "fuel locker"; - pixel_x = 28 +/obj/structure/closet/wall/orange/directional/east{ + name = "fuel locker" }, /obj/item/stack/sheet/mineral/plasma/five, /obj/item/stack/sheet/mineral/plasma/five, @@ -2907,12 +2887,10 @@ }, /obj/item/clothing/mask/gas/sechailer/swat, /obj/item/clothing/head/HoS/beret/syndicate, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "sec_wall"; name = "Sergeant's Locker"; - req_access_txt = "58"; - pixel_x = -29 + req_access_txt = "58" }, /obj/item/melee/classic_baton/telescopic, /obj/item/clothing/suit/armor/vest/blueshirt, @@ -3128,10 +3106,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/structure/closet/firecloset/wall{ - dir = 8; - pixel_x = 29 - }, +/obj/structure/closet/firecloset/wall/directional/east, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "Eb" = ( @@ -3241,13 +3216,11 @@ /turf/open/floor/mineral/plastitanium/red, /area/ship/hallway/central) "EL" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/computer/monitor, -/obj/structure/cable/yellow{ +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ icon_state = "0-2" }, +/obj/effect/turf_decal/industrial/outline/yellow, /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "EN" = ( @@ -3521,9 +3494,6 @@ icon_state = "1-2" }, /obj/structure/catwalk/over, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, /turf/open/floor/plating, /area/ship/engineering) "HF" = ( @@ -4001,10 +3971,8 @@ /obj/effect/turf_decal/trimline/transparent/bar/filled/line{ dir = 6 }, -/obj/structure/closet/wall/red{ - dir = 1; - name = "Bartender's locker"; - pixel_y = -29 +/obj/structure/closet/wall/red/directional/south{ + name = "Bartender's locker" }, /obj/item/clothing/shoes/cowboy/black, /obj/item/storage/belt/military/snack, @@ -4119,12 +4087,10 @@ /obj/structure/cable{ icon_state = "2-4" }, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "sec_wall"; name = "Armor Locker"; - req_access_txt = "1"; - pixel_x = -29 + req_access_txt = "1" }, /obj/item/storage/belt/military, /obj/item/storage/belt/military, @@ -5542,10 +5508,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 10 }, -/obj/structure/closet/wall{ - dir = 4; - name = "uniform closet"; - pixel_x = -30 +/obj/structure/closet/wall/directional/west{ + name = "uniform closet" }, /obj/effect/decal/cleanable/dirt/dust, /obj/item/storage/backpack/duffelbag/syndie, diff --git a/_maps/shuttles/syndicate/syndicate_litieguai.dmm b/_maps/shuttles/syndicate/syndicate_litieguai.dmm index e81231480dfb..1330108a6874 100644 --- a/_maps/shuttles/syndicate/syndicate_litieguai.dmm +++ b/_maps/shuttles/syndicate/syndicate_litieguai.dmm @@ -67,6 +67,12 @@ }, /turf/open/floor/plasteel/white, /area/ship/cargo) +"bz" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/power/ship_gravity, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ship/maintenance/port) "bD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -1021,11 +1027,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "firearms locker"; - req_access_txt = "5"; - pixel_y = 28 + req_access_txt = "5" }, /obj/item/ammo_box/magazine/m10mm/rubber, /obj/item/ammo_box/magazine/m10mm/rubber, @@ -1093,9 +1098,7 @@ /turf/open/floor/plasteel/freezer, /area/ship/crew/toilet) "wt" = ( -/obj/structure/closet/emcloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/emcloset/wall/directional/north, /obj/effect/turf_decal/number/two, /turf/open/floor/plating, /area/ship/maintenance/starboard) @@ -1379,7 +1382,6 @@ /area/ship/medical) "zT" = ( /obj/effect/turf_decal/number/zero, -/obj/machinery/light/small/directional/north, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Ah" = ( @@ -1403,12 +1405,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "armor locker"; - req_access_txt = "5"; - pixel_y = -28 + req_access_txt = "5" }, /obj/item/clothing/suit/armor/vest/marine/trauma, /obj/item/clothing/suit/armor/vest/marine/trauma, @@ -1490,12 +1490,10 @@ /obj/item/storage/belt/medical, /obj/item/healthanalyzer/advanced, /obj/item/hypospray/mkii/CMO, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "solgov_wall"; name = "chief medical officer's closet"; - req_access_txt = "40"; - pixel_x = -28 + req_access_txt = "40" }, /obj/item/storage/backpack/satchel/med, /obj/item/defibrillator/compact/loaded, @@ -1561,12 +1559,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/obj/structure/closet/secure_closet/wall{ - dir = 1; +/obj/structure/closet/secure_closet/wall/directional/south{ icon_state = "sec_wall"; name = "clothing locker"; - req_access_txt = "5"; - pixel_y = -28 + req_access_txt = "5" }, /obj/item/clothing/under/syndicate/medic, /obj/item/clothing/under/syndicate/medic, @@ -1650,6 +1646,9 @@ /obj/effect/turf_decal/industrial/warning/corner{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/ship/maintenance/port) "DX" = ( @@ -2292,7 +2291,7 @@ /obj/structure/cable{ icon_state = "2-9" }, -/turf/open/floor/plasteel/stairs/medium{ +/turf/open/floor/plasteel/stairs/mid{ dir = 1 }, /area/ship/storage/eva) @@ -2392,11 +2391,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/structure/closet/secure_closet/wall{ +/obj/structure/closet/secure_closet/wall/directional/north{ icon_state = "sec_wall"; name = "equipment locker"; - req_access_txt = "5"; - pixel_y = 28 + req_access_txt = "5" }, /obj/item/healthanalyzer/advanced, /obj/item/healthanalyzer/advanced, @@ -2790,6 +2788,10 @@ /obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/science) +"VN" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ship/maintenance/starboard) "WB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, @@ -2842,12 +2844,10 @@ /obj/item/areaeditor/shuttle, /obj/item/megaphone/command, /obj/item/clothing/glasses/sunglasses, -/obj/structure/closet/secure_closet/wall{ - dir = 4; +/obj/structure/closet/secure_closet/wall/directional/west{ icon_state = "solgov_wall"; name = "captain's closet"; - req_access_txt = "20"; - pixel_x = -28 + req_access_txt = "20" }, /obj/item/gun/ballistic/revolver, /obj/item/clothing/suit/armor/vest/capcarapace/cybersun, @@ -2873,10 +2873,7 @@ /obj/machinery/atmospherics/components/binary/pump/on/layer2{ dir = 8 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /turf/open/floor/plating, /area/ship/maintenance/port) "Xx" = ( @@ -2925,7 +2922,9 @@ dir = 4 }, /obj/item/storage/toolbox/electrical, -/obj/machinery/light/small/directional/south, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plating, /area/ship/maintenance/port) "YA" = ( @@ -3158,7 +3157,7 @@ HU ZC XL Yw -ZC +bz fp UG vx @@ -3172,7 +3171,7 @@ gL UG UG Ti -UO +VN zT kh UO @@ -3182,7 +3181,7 @@ ZC KS Xu ZC -UG +fp UG UG Ra @@ -3194,7 +3193,7 @@ tO Ra UG UG -UG +Ti UO wt xW diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 79c693817dda..19071dbc1baf 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -4,10 +4,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/item/clothing/suit/space/syndicate/black/engie, /obj/item/clothing/head/helmet/space/syndicate/black/engie, /turf/open/floor/plasteel/dark, @@ -135,10 +132,7 @@ /turf/open/floor/plating, /area/ship/engineering/atmospherics) "aG" = ( -/obj/structure/closet/secure_closet/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/secure_closet/wall/directional/east, /obj/item/kitchen/knife, /obj/item/cutting_board, /obj/item/clothing/under/suit/waiter/syndicate, @@ -410,6 +404,9 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/dark, /area/ship/engineering/atmospherics) "cC" = ( @@ -2323,9 +2320,7 @@ /obj/item/card/id/syndicate_command/lieutenant{ name = "lieutenant ID card" }, -/obj/structure/closet/secure_closet/wall{ - dir = 4; - pixel_x = -28; +/obj/structure/closet/secure_closet/wall/directional/west{ name = "spare cards locker"; req_access = list(3,150) }, @@ -2428,10 +2423,7 @@ /obj/effect/turf_decal/corner/opaque/syndiered{ dir = 10 }, -/obj/structure/closet/firecloset/wall{ - dir = 1; - pixel_y = -28 - }, +/obj/structure/closet/firecloset/wall/directional/south, /obj/effect/turf_decal/borderfloorblack{ dir = 1 }, @@ -4781,10 +4773,7 @@ /obj/effect/turf_decal/corner/opaque/syndiered{ dir = 9 }, -/obj/structure/closet/firecloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/firecloset/wall/directional/west, /obj/effect/turf_decal/borderfloorblack{ dir = 4 }, @@ -5212,10 +5201,7 @@ /obj/effect/turf_decal/corner/opaque/syndiered{ dir = 9 }, -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/effect/turf_decal/borderfloorblack{ dir = 4 }, @@ -5798,10 +5784,7 @@ /turf/open/floor/plasteel/mono/dark, /area/ship/hallway/port) "GN" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/item/clothing/suit/space/syndicate, /obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate, @@ -6173,10 +6156,7 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "IV" = ( -/obj/structure/closet/emcloset/wall{ - dir = 4; - pixel_x = -28 - }, +/obj/structure/closet/emcloset/wall/directional/west, /obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate, @@ -7103,6 +7083,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/plasteel/dark, /area/ship/engineering/atmospherics) "Pd" = ( @@ -7777,10 +7758,7 @@ "SA" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/closet/emcloset/wall{ - dir = 8; - pixel_x = 28 - }, +/obj/structure/closet/emcloset/wall/directional/east, /obj/item/clothing/suit/space/syndicate/black/engie, /obj/item/clothing/head/helmet/space/syndicate/black/engie, /turf/open/floor/plasteel/dark, @@ -8157,7 +8135,8 @@ /turf/open/floor/plasteel/tech, /area/ship/hallway/central) "UB" = ( -/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/power/ship_gravity, +/obj/structure/cable/yellow, /turf/open/floor/plasteel/dark, /area/ship/engineering/atmospherics) "UC" = ( @@ -8340,9 +8319,8 @@ /obj/effect/turf_decal/trimline/opaque/orange/line{ dir = 5 }, -/obj/structure/closet/wall/orange{ - name = "Chemical Closet"; - pixel_y = 28 +/obj/structure/closet/wall/orange/directional/north{ + name = "Chemical Closet" }, /obj/item/storage/bag/chemistry, /obj/item/reagent_containers/glass/beaker/large, @@ -8573,9 +8551,7 @@ dir = 5 }, /obj/effect/decal/cleanable/dirt/dust, -/obj/structure/closet/firecloset/wall{ - pixel_y = 28 - }, +/obj/structure/closet/firecloset/wall/directional/north, /obj/effect/turf_decal/borderfloorblack, /turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 44f0893cd9a5..e1590614b6be 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -67,8 +67,9 @@ #define ADMIN_COORDJMP(src) "[src ? "[COORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" #define ADMIN_VERBOSEJMP(src) "[src ? "[AREACOORD(src)] [ADMIN_JMP(src)]" : "nonexistent location"]" #define ADMIN_INDIVIDUALLOG(user) "(LOGS)" -/// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper). First you need to set the request_state variable to TRUE for the paper. +/// Displays "(SHOW)" in the chat, when clicked it tries to show atom(paper) or atom(photo). First you need to set the request_state variable to TRUE for the paper. #define ADMIN_SHOW_PAPER(atom) "(SHOW)" +#define ADMIN_SHOW_PHOTO(atom) "(PHOTO)" #define ADMIN_PUNISHMENT_BREAK_BONES "Break all bones" #define ADMIN_PUNISHMENT_LIGHTNING "Lightning bolt" diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index c428e1e7dd53..5c6f14c887eb 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -3,7 +3,6 @@ #define COLOR_INPUT_DISABLED "#F0F0F0" #define COLOR_INPUT_ENABLED "#D3B5B5" -//BeginWS #define COLOR_DARKMODE_DARKBACKGROUND "#383838" #define COLOR_DARKMODE_BACKGROUND "#272727" #define COLOR_DARKMODE_HEADER "#ffffff" @@ -23,7 +22,6 @@ #define WOOD_COLOR_BLACK "#332521" #define WOOD_COLOR_CHOCOLATE "#543C30" #define WOOD_COLOR_YELLOW "#E3994E" -//EndWS #define COLOR_WHITE "#FFFFFF" #define COLOR_OFF_WHITE "#FFF5ED" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 52a68098488a..d9edeb83202c 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -224,19 +224,29 @@ #define COMSIG_LIVING_GET_PULLED "living_start_pulled" ///////////////// - -#define COMSIG_ENTER_AREA "enter_area" //from base of area/Entered(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. -#define COMSIG_EXIT_AREA "exit_area" //from base of area/Exited(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. - -#define COMSIG_CLICK "atom_click" //from base of atom/Click(): (location, control, params, mob/user) -#define COMSIG_CLICK_SHIFT "shift_click" //from base of atom/ShiftClick(): (/mob) - #define COMPONENT_ALLOW_EXAMINATE 1 //Allows the user to examinate regardless of client.eye. -#define COMSIG_CLICK_CTRL "ctrl_click" //from base of atom/CtrlClickOn(): (/mob) -#define COMSIG_CLICK_ALT "alt_click" //from base of atom/AltClick(): (/mob) -#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" //from base of atom/CtrlShiftClick(/mob) -#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" //from base of atom/MouseDrop(): (/atom/over, /mob/user) +//from base of area/Entered(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. +#define COMSIG_ENTER_AREA "enter_area" +//from base of area/Exited(): (/area). Sent to "area-sensitive" movables, see __DEFINES/traits.dm for info. +#define COMSIG_EXIT_AREA "exit_area" +//from base of atom/Click(): (location, control, params, mob/user) +#define COMSIG_CLICK "atom_click" +//from base of atom/ShiftClick(): (/mob) +#define COMSIG_CLICK_SHIFT "shift_click" +//Allows the user to examinate regardless of client.eye. + #define COMPONENT_ALLOW_EXAMINATE 1 +//from base of atom/CtrlClickOn(): (/mob) +#define COMSIG_CLICK_CTRL "ctrl_click" +//from base of atom/AltClick(): (/mob) +#define COMSIG_CLICK_ALT "alt_click" +//from base of atom/CtrlShiftClick(/mob) +#define COMSIG_CLICK_CTRL_SHIFT "ctrl_shift_click" +///from base of atom/CtrlShiftRightClick(/mob) +#define COMSIG_CLICK_CTRL_SHIFT_RIGHT "ctrl_shift_right_click" +//from base of atom/MouseDrop(): (/atom/over, /mob/user) +#define COMSIG_MOUSEDROP_ONTO "mousedrop_onto" #define COMPONENT_NO_MOUSEDROP 1 -#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" //from base of atom/MouseDrop_T: (/atom/from, /mob/user) +//from base of atom/MouseDrop_T: (/atom/from, /mob/user) +#define COMSIG_MOUSEDROPPED_ONTO "mousedropped_onto" ///from base of area/proc/power_change(): () #define COMSIG_AREA_POWER_CHANGE "area_power_change" @@ -535,7 +545,7 @@ #define COMSIG_TOOL_IN_USE "tool_in_use" ///from base of [/obj/item/proc/tool_check_callback]: (mob/living/user) #define COMSIG_TOOL_START_USE "tool_start_use" ///from base of [/obj/item/proc/tool_start_check]: (mob/living/user) #define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/item/proc/disableEmbedding]: -#define COMSIG_MINE_TRIGGERED "minegoboom" ///from [/obj/effect/mine/proc/triggermine]: +#define COMSIG_MINE_TRIGGERED "minegoboom" ///from [/obj/item/mine/proc/trigger_mine]: ///from [/obj/structure/closet/supplypod/proc/endlaunch]: #define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom" @@ -608,7 +618,7 @@ #define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" // sent to targets during the process_hit proc of projectiles #define COMSIG_PROJECTILE_RANGE_OUT "projectile_range_out" // sent to targets during the process_hit proc of projectiles #define COMSIG_EMBED_TRY_FORCE "item_try_embed" // sent when trying to force an embed (mainly for projectiles, only used in the embed element) - + #define COMPONENT_EMBED_SUCCESS (1<<1) #define COMSIG_PELLET_CLOUD_INIT "pellet_cloud_init" // sent to targets during the process_hit proc of projectiles // /obj/mecha signals diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm new file mode 100644 index 000000000000..0256ed11bedd --- /dev/null +++ b/code/__DEFINES/guns.dm @@ -0,0 +1,16 @@ +//weapon manufacturers +#define MANUFACTURER_NONE null +#define MANUFACTURER_SHARPLITE "the Sharplite Defense logo" +#define MANUFACTURER_SHARPLITE_NEW "the Nanotrasen-Sharplite logo" +#define MANUFACTURER_HUNTERSPRIDE "the Hunter's Pride Arms and Ammunition logo" +#define MANUFACTURER_SOLARARMORIES "the Solarbundswaffenkammer emblem" +#define MANUFACTURER_SCARBOROUGH "the Scarborough Arms logo" +#define MANUFACTURER_EOEHOMA "the Eoehoma Firearms emblem" +#define MANUFACTURER_NANOTRASEN_OLD "an outdated Nanotrasen logo" +#define MANUFACTURER_NANOTRASEN "the Nanotrasen logo" +#define MANUFACTURER_BRAZIL "a green flag with a blue circle and a yellow diamond around it" +#define MANUFACTURER_INTEQ "an orange crest with the letters 'IRMG'" +#define MANUFACTURER_MINUTEMAN "the Lanchester City Firearms Plant logo" +#define MANUFACTURER_DONKCO "the Donk! Co. logo" +#define MANUFACTURER_PGF "the Etherbor Industries emblem" +#define MANUFACTURER_IMPORT "Lanchester Import Co." diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index c0a4d30aba8b..80c400e5864c 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -167,7 +167,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isgrenade(A) (istype(A, /obj/item/grenade)) -#define islandmine(A) (istype(A, /obj/effect/mine)) +#define islandmine(A) (istype(A, /obj/item/mine)) #define issupplypod(A) (istype(A, /obj/structure/closet/supplypod)) diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index 97b9c9d82aad..50a16edc350a 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -31,6 +31,7 @@ #define COMSIG_KB_CLIENT_GETHELP_DOWN "keybinding_client_gethelp_down" #define COMSIG_KB_CLIENT_SCREENSHOT_DOWN "keybinding_client_screenshot_down" #define COMSIG_KB_CLIENT_MINIMALHUD_DOWN "keybinding_client_minimalhud_down" +#define COMSIG_KB_CLIENT_FULLSCREEN_DOWN "keybinding_client_fullscreen_down" //Communication #define COMSIG_KB_CLIENT_OOC_DOWN "keybinding_client_ooc_down" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index ad9d5ae5abc8..f0b505114646 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -335,7 +335,7 @@ #define SHADOW_SPECIES_LIGHT_THRESHOLD 0.2 //MINOR TWEAKS/MISC -#define AGE_MIN 17 //youngest a character can be +#define AGE_MIN 18 //youngest a character can be #define AGE_MAX 85 //oldest a character can be #define AGE_MINOR 20 //legal age of space drinking and smoking #define WIZARD_AGE_MIN 30 //youngest a wizard can be diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm index 5623b5f52b4a..5c35c1f6b5a9 100644 --- a/code/__DEFINES/wires.dm +++ b/code/__DEFINES/wires.dm @@ -51,4 +51,8 @@ #define WIRE_PRIZEVEND "Emergency Prize Vend" #define WIRE_RESETOWNER "Reset Owner" #define WIRE_AGELIMIT "Age Limit" +#define WIRE_PIN "Trigger Pin" +#define WIRE_FUSE "Fuse" +#define WIRE_RESET "Factory Reset" +#define WIRE_DELAYBOOM "Delayed Boom" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 376e023940de..28e2464aa8a9 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -24,7 +24,7 @@ #define LAZYCLEARLIST(L) if(L) L.Cut() #define SANITIZE_LIST(L) (islist(L) ? L : list()) #define reverseList(L) reverseRange(L.Copy()) -#define LAZYADDASSOC(L, K, V) if(!L) { L = list(); } L[K] += list(V); +#define LAZYADDASSOC(L, K, V) if(!L) { L = list(); } L[K] += V; #define LAZYADDASSOCLIST(L, K, V) if(!L) { L = list(); } L[K] += list(V); #define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; } #define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index fdeadc13b61a..f307aa952804 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -171,13 +171,6 @@ if(!findname(.)) break -/proc/random_unique_moth_name(attempts_to_find_unique_name=10) - for(var/i in 1 to attempts_to_find_unique_name) - . = capitalize(pick(GLOB.moth_first)) + " " + capitalize(pick(GLOB.moth_last)) - - if(!findname(.)) - break - /proc/random_unique_squid_name(attempts_to_find_unique_name=10) for(var/i in 1 to attempts_to_find_unique_name) . = capitalize(squid_name()) @@ -217,6 +210,12 @@ GLOBAL_LIST_INIT(skin_tones, sortList(list( "african2" ))) +/proc/pick_species_adjective(mob/living/carbon/human/H) + if(isipc(H)) + return pick(GLOB.ipc_preference_adjectives) + else + return pick(GLOB.preference_adjectives) + GLOBAL_LIST_EMPTY(species_list) /proc/age2agedescription(age) diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index a6f48af9338c..4348460c24d7 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -7,9 +7,6 @@ /proc/plasmaman_name() return "[pick(GLOB.plasmaman_names)] \Roman[rand(1,99)]" -/proc/moth_name() - return "[pick(GLOB.moth_first)] [pick(GLOB.moth_last)]" - /proc/squid_name() return "[pick(GLOB.squid_names)][pick("-", "", " ")][capitalize(pick(GLOB.squid_names) + pick(GLOB.squid_names))]" diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 0091b88fa15f..59f25efe9823 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -138,7 +138,7 @@ GLOBAL_LIST_INIT(common_loot, list( //common: basic items ) = 1, list(//misc - /obj/item/radio/off = 1, + /obj/item/radio = 1, /obj/item/extinguisher = 1, /obj/item/tank/internals/emergency_oxygen = 1, /obj/item/bodybag = 1, diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index ecc1acb6f0e1..ff452072fbec 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -27,6 +27,8 @@ GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) GLOBAL_LIST_INIT(adverbs, world.file2list("strings/names/adverbs.txt")) GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt")) +GLOBAL_LIST_INIT(preference_adjectives, world.file2list("strings/preference_adjectives.txt")) +GLOBAL_LIST_INIT(ipc_preference_adjectives, world.file2list("strings/ipc_preference_adjectives.txt")) GLOBAL_LIST_INIT(dream_strings, world.file2list("strings/dreamstrings.txt")) //loaded on startup because of " //would include in rsc if ' was used diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 81ce3ceec1eb..993026c0d5e0 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -356,7 +356,6 @@ /** * Control+Shift click - * Unused except for AI */ /mob/proc/CtrlShiftClickOn(atom/A) A.CtrlShiftClick(src) diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index f163553f5f9b..3e044a441c0a 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -164,7 +164,7 @@ SUBSYSTEM_DEF(explosions) // 5 explosion power is a (0, 1, 3) explosion. // 1 explosion power is a (0, 0, 1) explosion. -/proc/explosion(atom/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = TRUE, ignorecap = FALSE, flame_range = 0, silent = FALSE, smoke = FALSE) +/proc/explosion(atom/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = TRUE, ignorecap = FALSE, flame_range = 0, silent = FALSE, smoke = FALSE, gentle = FALSE) . = SSexplosions.explode(arglist(args)) #define CREAK_DELAY 5 SECONDS //Time taken for the creak to play after explosion, if applicable. @@ -177,7 +177,7 @@ SUBSYSTEM_DEF(explosions) #define FREQ_UPPER 40 //The upper limit for the randomly selected frequency. #define FREQ_LOWER 25 //The lower of the above. -/datum/controller/subsystem/explosions/proc/explode(atom/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog, ignorecap, flame_range, silent, smoke) +/datum/controller/subsystem/explosions/proc/explode(atom/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog, ignorecap, flame_range, silent, smoke, gentle) epicenter = get_turf(epicenter) if(!epicenter) return @@ -550,6 +550,8 @@ SUBSYSTEM_DEF(explosions) var/throw_dir = L[2] var/max_range = L[3] for(var/atom/movable/A in T) + if(QDELETED(A)) + continue if(!A.anchored && A.move_resist != INFINITY) var/atom_throw_range = rand(throw_range, max_range) var/turf/throw_at = get_ranged_target_turf(A, throw_dir, atom_throw_range) diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm index b96a4944c812..93852230b244 100644 --- a/code/controllers/subsystem/overmap.dm +++ b/code/controllers/subsystem/overmap.dm @@ -274,7 +274,7 @@ SUBSYSTEM_DEF(overmap) var/datum/map_zone/mapzone = SSmapping.create_map_zone(encounter_name) var/datum/virtual_level/vlevel = SSmapping.create_virtual_level( encounter_name, - list(ZTRAIT_MINING = TRUE, ZTRAIT_BASETURF = dynamic_datum.default_baseturf), + list(ZTRAIT_MINING = TRUE, ZTRAIT_BASETURF = dynamic_datum.default_baseturf, ZTRAIT_GRAVITY = dynamic_datum.gravity), mapzone, dynamic_datum.vlevel_width, dynamic_datum.vlevel_height, diff --git a/code/controllers/subsystem/pai.dm b/code/controllers/subsystem/pai.dm index 7c2bf71cad6a..b7ef35e63663 100644 --- a/code/controllers/subsystem/pai.dm +++ b/code/controllers/subsystem/pai.dm @@ -146,7 +146,7 @@ SUBSYSTEM_DEF(pai) continue if(!(ROLE_PAI in G.client.prefs.be_special)) continue - to_chat(G, "[user] is requesting a pAI personality! Use the pAI button to submit yourself as one.") + to_chat(G, "[user.real_name] is requesting a pAI personality! Use the pAI button to submit yourself as one.") addtimer(CALLBACK(src, PROC_REF(spam_again)), spam_delay) var/list/available = list() for(var/datum/paiCandidate/c in SSpai.candidates) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index c27e0bd1b7ae..60b4db1d1ce9 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -182,7 +182,7 @@ message.maptext = complete_text // View the message - LAZYADDASSOC(owned_by.seen_messages, message_loc, src) + LAZYADDASSOCLIST(owned_by.seen_messages, message_loc, src) owned_by.images |= message animate(message, alpha = 255, time = CHAT_MESSAGE_SPAWN_TIME) diff --git a/code/datums/components/gunpoint.dm b/code/datums/components/gunpoint.dm index 26bbb641a8eb..0aa1a5a1e8cc 100644 --- a/code/datums/components/gunpoint.dm +++ b/code/datums/components/gunpoint.dm @@ -40,7 +40,7 @@ if(istype(weapon, /obj/item/gun/ballistic/rocketlauncher) && weapon.chambered) shooter.client.give_award(/datum/award/achievement/misc/rocket_holdup, shooter) - target.do_alert_animation(target) + target.do_alert_animation() target.playsound_local(target.loc, 'sound/machines/chime.ogg', 50, TRUE) SEND_SIGNAL(target, COMSIG_ADD_MOOD_EVENT, "gunpoint", /datum/mood_event/gunpoint) diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index e7f5174c9102..19b1e2094993 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -1,20 +1,19 @@ -/* - * This component is used when you want to create a bunch of shrapnel or projectiles (say, shrapnel from a fragmentation grenade, or buckshot from a shotgun) from a central point, - * without necessarily printing a separate message for every single impact. This component should be instantiated right when you need it (like the moment of firing), then activated - * by signal. - * - * Pellet cloud currently works on two classes of sources: directed (ammo casings), and circular (grenades, landmines). - * -Directed: This means you're shooting multiple pellets, like buckshot. If an ammo casing is defined as having multiple pellets, it will automatically create a pellet cloud - * and call COMSIG_PELLET_CLOUD_INIT (see [/obj/item/ammo_casing/proc/fire_casing]). Thus, the only projectiles fired will be the ones fired here. - * The magnitude var controls how many pellets are created. - * -Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_PRIME or landmine triggers COMSIG_MINE_TRIGGERED. - * The magnitude var controls how big the detonation radius is (the bigger the magnitude, the more shrapnel is created). Grenades can be covered with bodies to reduce shrapnel output. - * - * Once all of the fired projectiles either hit a target or disappear due to ranging out/whatever else, we resolve the list of all the things we hit and print aggregate messages so we get - * one "You're hit by 6 buckshot pellets" vs 6x "You're hit by the buckshot blah blah" messages. - * - * Note that this is how all guns handle shooting ammo casings with multiple pellets, in case such a thing comes up. -*/ + + //This component is used when you want to create a bunch of shrapnel or projectiles (say, shrapnel from a fragmentation grenade, or buckshot from a shotgun) from a central point, + //without necessarily printing a separate message for every single impact. This component should be instantiated right when you need it (like the moment of firing), then activated + //by signal. + + //Pellet cloud currently works on two classes of sources: directed (ammo casings), and circular (grenades, landmines). + //Directed: This means you're shooting multiple pellets, like buckshot. If an ammo casing is defined as having multiple pellets, it will automatically create a pellet cloud + //and call COMSIG_PELLET_CLOUD_INIT (see [/obj/item/ammo_casing/proc/fire_casing]). Thus, the only projectiles fired will be the ones fired here. + //The magnitude var controls how many pellets are created. + //Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_PRIME or landmine triggers COMSIG_MINE_TRIGGERED. + //The magnitude var controls how big the detonation radius is (the bigger the magnitude, the more shrapnel is created). Grenades can be covered with bodies to reduce shrapnel output. + + //Once all of the fired projectiles either hit a target or disappear due to ranging out/whatever else, we resolve the list of all the things we hit and print aggregate messages so we get + //one "You're hit by 6 buckshot pellets" vs 6x "You're hit by the buckshot blah blah" messages. + + //Note that this is how all guns handle shooting ammo casings with multiple pellets, in case such a thing comes up. /datum/component/pellet_cloud /// What's the projectile path of the shrapnel we're shooting? @@ -83,12 +82,13 @@ /datum/component/pellet_cloud/UnregisterFromParent() UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) -/** - * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) - * - * Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing()] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. - * The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. - */ + +//create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) +// +//Honestly this is mostly just a rehash of [/obj/item/ammo_casing/proc/fire_casing()] for pellet counts > 1, except this lets us tamper with the pellets and hook onto them for tracking purposes. +//The arguments really don't matter, this proc is triggered by COMSIG_PELLET_CLOUD_INIT which is only for this really, it's just a big mess of the state vars we need for doing the stuff over here. + + /datum/component/pellet_cloud/proc/create_casing_pellets(obj/item/ammo_casing/shell, atom/target, mob/living/user, fired_from, randomspread, spread, zone_override, params, distro) shooter = user var/targloc = get_turf(target) @@ -111,16 +111,27 @@ if(i != num_pellets) shell.newshot() -/** - * create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. - * - * Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, while landmines do not (obviously, it's a landmine!). See [/datum/component/pellet_cloud/proc/handle_martyrs()] - */ -/datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/lanced_by) +//create_blast_pellets() is for when we have a central point we want to shred the surroundings of with a ring of shrapnel, namely frag grenades and landmines. + +//Note that grenades have extra handling for someone throwing themselves/being thrown on top of it, see [/datum/component/pellet_cloud/proc/handle_martyrs] +//Landmines just have a small check for [/obj/item/mine/pressure/explosive/shrapnel/var/shred_triggerer], and spawn extra shrapnel for them if so + +//Arguments: +////O- Our parent, the thing making the shrapnel obviously (grenade or landmine) +////punishable_triggerer- For grenade lances or people who step on the landmines (if we shred the triggerer), we spawn extra shrapnel for them in addition to the normal spread +// +/datum/component/pellet_cloud/proc/create_blast_pellets(obj/O, mob/living/punishable_triggerer) var/atom/A = parent if(isgrenade(parent)) // handle_martyrs can reduce the radius and thus the number of pellets we produce if someone dives on top of a frag grenade - handle_martyrs(lanced_by) // note that we can modify radius in this proc + handle_martyrs(punishable_triggerer) // note that we can modify radius in this proc + else if(istype(parent, /obj/item/mine/pressure/explosive)) + var/obj/item/mine/pressure/explosive/triggered_mine = parent + if(triggered_mine.shred_triggerer && istype(punishable_triggerer)) // free shrapnel for the idiot who stepped on it if we're a mine that shreds the triggerer + pellet_delta += radius // so they don't count against the later total + if(punishable_triggerer.loc == triggered_mine.loc)//only trigger this if they're actually on the tile + for(var/i in 1 to radius) + pew(punishable_triggerer, TRUE) if(radius < 1) return @@ -132,27 +143,27 @@ var/turf/shootat_turf = T pew(shootat_turf) -/** - * handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel - * - * Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list - * Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs - * We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies - * - * Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later - */ -/datum/component/pellet_cloud/proc/handle_martyrs(mob/living/lanced_by) + +// handle_martyrs() is used for grenades that shoot shrapnel to check if anyone threw themselves/were thrown on top of the grenade, thus absorbing a good chunk of the shrapnel +// +// Between the time the grenade is armed and the actual detonation, we set var/list/bodies to the list of mobs currently on the new tile, as if the grenade landed on top of them, tracking if any of them move off the tile and removing them from the "under" list +// Once the grenade detonates, handle_martyrs() is called and gets all the new mobs on the tile, and add the ones not in var/list/bodies to var/list/martyrs +// We then iterate through the martyrs and reduce the shrapnel magnitude for each mob on top of it, shredding each of them with some of the shrapnel they helped absorb. This can snuff out all of the shrapnel if there's enough bodies + +// Note we track anyone who's alive and client'd when they get shredded in var/list/purple_hearts, for achievement checking later + +/datum/component/pellet_cloud/proc/handle_martyrs(mob/living/punishable_triggerer) var/magnitude_absorbed var/list/martyrs = list() var/self_harm_radius_mult = 3 - if(lanced_by && prob(60)) - to_chat(lanced_by, "Your plan to whack someone with a grenade on a stick backfires on you, literally!") + if(punishable_triggerer && prob(60)) + to_chat(punishable_triggerer, "Your plan to whack someone with a grenade on a stick backfires on you, literally!") self_harm_radius_mult = 1 // we'll still give the guy who got hit some extra shredding, but not 3*radius pellet_delta += radius for(var/i in 1 to radius) - pew(lanced_by) // thought you could be tricky and lance someone with no ill effects!! + pew(punishable_triggerer) // thought you could be tricky and lance someone with no ill effects!! for(var/mob/living/body in get_turf(parent)) if(body == shooter) @@ -209,11 +220,11 @@ finalize() /// Minor convenience function for creating each shrapnel piece with circle explosions, mostly stolen from the MIRV component -/datum/component/pellet_cloud/proc/pew(atom/target, spread=0) +/datum/component/pellet_cloud/proc/pew(atom/target, landmine_victim) var/obj/projectile/P = new projectile_type(get_turf(parent)) //Shooting Code: - P.spread = spread + P.spread = 0 P.original = target P.fired_from = parent P.firer = parent // don't hit ourself that would be really annoying @@ -224,6 +235,8 @@ RegisterSignal(P, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_PARENT_QDELETING), PROC_REF(pellet_range)) pellets += P P.fire() + if(landmine_victim) + P.process_hit(get_turf(target), target) ///All of our pellets are accounted for, time to go target by target and tell them how many things they got hit by. /datum/component/pellet_cloud/proc/finalize() @@ -286,7 +299,9 @@ /// Someone who was originally "under" the grenade has moved off the tile and is now eligible for being a martyr and "covering" it /datum/component/pellet_cloud/proc/on_target_qdel(atom/target) + SIGNAL_HANDLER + UnregisterSignal(target, COMSIG_PARENT_QDELETING) targets_hit -= target LAZYREMOVE(bodies, target) - purple_hearts -= target + LAZYREMOVE(purple_hearts, target) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index ced0b0e79ff7..bb79bbd282fa 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -227,6 +227,9 @@ if(!len) to_chat(M, "You failed to pick up anything with [parent]!") return + if(I.anchored) + to_chat(M, "\The [I] is stuck to the ground and cannot be picked up by [parent]!") + return var/datum/progressbar/progress = new(M, len, I.loc) var/list/rejections = list() while(do_after(M, 10, TRUE, parent, FALSE, CALLBACK(src, PROC_REF(handle_mass_pickup), things, I.loc, rejections, progress))) diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index 9b427b6b80c5..11072c771bab 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -176,23 +176,20 @@ * If we hit a valid target (carbon or closed turf), we create the shrapnel_type object and immediately call tryEmbed() on it, targeting what we impacted. That will lead * it to call tryForceEmbed() on its own embed element (it's out of our hands here, our projectile is done), where it will run through all the checks it needs to. */ -/datum/element/embed/proc/checkEmbedProjectile(obj/projectile/P, atom/movable/firer, atom/hit) +/datum/element/embed/proc/checkEmbedProjectile(obj/projectile/P, atom/movable/firer, atom/hit, angle, hit_zone) SIGNAL_HANDLER - if(!iscarbon(hit) && !isclosedturf(hit)) + if(!iscarbon(hit)) Detach(P) return // we don't care var/obj/item/payload = new payload_type(get_turf(hit)) - var/did_embed - if(iscarbon(hit)) - var/mob/living/carbon/C = hit - var/obj/item/bodypart/limb = C.get_bodypart(C.check_limb_hit(P.def_zone)) - did_embed = payload.tryEmbed(limb) - else - did_embed = payload.tryEmbed(hit) + var/mob/living/carbon/C = hit + var/obj/item/bodypart/limb = C.get_bodypart(hit_zone) + if(!limb) + limb = C.get_bodypart() - if(!did_embed) + if(!payload.tryEmbed(limb)) payload.failedEmbed() Detach(P) @@ -213,7 +210,6 @@ var/obj/item/bodypart/limb var/mob/living/carbon/C - var/turf/closed/T if(!forced && !prob(embed_chance)) return @@ -225,11 +221,8 @@ hit_zone = limb.body_zone else if(isbodypart(target)) limb = target + hit_zone = limb.body_zone C = limb.owner - else if(isclosedturf(target)) - T = target if(C) return checkEmbedMob(I, C, hit_zone, forced=TRUE) - else if(T) - return checkEmbedOther(I, T, forced=TRUE) diff --git a/code/datums/guestbook.dm b/code/datums/guestbook.dm new file mode 100644 index 000000000000..99104f09d715 --- /dev/null +++ b/code/datums/guestbook.dm @@ -0,0 +1,148 @@ +/** + * THE GUESTBOOK DATUM // ripped straight from mojave. + * + * Essentially, this datum handles the people that a given human knows, + * to handle getting the correct names on examine and saycode. + */ +/datum/guestbook + /// Associative list of known guests, real_name = known_name + var/list/known_names + +/datum/guestbook/Destroy(force) + known_names = null + return ..() + +/datum/guestbook/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Guestbook", "[user.real_name]'s Guestbook") + ui.set_autoupdate(FALSE) + ui.open() + +/datum/guestbook/ui_state(mob/user) + return GLOB.always_state + +/datum/guestbook/ui_data(mob/user) + var/list/data = list() + var/list/names = list() + for(var/real_name in known_names) + var/given_name = LAZYACCESS(known_names, real_name) + names += list(list("real_name" = real_name, "given_name" = given_name)) + data["names"] = names + return data + +/datum/guestbook/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return . + switch(action) + if("rename_guest") + var/real_name = params["real_name"] + var/new_name = params["new_name"] + new_name = reject_bad_name(new_name, max_length = 42) + if(!new_name) + to_chat(usr, span_warning("That's a pretty terrible name. You can do better.")) + return FALSE + if(!rename_guest(usr, null, real_name, new_name, silent = FALSE)) + return FALSE + return TRUE + if("delete_guest") + var/real_name = params["real_name"] + if(!remove_guest(usr, null, real_name, silent = FALSE)) + return FALSE + return TRUE + +/datum/guestbook/proc/try_add_guest(mob/user, mob/living/carbon/human/guest, silent = FALSE) + if(user == guest) + if(!silent) + to_chat(user, span_warning("That's you! You already know yourself plenty.")) + return FALSE + if(!visibility_checks(user, guest, silent)) + return FALSE + var/given_name = input(user, "What name do you want to give to [guest]?", "Guestbook Name", guest.get_visible_name()) + if(!given_name) + if(!silent) + to_chat(user, span_warning("Nevermind.")) + return FALSE + given_name = reject_bad_name(given_name) + if(!given_name) + if(!silent) + to_chat(user, span_warning("That's a pretty terrible name. You can do better.")) + return FALSE + if(!visibility_checks(user, guest, silent)) + return FALSE + var/face_name = guest.get_face_name("ForgetMeNot") + if(LAZYACCESS(known_names, face_name)) + if(!rename_guest(user, guest, face_name, given_name, silent)) + return FALSE + else + if(!add_guest(user, guest, face_name, given_name, silent)) + return FALSE + return TRUE + +/datum/guestbook/proc/add_guest(mob/user, mob/living/carbon/guest, real_name, given_name, silent = TRUE) + //Already exists, should be handled by rename_guest() + var/existing_name = LAZYACCESS(known_names, real_name) + if(existing_name) + if(!silent) + to_chat(user, span_warning("You already know them as \"[existing_name]\".")) + return FALSE + LAZYADDASSOC(known_names, real_name, given_name) + if(!silent) + to_chat(user, span_notice("You memorize the face of [guest] as \"[given_name]\".")) + return TRUE + +/datum/guestbook/proc/rename_guest(mob/user, mob/living/carbon/guest, real_name, given_name, silent = TRUE) + var/old_name = LAZYACCESS(known_names, real_name) + if(!old_name) + return FALSE + known_names[real_name] = given_name + if(!silent) + to_chat(user, span_notice("You re-memorize the face of \"[old_name]\" as \"[given_name]\".")) + return TRUE + +/datum/guestbook/proc/try_remove_guest(mob/user, mob/living/carbon/human/guest, silent = FALSE) + if(user == guest) + if(!silent) + to_chat(user, span_warning("That's you! You'll never forget yourself.")) + return + if(!visibility_checks(user, guest, silent)) + return FALSE + var/face_name = guest.get_face_name("ForgetMeNot") + if(!remove_guest(user, guest, face_name, silent)) + return FALSE + return TRUE + +/datum/guestbook/proc/remove_guest(mob/user, mob/living/carbon/guest, real_name, silent = TRUE) + //Already exists, should be handled by rename_guest() + var/existing_name = LAZYACCESS(known_names, real_name) + if(!existing_name) + if(!silent) + to_chat(user, span_warning("You don't know them in the first place.")) + return FALSE + LAZYREMOVE(known_names, real_name) + if(!silent) + to_chat(user, span_notice("You forget the face of \"[existing_name]\".")) + return TRUE + +/datum/guestbook/proc/get_known_name(mob/user, mob/living/carbon/guest, real_name) + if(user == guest || isAdminObserver(user)) + return real_name + return LAZYACCESS(known_names, real_name) + +/datum/guestbook/proc/visibility_checks(mob/user, mob/living/carbon/human/guest, silent = FALSE) + if(QDELETED(guest)) + if(!silent) + to_chat(user, span_warning("What?")) + return FALSE + var/visible_name = guest.get_visible_name("") + var/face_name = guest.get_face_name("") + if(!visible_name || !face_name) + if(!silent) + to_chat(user, span_warning("You can't see their face very well!")) + return FALSE + if(get_dist(user, guest) > 4) + if(!silent) + to_chat(user, span_warning("You need to take a closer look at them!")) + return FALSE + return TRUE diff --git a/code/datums/keybinding/client.dm b/code/datums/keybinding/client.dm index e4b940c7f722..3e78c4ac4c23 100644 --- a/code/datums/keybinding/client.dm +++ b/code/datums/keybinding/client.dm @@ -45,3 +45,39 @@ return user.mob.button_pressed_F12() return TRUE + +/client + var/fullscreen = FALSE +/datum/keybinding/client/t_fullscreen + hotkey_keys = list("F11") + name = "change_fullscreen" + full_name = "Toggle Fullscreen" + description = "Change window to Fullscreen or back" + keybind_signal = COMSIG_KB_CLIENT_FULLSCREEN_DOWN + +/datum/keybinding/client/t_fullscreen/down(client/C) + . = ..() + C.toggle_fullscreen() + + +/client/verb/toggle_fullscreen() + set name = "Toggle Fullscreen" + set category = "OOC" + + fullscreen = !fullscreen + + if (fullscreen) + winset(usr, "mainwindow", "on-size=") + winset(usr, "mainwindow", "titlebar=false") + winset(usr, "mainwindow", "can-resize=false") + winset(usr, "mainwindow", "menu=") + winset(usr, "mainwindow", "is-maximized=false") + winset(usr, "mainwindow", "is-maximized=true") + else + winset(usr, "mainwindow", "titlebar=true") + winset(usr, "mainwindow", "can-resize=true") + winset(usr, "mainwindow", "menu=menu") + winset(usr, "mainwindow", "is-maximized=false") + winset(usr, "mainwindow", "on-size=fitviewport") + + fit_viewport() diff --git a/code/datums/mapgen/planetary/LavaGenerator.dm b/code/datums/mapgen/planetary/LavaGenerator.dm index c244f3ef2560..ef66cca1103f 100644 --- a/code/datums/mapgen/planetary/LavaGenerator.dm +++ b/code/datums/mapgen/planetary/LavaGenerator.dm @@ -84,7 +84,7 @@ /datum/biome/lavaland open_turf_types = list( - /turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit = 1 + /turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit = 1, ) flora_spawn_chance = 1 flora_spawn_list = list( @@ -93,17 +93,22 @@ /obj/structure/flora/ash/fern = 5, /obj/structure/flora/ash/fireblossom = 1, /obj/structure/flora/ash/puce = 5, + /obj/item/mine/pressure/explosive/rusty/live = 1, ) feature_spawn_chance = 0.3 feature_spawn_list = list( + /obj/structure/flora/rock/hell = 20, + /obj/structure/elite_tumor = 4, + /obj/structure/geyser/random = 4, + /obj/effect/spawner/lootdrop/anomaly/lava = 2, /obj/structure/flora/rock/hell = 14, /obj/structure/vein = 5, /obj/structure/vein/classtwo = 2, /obj/structure/elite_tumor = 2, /obj/structure/geyser/random = 2, /obj/structure/vein/classthree = 1, + /obj/effect/spawner/minefield = 1, /obj/effect/spawner/lootdrop/anomaly/lava = 1, - ) mob_spawn_chance = 4 mob_spawn_list = list( @@ -250,14 +255,17 @@ /obj/structure/flora/ash/cacti = 1, /obj/structure/flora/ash/tall_shroom = 2, /obj/structure/flora/ash/fern = 2, - /obj/structure/flora/ash/puce = 2 + /obj/structure/flora/ash/puce = 2, + /obj/item/mine/proximity/explosive/live = 1, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) /datum/biome/cave/lavaland/rocky open_turf_types = list(/turf/open/floor/plating/asteroid/purple = 1) flora_spawn_list = list( - /obj/structure/flora/rock/pile/lava = 1, - /obj/structure/flora/rock/lava = 1 + /obj/structure/flora/rock/pile/lava = 3, + /obj/structure/flora/rock/lava = 3, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) flora_spawn_chance = 5 @@ -271,6 +279,7 @@ /obj/structure/flora/ash/cap_shroom = 2, /obj/structure/flora/ash/stem_shroom = 2, /obj/structure/flora/ash/cacti = 1, + /obj/item/mine/pressure/explosive/rusty/live = 1, /obj/structure/flora/ash/tall_shroom = 2 ) diff --git a/code/datums/mapgen/planetary/RockGenerator.dm b/code/datums/mapgen/planetary/RockGenerator.dm index 95e1273bb9d7..c675c87714f5 100644 --- a/code/datums/mapgen/planetary/RockGenerator.dm +++ b/code/datums/mapgen/planetary/RockGenerator.dm @@ -91,6 +91,7 @@ /obj/structure/vein/classtwo = 40, /obj/effect/spawner/lootdrop/anomaly/rock = 10, /obj/structure/vein/classthree = 10, + /obj/effect/spawner/minefield = 2, /obj/effect/spawner/lootdrop/anomaly/big = 1 //get out of here stalker ) @@ -98,10 +99,11 @@ mob_spawn_chance = 3 flora_spawn_list = list( - /obj/structure/flora/rock/rockplanet = 3, - /obj/structure/flora/tree/cactus = 4, - /obj/structure/flora/ash/cacti = 1, - /obj/structure/flora/ash/garden/arid = 1, + /obj/structure/flora/rock/rockplanet = 6, + /obj/structure/flora/tree/cactus = 8, + /obj/structure/flora/ash/cacti = 2, + /obj/structure/flora/ash/garden/arid = 2, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) mob_spawn_list = list( @@ -136,6 +138,7 @@ /obj/structure/flora/ash/cacti = 2, /obj/structure/flora/grass/rockplanet/dead = 8, /obj/structure/flora/ash/garden/arid = 1, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) /datum/biome/cave/rock @@ -143,10 +146,12 @@ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/cracked = 1) flora_spawn_chance = 4 flora_spawn_list = list( - /obj/structure/flora/rock/rockplanet = 4, - /obj/structure/flora/rock/pile/rockplanet = 4, - /obj/structure/flora/ash/fern = 2, - /obj/structure/flora/ash/puce = 1, + /obj/structure/flora/rock/rockplanet = 8, + /obj/structure/flora/rock/pile/rockplanet = 8, + /obj/structure/flora/ash/fern = 4, + /obj/structure/flora/ash/puce = 2, + /obj/item/mine/pressure/explosive/rusty/live = 1, + /obj/item/mine/proximity/explosive/live = 1, ) feature_spawn_chance = 0.5 feature_spawn_list = list( @@ -155,6 +160,7 @@ /obj/structure/vein/classtwo = 2, /obj/structure/elite_tumor = 1, /obj/structure/vein/classthree = 1, + /obj/effect/spawner/minefield = 1, /obj/structure/spawner/ice_moon/rockplanet = 4, /obj/effect/spawner/lootdrop/anomaly/rock/cave = 1, ) @@ -172,11 +178,13 @@ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/cracked = 1) flora_spawn_chance = 5 flora_spawn_list = list( - /obj/structure/flora/rock/rockplanet = 4, - /obj/structure/flora/rock/pile/rockplanet = 4, - /obj/structure/flora/ash/fern = 4, - /obj/structure/flora/ash/puce = 2, - /obj/structure/flora/ash/garden/arid = 1, + /obj/structure/flora/rock/rockplanet = 8, + /obj/structure/flora/rock/pile/rockplanet = 8, + /obj/structure/flora/ash/fern = 6, + /obj/structure/flora/ash/puce = 4, + /obj/structure/flora/ash/garden/arid = 2, + /obj/item/mine/proximity/explosive/live = 1, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) mob_spawn_list = list( /mob/living/simple_animal/hostile/netherworld/asteroid = 30, diff --git a/code/datums/mapgen/planetary/SnowGenerator.dm b/code/datums/mapgen/planetary/SnowGenerator.dm index a066647a0e4d..8489cbb970ba 100644 --- a/code/datums/mapgen/planetary/SnowGenerator.dm +++ b/code/datums/mapgen/planetary/SnowGenerator.dm @@ -90,12 +90,13 @@ /turf/open/floor/plating/asteroid/snow/lit = 25 ) flora_spawn_list = list( - /obj/structure/flora/tree/pine = 2, - /obj/structure/flora/rock/icy = 2, - /obj/structure/flora/rock/pile/icy = 2, - /obj/structure/flora/grass/both = 6, - /obj/structure/flora/ash/chilly = 2, - /obj/structure/flora/ash/garden/frigid = 1, + /obj/structure/flora/tree/pine = 4, + /obj/structure/flora/rock/icy = 4, + /obj/structure/flora/rock/pile/icy = 4, + /obj/structure/flora/grass/both = 12, + /obj/structure/flora/ash/chilly = 4, + /obj/structure/flora/ash/garden/frigid = 2, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) flora_spawn_chance = 10 mob_spawn_chance = 1 @@ -118,6 +119,7 @@ /obj/structure/spawner/ice_moon/demonic_portal/medium_threat = 50, /obj/structure/spawner/ice_moon/demonic_portal/high_threat = 13, /obj/structure/vein/ice = 25, + /obj/effect/spawner/minefield = 2, /obj/structure/vein/ice/classtwo = 50, /obj/structure/vein/ice/classthree = 10, ) @@ -148,9 +150,10 @@ /datum/biome/snow/forest flora_spawn_chance = 15 flora_spawn_list = list( - /obj/structure/flora/tree/pine = 10, - /obj/structure/flora/tree/dead = 3, - /obj/structure/flora/grass/both = 4 + /obj/structure/flora/tree/pine = 20, + /obj/structure/flora/tree/dead = 6, + /obj/structure/flora/grass/both = 8, + /obj/item/mine/pressure/explosive/rusty/live = 1, ) /datum/biome/snow/forest/dense @@ -159,6 +162,7 @@ /obj/structure/flora/tree/pine = 20, /obj/structure/flora/grass/both = 6, /obj/structure/flora/tree/dead = 3, + /obj/item/mine/pressure/explosive/rusty/live = 1, ) /datum/biome/arctic @@ -242,15 +246,17 @@ ) flora_spawn_chance = 6 flora_spawn_list = list( - /obj/structure/flora/grass/both = 5, - /obj/structure/flora/rock/pile/icy = 1, - /obj/structure/flora/rock/icy = 1, - /obj/structure/flora/ash/space = 1, - /obj/structure/flora/ash/leaf_shroom = 1, - /obj/structure/flora/ash/cap_shroom = 1, - /obj/structure/flora/ash/stem_shroom = 1, - /obj/structure/flora/ash/puce = 1, - /obj/structure/flora/ash/garden/frigid = 1, + /obj/structure/flora/grass/both = 10, + /obj/structure/flora/rock/pile/icy = 2, + /obj/structure/flora/rock/icy = 2, + /obj/structure/flora/ash/space = 2, + /obj/structure/flora/ash/leaf_shroom = 2, + /obj/structure/flora/ash/cap_shroom = 2, + /obj/structure/flora/ash/stem_shroom = 2, + /obj/structure/flora/ash/puce = 2, + /obj/structure/flora/ash/garden/frigid = 2, + /obj/item/mine/proximity/explosive/live = 1, + /obj/item/mine/pressure/explosive/rusty/live = 1 ) closed_turf_types = list( /turf/closed/mineral/random/snow = 1 @@ -279,6 +285,7 @@ /obj/structure/vein/ice = 30, /obj/structure/vein/ice/classtwo = 50, /obj/structure/vein/ice/classthree = 6, + /obj/effect/spawner/minefield = 2, ) /datum/biome/cave/snow/thawed @@ -317,9 +324,10 @@ ) flora_spawn_chance = 3 flora_spawn_list = list( - /obj/structure/flora/ash/leaf_shroom = 1, - /obj/structure/flora/ash/cap_shroom = 1, - /obj/structure/flora/ash/stem_shroom = 1, + /obj/structure/flora/ash/leaf_shroom = 3, + /obj/structure/flora/ash/cap_shroom = 3, + /obj/structure/flora/ash/stem_shroom = 3, + /obj/item/mine/pressure/explosive/fire/live = 1, ) feature_spawn_chance = 0.2 diff --git a/code/datums/mapgen/planetary/WasteGenerator.dm b/code/datums/mapgen/planetary/WasteGenerator.dm index d0243740bc3b..c6e1244be129 100644 --- a/code/datums/mapgen/planetary/WasteGenerator.dm +++ b/code/datums/mapgen/planetary/WasteGenerator.dm @@ -125,7 +125,9 @@ //the illusive shrapnel plant - /obj/effect/mine/shrapnel/human_only = 10 + /obj/item/mine/pressure/explosive/shrapnel/live = 30, + /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/minefield = 2 ) feature_spawn_list = list( @@ -202,7 +204,9 @@ /obj/effect/spawner/lootdrop/maintenance/four = 20, /obj/structure/flora/ash/garden/waste = 300, /obj/structure/flora/ash/glowshroom = 1800, - /obj/effect/mine/shrapnel/human_only = 10 + /obj/item/mine/pressure/explosive/shrapnel/live = 30, + /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/minefield = 2 ) /datum/biome/waste/tar_bed //tar colorings @@ -246,7 +250,10 @@ /obj/structure/closet/crate/secure/loot = 30, /obj/effect/spawner/lootdrop/waste/atmos_can = 180, /obj/effect/spawner/lootdrop/waste/atmos_can/rare = 1, - /obj/effect/spawner/lootdrop/waste/salvageable = 300 + /obj/effect/spawner/lootdrop/waste/salvageable = 300, + /obj/item/mine/pressure/explosive/rad/live = 30, + /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/minefield = 2 ) mob_spawn_list = list( //nor organics, more biased towards hivebots though /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80, @@ -308,7 +315,9 @@ /obj/effect/spawner/lootdrop/waste/salvageable = 400, /obj/structure/flora/ash/garden/waste = 70, /obj/structure/flora/ash/glowshroom = 400, //more common in caves - /obj/effect/mine/shrapnel/human_only = 10 + /obj/item/mine/pressure/explosive/rad/live = 10, + /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/minefield = 2 ) feature_spawn_list = list( @@ -362,7 +371,10 @@ /obj/effect/spawner/lootdrop/maintenance/two = 50, /obj/effect/spawner/lootdrop/maintenance/three = 100, /obj/effect/spawner/lootdrop/maintenance/four = 200, - /obj/structure/flora/ash/glowshroom = 1800 + /obj/structure/flora/ash/glowshroom = 1800, + /obj/item/mine/pressure/explosive/rad/live = 30, + /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/minefield = 2 ) feature_spawn_chance = 12 @@ -397,6 +409,9 @@ /obj/effect/spawner/lootdrop/maintenance/three = 20, /obj/effect/spawner/lootdrop/maintenance/four = 40, /obj/effect/spawner/lootdrop/waste/salvageable = 80, + /obj/item/mine/proximity/spawner/manhack/live = 40, + /obj/effect/spawner/lootdrop/mine = 8, + /obj/effect/spawner/minefield/manhack = 2 ) mob_spawn_list = list( //nor organics, more biased towards hivebots though /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80, @@ -427,7 +442,8 @@ /obj/effect/spawner/lootdrop/maintenance/three = 10, /obj/effect/spawner/lootdrop/maintenance/four = 20, /obj/effect/spawner/lootdrop/waste/salvageable = 40, - /obj/structure/foamedmetal = 100 + /obj/structure/foamedmetal = 100, + /obj/item/mine/proximity/spawner/manhack/live = 20 ) mob_spawn_list = list( //Whoops! All hivebots! /mob/living/simple_animal/hostile/hivebot/wasteplanet/strong = 80, @@ -440,6 +456,7 @@ /obj/structure/spawner/wasteplanet/hivebot/low_threat = 20, /obj/structure/spawner/wasteplanet/hivebot/medium_threat = 10, /obj/structure/spawner/wasteplanet/hivebot/high_threat = 5, - /obj/structure/spawner/wasteplanet/hivebot/extreme_threat = 2 + /obj/structure/spawner/wasteplanet/hivebot/extreme_threat = 2, + /obj/effect/spawner/minefield/manhack = 2 ) feature_spawn_chance = 2 //hivebot biomes should have their dongles diff --git a/code/datums/mapgen/single_biome/WasteplanetCaves.dm b/code/datums/mapgen/single_biome/WasteplanetCaves.dm index 472a5cf4d54b..08f63ba3149a 100644 --- a/code/datums/mapgen/single_biome/WasteplanetCaves.dm +++ b/code/datums/mapgen/single_biome/WasteplanetCaves.dm @@ -39,10 +39,12 @@ /obj/structure/salvageable/circuit_imprinter = 8, /obj/structure/salvageable/destructive_analyzer = 8, /obj/structure/salvageable/server = 8, + /obj/item/mine/pressure/explosive/rusty/live = 30, + /obj/effect/spawner/lootdrop/mine = 8 ) feature_spawn_list = list( /obj/structure/geyser/random = 1, - /obj/effect/mine/shrapnel/human_only = 1 + /obj/effect/spawner/minefield = 1 ) mob_spawn_list = list( //hivebots, not too difficult diff --git a/code/datums/mind.dm b/code/datums/mind.dm index fc91d2c71de1..36ec4a1b5ae6 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -79,6 +79,9 @@ /// The index for our current scar slot, so we don't have to constantly check the savefile (unlike the slots themselves, this index is independent of selected char slot, and increments whenever a valid char is joined with) var/current_scar_slot_index + /// Guestbook datum, in case we actually make use of the guestbook mechanics + var/datum/guestbook/guestbook + ///Skill multiplier, adjusts how much xp you get/loose from adjust_xp. Dont override it directly, add your reason to experience_multiplier_reasons and use that as a key to put your value in there. var/experience_multiplier = 1 ///Skill multiplier list, just slap your multiplier change onto this with the type it is coming from as key. @@ -95,6 +98,7 @@ key = _key soulOwner = src martial_art = default_martial_art + guestbook = new() init_known_skills() /datum/mind/Destroy() @@ -102,6 +106,7 @@ if(islist(antag_datums)) QDEL_LIST(antag_datums) QDEL_NULL(language_holder) + QDEL_NULL(guestbook) set_current(null) soulOwner = null return ..() diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index 5ffa3778edc6..25621a613eeb 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -37,7 +37,7 @@ bar.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA user = User - LAZYADDASSOC(user.progressbars, bar_loc, src) + LAZYADDASSOCLIST(user.progressbars, bar_loc, src) var/list/bars = user.progressbars[bar_loc] listindex = bars.len diff --git a/code/datums/wires/mines.dm b/code/datums/wires/mines.dm new file mode 100644 index 000000000000..4c856cf99d3f --- /dev/null +++ b/code/datums/wires/mines.dm @@ -0,0 +1,82 @@ +/datum/wires/mine + holder_type = /obj/item/mine/pressure + randomize = TRUE + +/datum/wires/mine/New(atom/holder) + wires = list( + WIRE_BOOM, WIRE_DELAYBOOM, WIRE_PIN, WIRE_RESET + ) + ..() + +/datum/wires/mine/interactable(mob/user) + var/obj/item/mine/pressure/ourmine = holder + if(ourmine.open_panel) + return TRUE + +//are you feelin lucky, punk? +/datum/wires/mine/on_pulse(wire) + var/obj/item/mine/pressure/ourmine = holder + switch(wire) + if(WIRE_BOOM)//oopsies + holder.visible_message(span_userdanger("[icon2html(ourmine, viewers(holder))] \The [ourmine] makes a shrill noise! It's go-")) + ourmine.trigger_mine() + if(WIRE_DELAYBOOM)//oopsies but you get to run + ourmine.blast_delay = clamp(ourmine.blast_delay * 5, 8, 50) + holder.visible_message(span_userdanger("[icon2html(ourmine, viewers(holder))] \The [ourmine] makes a shrill noise! It's go-")) + ourmine.trigger_mine() + //Resets the detonation pin, allowing someone to step off the mine. Minor success. + if(WIRE_PIN) + if(ourmine.clicked == TRUE) + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] You hear something inside \the [ourmine] click softly.")) + playsound(ourmine, 'sound/weapons/empty.ogg', 30, TRUE) + ourmine.clicked = FALSE + else + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s detonation pad shifts slightly. Nothing happens.")) + if(WIRE_RESET)//Disarms the mine, allowing it to be picked up. Major success. + if(ourmine.armed && ourmine.anchored) + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s arming lights fade, and the securing bolts loosen. ")) + playsound(ourmine, 'sound/machines/click.ogg', 100, TRUE) + ourmine.disarm() + else if(ourmine.anchored) + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s yellow arming light flickers.")) + else + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s securing bolt shifts. Nothing happens.")) + +/datum/wires/mine/on_cut(wire, mend) + var/obj/item/mine/pressure/ourmine = holder + switch(wire) + if(WIRE_BOOM) + if(!mend) + holder.visible_message(span_userdanger("[icon2html(ourmine, viewers(holder))] \The [ourmine] makes a shrill noise! It's go-")) + ourmine.trigger_mine() + if(WIRE_DELAYBOOM) + if(!mend) + ourmine.blast_delay = clamp(ourmine.blast_delay * 5, 8, 50) + holder.visible_message(span_userdanger("[icon2html(ourmine, viewers(holder))] \The [ourmine] makes a shrill noise! It's go-")) + ourmine.trigger_mine() + //Disables the detonation pin. Nothing will happen when the mine is triggered. + //Mine can still be exploded by cutting wires & damage. + if(WIRE_PIN) + if(!mend) + ourmine.dud = TRUE + if(ourmine.clicked == TRUE) + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] You hear something inside \the [ourmine] shift out of place.")) + playsound(ourmine, 'sound/weapons/empty.ogg', 30, TRUE) + ourmine.clicked = FALSE + else + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s detonation pad goes loose.")) + ourmine.foot_on_mine = null + else + ourmine.dud = FALSE + ourmine.clicked = FALSE + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] You hear something inside \the [ourmine] shift back into place.")) + if(WIRE_RESET) + if(!mend) + if(ourmine.armed && ourmine.anchored) + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s arming lights fade, and the securing bolts loosen. Disarmed. ")) + playsound(ourmine, 'sound/machines/click.ogg', 100, TRUE) + ourmine.disarm() + else if(ourmine.anchored) + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s yellow arming light flickers.")) + else + holder.visible_message(span_notice("[icon2html(ourmine, viewers(holder))] \The [ourmine]'s securing bolt shifts. Nothing happens.")) diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm index abf40f900af5..5f4e75b71d4d 100644 --- a/code/game/area/ship_areas.dm +++ b/code/game/area/ship_areas.dm @@ -68,7 +68,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/ship dynamic_lighting = DYNAMIC_LIGHTING_FORCED - has_gravity = STANDARD_GRAVITY always_unpowered = FALSE area_flags = VALID_TERRITORY | BLOBS_ALLOWED // Loading the same shuttle map at a different time will produce distinct area instances. icon_state = "shuttle" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 6c6849724bde..b539e421508d 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -160,6 +160,7 @@ var/hitsound_type = PROJECTILE_HITSOUND_NON_LIVING ///volume wanted for being hit var/hitsound_volume = 50 + /** * Called when an atom is created in byond (built in engine proc) * @@ -1555,6 +1556,7 @@ * * No gravity if this atom is in is a space turf * * Gravity if the area it's in always has gravity * * Gravity if there's a gravity generator on the z level + * * Gravity if there is a ship gravity generator in a ship * * Gravity if the Z level has an SSMappingTrait for ZTRAIT_GRAVITY * * otherwise no gravity */ @@ -1587,12 +1589,22 @@ else // See if there's a gravity generator on our map zone var/datum/map_zone/mapzone = T.get_map_zone() + var/max_grav = T.virtual_level_trait(ZTRAIT_GRAVITY) if(mapzone?.gravity_generators.len) - var/max_grav = 0 for(var/obj/machinery/gravity_generator/main/G as anything in mapzone.gravity_generators) max_grav = max(G.setting,max_grav) - return max_grav - return T.virtual_level_trait(ZTRAIT_GRAVITY) + // Check for ship-based gravity + var/area/ship/ship = A + if(istype(ship)) + var/obj/docking_port/mobile/shuttle = ship.mobile_port + if(shuttle) + for(var/datum/weakref/weakref as anything in shuttle.gravgen_list) + var/obj/machinery/power/ship_gravity/SG = weakref.resolve() + if(!SG) + shuttle.gravgen_list -= weakref + continue + max_grav = max(SG.active,max_grav) + return max_grav /** * Called when a mob examines (shift click or verb) this atom twice (or more) within EXAMINE_MORE_TIME (default 1.5 seconds) @@ -1673,7 +1685,11 @@ active_hud.screentip_text.maptext = "" else //We inline a MAPTEXT() here, because there's no good way to statically add to a string like this - active_hud.screentip_text.maptext = "[name]" + active_hud.screentip_text.maptext = "[get_screentip_name(client)]" + +/// Returns the atom name that should be used on screentip +/atom/proc/get_screentip_name(client/hovering_client) + return name ///Called whenever a player is spawned on the same turf as this atom. /atom/proc/join_player_here(mob/M) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 7dd3d612ae81..989db20efd1f 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -560,7 +560,7 @@ if(!client) return if(new_virtual_z) - LAZYADDASSOC(SSmobs.players_by_virtual_z, "[new_virtual_z]", src) + LAZYADDASSOCLIST(SSmobs.players_by_virtual_z, "[new_virtual_z]", src) SSidlenpcpool.try_wakeup_virtual_z(new_virtual_z) /mob/dead/on_virtual_z_change(new_virtual_z, previous_virtual_z) @@ -570,7 +570,7 @@ if(!client) return if(new_virtual_z) - LAZYADDASSOC(SSmobs.dead_players_by_virtual_z, "[new_virtual_z]", src) + LAZYADDASSOCLIST(SSmobs.dead_players_by_virtual_z, "[new_virtual_z]", src) // Make sure you know what you're doing if you call this, this is intended to only be called by byond directly. // You probably want CanPass() diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index a847b44d39a1..b54c192f4407 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -49,7 +49,7 @@ if(previous_virtual_z) LAZYREMOVEASSOC(GLOB.navbeacons, "[previous_virtual_z]", src) if(new_virtual_z) - LAZYADDASSOC(GLOB.navbeacons, "[new_virtual_z]", src) + LAZYADDASSOCLIST(GLOB.navbeacons, "[new_virtual_z]", src) ..() // set the transponder codes assoc list from codes_txt diff --git a/code/game/machinery/shuttle/ship_gravity.dm b/code/game/machinery/shuttle/ship_gravity.dm new file mode 100644 index 000000000000..bfcf937f341a --- /dev/null +++ b/code/game/machinery/shuttle/ship_gravity.dm @@ -0,0 +1,124 @@ +// +// Ship Gravity Generator +// + +/obj/machinery/power/ship_gravity + name = "gravitational generator" + desc = "A ship-portable gravity generator, capable of providing gravity throughout the vessel it is installed on." + icon = 'icons/obj/machines/ship_gravity.dmi' + icon_state = "shipgrav" + base_icon_state = "shipgrav" + density = TRUE + idle_power_usage = 10 + active_power_usage = 5000 + circuit = /obj/item/circuitboard/machine/ship_gravity + var/charging = FALSE + var/active = FALSE + var/charge = 0 + +/obj/machinery/power/ship_gravity/unanchored + anchored = FALSE + +/obj/machinery/power/ship_gravity/admin + idle_power_usage = 0 + active_power_usage = 0 + active = TRUE + +/obj/machinery/power/ship_gravity/Initialize() + . = ..() + if(anchored) + connect_to_network() + +/obj/machinery/power/ship_gravity/process() + if(charging && (!active_power_usage || surplus() >= active_power_usage)) + add_load(active_power_usage) + charge = min(charge+1, 5) + if(charge >= 5) + set_state(TRUE) + else + charge = max(charge-1, 0) + if(!charge) + set_state(FALSE) + update_appearance() + +/obj/machinery/power/ship_gravity/proc/set_state(toggle) + if(toggle == active) + return + if(toggle) + active = TRUE + playsound(src.loc, 'sound/effects/empulse.ogg', 100, TRUE) + visible_message(span_warning("The [src.name] finishes charging!"), blind_message = span_hear("You hear a low hum fade in.")) + else + visible_message(span_danger("The [src.name] shuts down due to lack of power!"), blind_message = span_hear("You hear a low hum fade out.")) + active = FALSE + log_game("[src] deactivated due to lack of power at [AREACOORD(src)]", INVESTIGATE_GRAVITY) + update_appearance() + +/obj/machinery/power/ship_gravity/update_overlays() + . = ..() + var/mutable_appearance/charge_state + if(active) + charge_state = mutable_appearance(icon, "charge_active") + if(charge < 5) + charge_state = mutable_appearance(icon, "charge_[charge]") + . += charge_state + +/obj/machinery/power/ship_gravity/examine(mob/user) + . = ..() + if(anchored) + . += span_info("It's secured to the floor, you can unsecure it with a wrench.") + else + . += span_info("It's currently unsecured, you can secure it with a wrench.") + if(in_range(user, src) || isobserver(user)) + if(!charging && !charge) + . += span_info("Its status display is currently turned off.") + else + . += span_info("Its status display reads: Current charge at [charge*20]%.") + +/obj/machinery/power/ship_gravity/screwdriver_act(mob/living/user, obj/item/I) + ..() + if(charging || charge) + to_chat(user, span_notice("You cannot open the maintenance panel on [src] while it is active!")) + return TRUE + default_deconstruction_screwdriver(user, "shipgrav_o", "shipgrav", I) + return TRUE + +/obj/machinery/power/ship_gravity/wrench_act(mob/living/user, obj/item/I) + . =..() + if(active) + to_chat(user, span_notice("You cannot unsecure [src] while it is active!")) + return TRUE + default_unfasten_wrench(user, I) + return TRUE + +/obj/machinery/power/ship_gravity/crowbar_act(mob/living/user, obj/item/I) + . = ..() + default_deconstruction_crowbar(I) + return TRUE + +/obj/machinery/power/ship_gravity/default_unfasten_wrench(mob/user, obj/item/I, time = 20) + . = ..() + if(. == SUCCESSFUL_UNFASTEN) + if(anchored) + connect_to_network() + else + disconnect_from_network() + charging = FALSE + set_state(FALSE) + +/obj/machinery/power/ship_gravity/connect_to_shuttle(obj/docking_port/mobile/port, obj/docking_port/stationary/dock) + . = ..() + port.gravgen_list |= WEAKREF(src) + +/obj/machinery/power/ship_gravity/interact(mob/user) + if(!powernet && active_power_usage) + to_chat(user, span_notice("[src] isn't connected to a wire!")) + return + if(panel_open) + return + charging = !charging + play_click_sound("switch") + user.visible_message(span_warning("[user] flips [src]'s power [charging ? "on" : "off"]!"), \ + span_info("You flip [src]'s power lever, turning it [charging ? "on" : "off"]"), \ + span_hear("You hear a heavy lever being pulled.")) + update_appearance() diff --git a/code/game/machinery/shuttle/shuttle_engine.dm b/code/game/machinery/shuttle/shuttle_engine.dm index 267c8d102918..c4fd424d4076 100644 --- a/code/game/machinery/shuttle/shuttle_engine.dm +++ b/code/game/machinery/shuttle/shuttle_engine.dm @@ -12,7 +12,7 @@ var/enabled = TRUE ///How much thrust this engine generates when burned fully. var/thrust = 0 - ///I don't really know what this is but it's used a lot + ///Whether this engine is actively providing thrust to the ship var/thruster_active = FALSE /** diff --git a/code/modules/power/turbine.dm b/code/game/machinery/shuttle/turbine.dm similarity index 54% rename from code/modules/power/turbine.dm rename to code/game/machinery/shuttle/turbine.dm index ba390b1cf873..7d310d37cd30 100644 --- a/code/modules/power/turbine.dm +++ b/code/game/machinery/shuttle/turbine.dm @@ -25,48 +25,60 @@ /obj/machinery/power/compressor name = "compressor" desc = "The compressor stage of a gas turbine generator." - icon = 'icons/obj/atmospherics/pipes/simple.dmi' + icon = 'icons/obj/atmospherics/components/turbine.dmi' icon_state = "compressor" density = TRUE resistance_flags = FIRE_PROOF CanAtmosPass = ATMOS_PASS_DENSITY + use_power = NO_POWER_USE // powered by gas flow + interacts_with_air = TRUE circuit = /obj/item/circuitboard/machine/power_compressor - var/obj/machinery/power/turbine/turbine + var/obj/machinery/power/shuttle/engine/turbine/turbine var/datum/gas_mixture/gas_contained - var/turf/inturf var/starter = 0 var/rpm = 0 var/rpmtarget = 0 var/capacity = 1e6 var/comp_id = 0 - var/efficiency + var/efficiency = 1 + var/intake_ratio = 0.1 // might add a way to adjust this in-game later -/obj/machinery/power/turbine/lavaland +/obj/machinery/power/shuttle/engine/turbine/lavaland destroy_output = TRUE /obj/machinery/power/compressor/Destroy() + SSair.stop_processing_machine(src) if (turbine && turbine.compressor == src) turbine.compressor = null + if(isopenturf(loc)) + loc.assume_air(gas_contained) + loc.air_update_turf() turbine = null return ..() -/obj/machinery/power/turbine +/obj/machinery/power/shuttle/engine/turbine name = "gas turbine generator" desc = "A gas turbine used for backup power generation." - icon = 'icons/obj/atmospherics/pipes/simple.dmi' + icon = 'icons/obj/atmospherics/components/turbine.dmi' icon_state = "turbine" density = TRUE resistance_flags = FIRE_PROOF CanAtmosPass = ATMOS_PASS_DENSITY + use_power = NO_POWER_USE // powered by gas flow + interacts_with_air = TRUE circuit = /obj/item/circuitboard/machine/power_turbine + thrust = 0 // no thrust by default + icon_state_closed = "turbine" + icon_state_open = "turbine" + icon_state_off = "turbine" var/opened = 0 var/obj/machinery/power/compressor/compressor - var/turf/outturf - var/lastgen + var/lastgen = 0 var/productivity = 1 var/destroy_output = FALSE //Destroy the output gas instead of actually outputting it. Used on lavaland to prevent cooking the zlevel -/obj/machinery/power/turbine/Destroy() +/obj/machinery/power/shuttle/engine/turbine/Destroy() + SSair.stop_processing_machine(src) if (compressor && compressor.turbine == src) compressor.turbine = null compressor = null @@ -74,29 +86,39 @@ // the inlet stage of the gas turbine electricity generator -/obj/machinery/power/compressor/Initialize() +/obj/machinery/power/compressor/Initialize(mapload) . = ..() // The inlet of the compressor is the direction it faces gas_contained = new - inturf = get_step(src, dir) + SSair.start_processing_machine(src, mapload) locate_machinery() if(!turbine) obj_break() + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/power/compressor/LateInitialize() + . = ..() + var/turf/comp_turf = get_turf(src) + comp_turf.ImmediateCalculateAdjacentTurfs() // turbine blocks atmos so update the turf it's on or stuff breaks #define COMPFRICTION 5e5 /obj/machinery/power/compressor/locate_machinery() if(turbine) return - turbine = locate() in get_step(src, get_dir(inturf, src)) + turbine = locate() in get_step(src, turn(dir, 180)) if(turbine) + set_machine_stat(machine_stat & ~BROKEN) turbine.locate_machinery() + else + turbine = null + obj_break() /obj/machinery/power/compressor/RefreshParts() var/E = 0 for(var/obj/item/stock_parts/manipulator/M in component_parts) E += M.rating - efficiency = E / 6 + efficiency = max(E / 6, 1) /obj/machinery/power/compressor/examine(mob/user) . = ..() @@ -108,49 +130,63 @@ return if(default_change_direction_wrench(user, I)) - turbine = null - inturf = get_step(src, dir) - locate_machinery() if(turbine) to_chat(user, "Turbine connected.") set_machine_stat(machine_stat & ~BROKEN) else to_chat(user, "Turbine not connected.") - obj_break() return default_deconstruction_crowbar(I) -/obj/machinery/power/compressor/process() - if(!starter) - return - if(!turbine || (turbine.machine_stat & BROKEN)) - starter = FALSE - if(machine_stat & BROKEN || panel_open) - starter = FALSE - return - cut_overlays() - - rpm = 0.9* rpm + 0.1 * rpmtarget +/obj/machinery/power/compressor/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I) + . = ..() + if(panel_open) + set_machine_stat(machine_stat | MAINT) + else + set_machine_stat(machine_stat & ~MAINT) - // It's a simplified version taking only 1/10 of the moles from the turf nearby. It should be later changed into a better version - // above todo 7 years and counting +//update when moved or changing direction +/obj/machinery/power/compressor/setDir(newdir) + . = ..() + locate_machinery() - inturf.transfer_air_ratio(gas_contained, 0.1) +/obj/machinery/power/compressor/Move(atom/newloc, direct, glide_size_override) + . = ..() + locate_machinery() -// RPM function to include compression friction - be advised that too low/high of a compfriction value can make things screwy +/obj/machinery/power/compressor/process(delta_time) + return +/obj/machinery/power/compressor/process_atmos(delta_time) + // RPM function to include compression friction - be advised that too low/high of a compfriction value can make things screwy + rpm -= 1 + rpm = (0.9 * rpm) + (0.1 * rpmtarget) rpm = min(rpm, (COMPFRICTION*efficiency)/2) - rpm = max(0, rpm - (rpm*rpm)/(COMPFRICTION*efficiency)) + rpm = max(0, rpm - (rpm**2)/(COMPFRICTION*efficiency)) - if(starter && !(machine_stat & NOPOWER)) - use_power(2800) - if(rpm<1000) - rpmtarget = 1000 - else - if(rpm<1000) - rpmtarget = 0 + update_overlays() + + if(!turbine || (turbine.machine_stat & BROKEN)) + locate_machinery() // try to find the other part if we somehow got disconnected + + if((machine_stat & (BROKEN|MAINT)) || !starter) // if we didn't find it... + rpmtarget = 0 + return + + var/turf/inturf = get_step(src, dir) + var/datum/gas_mixture/environment = inturf.return_air() + var/external_pressure = environment.return_pressure() + var/pressure_delta = external_pressure - gas_contained.return_pressure() + + // Equalize the gas between the environment and the internal gas mix + if(pressure_delta > 0) + var/datum/gas_mixture/removed = environment.remove_ratio((1 - ((1 - intake_ratio)**delta_time)) * pressure_delta / (external_pressure * 2)) // silly math to keep it consistent with delta_time + gas_contained.merge(removed) + inturf.air_update_turf() +/obj/machinery/power/compressor/update_overlays() + . = ..() if(rpm>50000) add_overlay(mutable_appearance(icon, "comp-o4", FLY_LAYER)) else if(rpm>10000) @@ -159,91 +195,122 @@ add_overlay(mutable_appearance(icon, "comp-o2", FLY_LAYER)) else if(rpm>500) add_overlay(mutable_appearance(icon, "comp-o1", FLY_LAYER)) - //TODO: DEFERRED // These are crucial to working of a turbine - the stats modify the power output. TurbGenQ modifies how much raw energy can you get from // rpms, TurbGenG modifies the shape of the curve - the lower the value the less straight the curve is. #define TURBGENQ 100000 #define TURBGENG 0.5 +#define POWER_TO_THRUST 0.001 // power production to thrust ratio -/obj/machinery/power/turbine/Initialize() +/obj/machinery/power/shuttle/engine/turbine/Initialize(mapload) . = ..() -// The outlet is pointed at the direction of the turbine component - outturf = get_step(src, dir) + SSair.start_processing_machine(src, mapload) locate_machinery() if(!compressor) obj_break() connect_to_network() + return INITIALIZE_HINT_LATELOAD + +/obj/machinery/power/shuttle/engine/turbine/LateInitialize() + . = ..() + var/turf/comp_turf = get_turf(src) + comp_turf.ImmediateCalculateAdjacentTurfs() // turbine blocks atmos so update the turf it's on or stuff breaks -/obj/machinery/power/turbine/RefreshParts() +/obj/machinery/power/shuttle/engine/turbine/RefreshParts() var/P = 0 for(var/obj/item/stock_parts/capacitor/C in component_parts) P += C.rating productivity = P / 6 -/obj/machinery/power/turbine/examine(mob/user) +/obj/machinery/power/shuttle/engine/turbine/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) . += "The status display reads: Productivity at [productivity*100]%." -/obj/machinery/power/turbine/locate_machinery() +/obj/machinery/power/shuttle/engine/turbine/locate_machinery() if(compressor) return - compressor = locate() in get_step(src, get_dir(outturf, src)) + compressor = locate() in get_step(src, turn(dir, 180)) if(compressor) + set_machine_stat(machine_stat & ~BROKEN) compressor.locate_machinery() + else + compressor = null + obj_break() -/obj/machinery/power/turbine/process() +/obj/machinery/power/shuttle/engine/turbine/process(delta_time) + add_avail(lastgen) // add power in process() so it doesn't update power output separately from the rest of the powernet (bad) + update_overlays() +/obj/machinery/power/shuttle/engine/turbine/process_atmos(delta_time) if(!compressor) set_machine_stat(BROKEN) + locate_machinery() // try to find the missing piece - if((machine_stat & BROKEN) || panel_open) + if(machine_stat & (BROKEN|MAINT)) // we're only running half a turbine, don't continue return - if(!compressor.starter) - return - cut_overlays() // This is the power generation function. If anything is needed it's good to plot it in EXCEL before modifying // the TURBGENQ and TURBGENG values lastgen = ((compressor.rpm / TURBGENQ)**TURBGENG) * TURBGENQ * productivity + thrust = lastgen * POWER_TO_THRUST // second law - add_avail(lastgen) - - // Weird function but it works. Should be something else... - - var/newrpm = ((compressor.gas_contained.return_temperature()) * compressor.gas_contained.total_moles())/4 + var/turf/outturf = get_step(src, dir) + if(!LAZYLEN(outturf.atmos_adjacent_turfs)) + compressor.rpmtarget = 0 + return - newrpm = max(0, newrpm) + // Move gas from the compressor to the outlet + var/datum/gas_mixture/environment = outturf.return_air() + var/internal_pressure = compressor.gas_contained.return_pressure() + var/pressure_delta = internal_pressure - environment.return_pressure() - if(!compressor.starter || newrpm > 1000) - compressor.rpmtarget = newrpm + // Now set the compressor's RPM target based on how much gas is flowing through + compressor.rpmtarget = max(0, pressure_delta * compressor.gas_contained.return_volume() / (R_IDEAL_GAS_EQUATION * 4)) - if(compressor.gas_contained.total_moles()>0) - var/oamount = min(compressor.gas_contained.total_moles(), (compressor.rpm+100)/35000*compressor.capacity) + // Equalize the gas between the internal gas mix and the environment + if(pressure_delta > 0) + var/datum/gas_mixture/removed = compressor.gas_contained.remove_ratio(pressure_delta / (internal_pressure * 2)) if(destroy_output) - compressor.gas_contained.set_moles(compressor.gas_contained.get_moles() - oamount) - else - outturf.assume_air_moles(compressor.gas_contained, oamount) + qdel(removed) + return + outturf.assume_air(removed) + outturf.air_update_turf() + +// Return the current thrust amount +/obj/machinery/power/shuttle/engine/turbine/burn_engine(percentage, deltatime) + return thrust * deltatime * (percentage / 100) + +// Return the current power output +/obj/machinery/power/shuttle/engine/turbine/return_fuel() + return lastgen + +// Return the maximum power output +/obj/machinery/power/shuttle/engine/turbine/return_fuel_cap() + return ((COMPFRICTION*(compressor ? compressor.efficiency : 1) / (TURBGENQ*4))**TURBGENG) * TURBGENQ * productivity + +// Return the maximum power output +/obj/machinery/power/shuttle/engine/turbine/update_engine() + if(!(flags_1 & INITIALIZED_1)) + return FALSE + thruster_active = !panel_open && compressor + return thruster_active // If it works, put an overlay that it works! - +/obj/machinery/power/shuttle/engine/turbine/update_overlays() + . = ..() if(lastgen > 100) add_overlay(mutable_appearance(icon, "turb-o", FLY_LAYER)) -/obj/machinery/power/turbine/attackby(obj/item/I, mob/user, params) +/obj/machinery/power/shuttle/engine/turbine/attackby(obj/item/I, mob/user, params) if(default_deconstruction_screwdriver(user, initial(icon_state), initial(icon_state), I)) return if(default_change_direction_wrench(user, I)) - compressor = null - outturf = get_step(src, dir) - locate_machinery() if(compressor) to_chat(user, "Compressor connected.") - set_machine_stat(machine_stat & ~BROKEN) else to_chat(user, "Compressor not connected.") obj_break() @@ -251,25 +318,42 @@ default_deconstruction_crowbar(I) -/obj/machinery/power/turbine/ui_interact(mob/user, datum/tgui/ui) +/obj/machinery/power/shuttle/engine/turbine/default_deconstruction_screwdriver(mob/user, icon_state_open, icon_state_closed, obj/item/I) + . = ..() + if(panel_open) + set_machine_stat(machine_stat | MAINT) + else + set_machine_stat(machine_stat & ~MAINT) + +// update if it moves or changes direction +/obj/machinery/power/shuttle/engine/turbine/setDir(newdir) + . = ..() + locate_machinery() + +/obj/machinery/power/shuttle/engine/turbine/Move(atom/newloc, direct, glide_size_override) + . = ..() + locate_machinery() + +/obj/machinery/power/shuttle/engine/turbine/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "TurbineComputer", name) ui.open() -/obj/machinery/power/turbine/ui_data(mob/user) +/obj/machinery/power/shuttle/engine/turbine/ui_data(mob/user) var/list/data = list() data["compressor"] = compressor ? TRUE : FALSE - data["compressor_broke"] = (!compressor || (compressor.machine_stat & BROKEN)) ? TRUE : FALSE + data["compressor_broke"] = (!compressor || (compressor.machine_stat & (BROKEN|MAINT))) ? TRUE : FALSE data["turbine"] = compressor?.turbine ? TRUE : FALSE - data["turbine_broke"] = (!compressor || !compressor.turbine || (compressor.turbine.machine_stat & BROKEN)) ? TRUE : FALSE + data["turbine_broke"] = (!compressor || !compressor.turbine || (compressor.turbine.machine_stat & (BROKEN|MAINT))) ? TRUE : FALSE data["online"] = compressor?.starter data["power"] = DisplayPower(compressor?.turbine?.lastgen) data["rpm"] = compressor?.rpm data["temp"] = compressor?.gas_contained.return_temperature() + data["pressure"] = compressor?.gas_contained.return_pressure() return data -/obj/machinery/power/turbine/ui_act(action, params) +/obj/machinery/power/shuttle/engine/turbine/ui_act(action, params) . = ..() if(.) return @@ -306,7 +390,7 @@ /obj/machinery/computer/turbine_computer/locate_machinery() if(id) - for(var/obj/machinery/power/compressor/C in GLOB.machines) + for(var/obj/machinery/power/compressor/C in SSair.atmos_air_machinery) if(C.comp_id == id) compressor = C return @@ -322,13 +406,14 @@ /obj/machinery/computer/turbine_computer/ui_data(mob/user) var/list/data = list() data["compressor"] = compressor ? TRUE : FALSE - data["compressor_broke"] = (!compressor || (compressor.machine_stat & BROKEN)) ? TRUE : FALSE + data["compressor_broke"] = (!compressor || (compressor.machine_stat & (BROKEN|MAINT))) ? TRUE : FALSE data["turbine"] = compressor?.turbine ? TRUE : FALSE - data["turbine_broke"] = (!compressor || !compressor.turbine || (compressor.turbine.machine_stat & BROKEN)) ? TRUE : FALSE + data["turbine_broke"] = (!compressor || !compressor.turbine || (compressor.turbine.machine_stat & (BROKEN|MAINT))) ? TRUE : FALSE data["online"] = compressor?.starter data["power"] = DisplayPower(compressor?.turbine?.lastgen) data["rpm"] = compressor?.rpm data["temp"] = compressor?.gas_contained.return_temperature() + data["pressure"] = compressor?.gas_contained.return_pressure() return data /obj/machinery/computer/turbine_computer/ui_act(action, params) @@ -345,6 +430,7 @@ locate_machinery() . = TRUE +#undef POWER_TO_THRUST #undef COMPFRICTION #undef TURBGENQ #undef TURBGENG diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm index c14086ff0f3b..7ff53391f6e0 100644 --- a/code/game/objects/effects/decals/crayon.dm +++ b/code/game/objects/effects/decals/crayon.dm @@ -4,7 +4,7 @@ GLOBAL_LIST(gang_tags) name = "rune" desc = "Graffiti. Damn kids." icon = 'icons/effects/crayondecal.dmi' - icon_state = "rune1" + icon_state = "firedanger" gender = NEUTER plane = GAME_PLANE //makes the graffiti visible over a wall. mergeable_decal = FALSE diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index b08d7bf6737c..078c435bd213 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -45,7 +45,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) . = ..() GLOB.start_landmarks_list += src if(jobspawn_override) - LAZYADDASSOC(GLOB.jobspawn_overrides, name, src) + LAZYADDASSOCLIST(GLOB.jobspawn_overrides, name, src) if(name != "start") tag = "start*[name]" diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm deleted file mode 100644 index 0ca73652857c..000000000000 --- a/code/game/objects/effects/mines.dm +++ /dev/null @@ -1,217 +0,0 @@ - -/obj/effect/mine - name = "dummy mine" - desc = "Better stay away from that thing." - density = FALSE - anchored = TRUE - icon = 'icons/obj/items_and_weapons.dmi' - icon_state = "uglymine" - var/triggered = 0 - -/obj/effect/mine/Initialize() - . = ..() - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/effect/mine/proc/mineEffect(mob/victim) - to_chat(victim, "*click*") - -/obj/effect/mine/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - if(isturf(loc)) - if(ismob(AM)) - var/mob/MM = AM - if(!(MM.movement_type & FLYING)) - INVOKE_ASYNC(src, PROC_REF(triggermine), AM) - else - INVOKE_ASYNC(src, PROC_REF(triggermine), AM) - -/obj/effect/mine/proc/triggermine(mob/victim) - if(triggered) - return - visible_message("[victim] sets off [icon2html(src, viewers(src))] [src]!") - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - mineEffect(victim) - SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED) - triggered = 1 - qdel(src) - - -/obj/effect/mine/explosive - name = "explosive mine" - var/range_devastation = 0 - var/range_heavy = 1 - var/range_light = 2 - var/range_flash = 3 - -/obj/effect/mine/explosive/mineEffect(mob/victim) - explosion(loc, range_devastation, range_heavy, range_light, range_flash) - -/obj/effect/mine/stun - name = "stun mine" - var/stun_time = 80 - -/obj/effect/mine/shrapnel - name = "shrapnel mine" - var/shrapnel_type = /obj/projectile/bullet/shrapnel - var/shrapnel_magnitude = 3 - -/obj/effect/mine/shrapnel/mineEffect(mob/victim) - AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) - -/obj/effect/mine/shrapnel/human_only - name = "sophisticated shrapnel mine" - desc = "A deadly mine, this one seems to be modified to trigger for humans only?" - -/obj/effect/mine/shrapnel/human_only/on_entered(datum/source, atom/movable/AM) - if(!ishuman(AM)) - return - . = ..() - -/obj/effect/mine/shrapnel/sting - name = "stinger mine" - shrapnel_type = /obj/projectile/bullet/pellet/stingball - -/obj/effect/mine/stun/mineEffect(mob/living/victim) - if(isliving(victim)) - victim.Paralyze(stun_time) - -/obj/effect/mine/kickmine - name = "kick mine" - -/obj/effect/mine/kickmine/mineEffect(mob/victim) - if(isliving(victim) && victim.client) - to_chat(victim, "You have been kicked FOR NO REISIN!") - qdel(victim.client) - - -/obj/effect/mine/gas - name = "oxygen mine" - var/gas_amount = 360 - var/gas_type = "o2" - -/obj/effect/mine/gas/mineEffect(mob/victim) - atmos_spawn_air("[gas_type]=[gas_amount]") - - -/obj/effect/mine/gas/plasma - name = "plasma mine" - gas_type = "plasma" - - -/obj/effect/mine/gas/n2o - name = "\improper N2O mine" - gas_type = "n2o" - - -/obj/effect/mine/gas/water_vapor - name = "chilled vapor mine" - gas_amount = 500 - gas_type = "water_vapor" - -/obj/effect/mine/sound - name = "honkblaster 1000" - var/sound = 'sound/items/bikehorn.ogg' - -/obj/effect/mine/sound/mineEffect(mob/victim) - playsound(loc, sound, 100, TRUE) - - -/obj/effect/mine/sound/bwoink - name = "bwoink mine" - sound = 'sound/effects/adminhelp.ogg' - -/obj/effect/mine/pickup - name = "He" - desc = "He." - icon = 'icons/obj/marg.dmi' - icon_state = "marg" - density = FALSE - var/duration = 0 - pixel_x = -8 - pixel_y = 1 - -/obj/effect/mine/pickup/Initialize() - . = ..() - animate(src, time = 20, loop = -1) - -/obj/effect/mine/pickup/triggermine(mob/victim) - if(triggered) - return - triggered = 1 - invisibility = INVISIBILITY_ABSTRACT - mineEffect(victim) - qdel(src) - - -/obj/effect/mine/pickup/bloodbath - name = "His Odium" - desc = "Embrace my righteous fury." - duration = 1200 //2min - color = "#FF0000" - var/mob/living/doomslayer - var/obj/item/chainsaw/doomslayer/chainsaw - -/obj/effect/mine/pickup/bloodbath/mineEffect(mob/living/carbon/victim) - if(!victim.client || !istype(victim)) - return - to_chat(victim, "RIP AND TEAR") - - INVOKE_ASYNC(src, PROC_REF(blood_delusion), victim) - - chainsaw = new(victim.loc) - victim.log_message("entered a marg frenzy", LOG_ATTACK) - - ADD_TRAIT(chainsaw, TRAIT_NODROP, CHAINSAW_FRENZY_TRAIT) - victim.drop_all_held_items() - victim.put_in_hands(chainsaw, forced = TRUE) - chainsaw.attack_self(victim) - victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25) - to_chat(victim, "KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!") - - var/datum/client_colour/colour = victim.add_client_colour(/datum/client_colour/bloodlust) - QDEL_IN(colour, 11) - doomslayer = victim - RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(end_blood_frenzy)) - QDEL_IN(WEAKREF(src), duration) - -/obj/effect/mine/pickup/bloodbath/proc/end_blood_frenzy() - if(doomslayer) - to_chat(doomslayer, "Your bloodlust seeps back into the bog of your subconscious and you regain self control.") - doomslayer.log_message("exited a blood frenzy", LOG_ATTACK) - if(chainsaw) - qdel(chainsaw) - -/obj/effect/mine/pickup/bloodbath/proc/blood_delusion(mob/living/carbon/victim) - new /datum/hallucination/delusion(victim, TRUE, "demon", duration, 0) - -/obj/effect/mine/pickup/healing - name = "His Benevolence" - desc = "Come, come. Your wounds shall be undone by my mercy." - - -/obj/effect/mine/pickup/healing/mineEffect(mob/living/carbon/victim) - if(!victim.client || !istype(victim)) - return - to_chat(victim, "You feel great!") - victim.revive(full_heal = TRUE, admin_revive = TRUE) - -/obj/effect/mine/pickup/speed - name = "His Purpose" - desc = "Come, let me quicken you to brilliance." - duration = 300 - -/obj/effect/mine/pickup/speed/mineEffect(mob/living/carbon/victim) - if(!victim.client || !istype(victim)) - return - to_chat(victim, "You feel fast!") - victim.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) - addtimer(CALLBACK(src, PROC_REF(finish_effect), victim), duration) - -/obj/effect/mine/pickup/speed/proc/finish_effect(mob/living/carbon/victim) - victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) - to_chat(victim, "You slow down.") diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 3370c8b4543d..d763c46e84e9 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -87,7 +87,7 @@ /obj/item/assembly/flash/handheld = 1, /obj/item/restraints/handcuffs/cable/zipties = 1, /obj/item/restraints/handcuffs = 1, - /obj/item/radio/off = 1, + /obj/item/radio = 1, /obj/item/lighter = 3, /obj/item/storage/box/matches = 3, /obj/item/reagent_containers/syringe/contraband/space_drugs = 1, diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index df7c5ae431c5..437aa7625d71 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1025,7 +1025,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb * * forced- Do we want this to go through 100%? */ /obj/item/proc/tryEmbed(atom/target, forced=FALSE, silent=FALSE) - if(!isbodypart(target) && !iscarbon(target) && !isclosedturf(target)) + if(!isbodypart(target) && !iscarbon(target)) return if(!forced && !LAZYLEN(embedding)) return diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 630759c85afe..2e93b662799a 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -140,8 +140,8 @@ playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE) /obj/item/card/id - name = "identification card" - desc = "A card used to provide ID and determine access across the station." + name = "access card" + desc = "These cards provide access to different sections of a ship." icon_state = "id" item_state = "card-id" lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' @@ -159,7 +159,7 @@ var/obj/machinery/paystand/my_store var/uses_overlays = TRUE var/icon/cached_flat_icon - var/registered_age = 13 // default age for ss13 players + var/registered_age = 18 // default age for ss13 players var/job_icon var/faction_icon @@ -180,10 +180,7 @@ /obj/item/card/id/attack_self(mob/user) if(Adjacent(user)) - var/minor - if(registered_name && registered_age && registered_age < AGE_MINOR) - minor = " (MINOR)" - user.visible_message("[user] shows you: [icon2html(src, viewers(user))] [src.name][minor].", "You show \the [src.name][minor].") + user.visible_message("[user] shows you: [icon2html(src, viewers(user))] \the [initial(name)] [(!registered_name) ? "(" : "([registered_name]"][(!assignment) ? ")" : ", [assignment])"].", "You show \the [initial(name)] [(!registered_name) ? "(" : "([registered_name],"] [(!assignment) ? ")" : "[assignment])"].") add_fingerprint(user) /obj/item/card/id/vv_edit_var(var_name, var_value) @@ -324,12 +321,14 @@ /obj/item/card/id/examine(mob/user) . = ..() if(registered_account) - . += "The account linked to the ID belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr." + . += "The account linked to the card belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr." . += "There's more information below, you can look again to take a closer look..." /obj/item/card/id/examine_more(mob/user) var/list/msg = list("You examine [src] closer, and note the following...") + if(registered_name) + msg += "This access card is assigned to [registered_name]." if(registered_age) msg += "The card indicates that the holder is [registered_age] years old. [(registered_age < AGE_MINOR) ? "There's a holographic stripe that reads 'MINOR: DO NOT SERVE ALCOHOL OR TOBACCO' along the bottom of the card." : ""]" if(mining_points) @@ -407,16 +406,14 @@ /* Usage: update_label() - Sets the id name to whatever registered_name and assignment is + Sets the id name to whatever the assignment is */ /obj/item/card/id/proc/update_label() - var/blank = !registered_name - name = "[blank ? initial(name) : "[registered_name]'s ID Card"][(!assignment) ? "" : " ([assignment])"]" + name = "[(istype(src, /obj/item/card/id/syndicate)) ? "[initial(name)]" : "access card"][(!assignment) ? "" : " ([assignment])"]" /obj/item/card/id/silver - name = "silver identification card" - desc = "A silver card which shows honour and dedication." + desc = "A silver-colored card, usually given to higher-ranking officials in ships and stations." icon_state = "silver" item_state = "silver_id" lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' @@ -428,8 +425,7 @@ update_label() access = list(ACCESS_CHANGE_IDS) /obj/item/card/id/gold - name = "gold identification card" - desc = "A golden card which shows power and might." + desc = "A golden-colored card, usually given to those at the top of the hierarchy in a ship." icon_state = "gold" item_state = "gold_id" lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' @@ -532,10 +528,7 @@ update_label() access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) /obj/item/card/id/syndicate_command - name = "syndicate ID card" - desc = "An ID straight from the Syndicate." - registered_name = "Syndicate" - assignment = "Syndicate Overlord" + desc = "An access card widely utilized by Coalition splinters in the frontier." icon_state = "syndie" access = list(ACCESS_SYNDICATE) uses_overlays = FALSE @@ -569,15 +562,12 @@ update_label() /obj/item/card/id/patient //Aegis ID assignment = "Long Term Patient" uses_overlays = FALSE - access = list(ACCESS_SYNDICATE) /obj/item/card/id/captains_spare - desc = "The spare ID of the High Lord himself." icon_state = "gold" item_state = "gold_id" lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' - registered_name = "Captain" assignment = "Captain" registered_age = null @@ -596,11 +586,9 @@ update_label() ..() /obj/item/card/id/centcom - name = "\improper CentCom ID" - desc = "An ID straight from Central Command." + name = "\improper Nanotrasen Central Command access card" + desc = "An access card sourced from Nanotrasen's Central Command." icon_state = "centcom" - registered_name = "Central Command" - assignment = "Central Command" uses_overlays = FALSE registered_age = null @@ -615,8 +603,6 @@ update_label() name = "\improper CentCom ID" desc = "An ERT ID card." icon_state = "ert_commander" - registered_name = "Emergency Response Team Commander" - assignment = "Emergency Response Team Commander" uses_overlays = FALSE registered_age = null @@ -625,8 +611,6 @@ update_label() . = ..() /obj/item/card/id/ert/security - registered_name = "Security Response Officer" - assignment = "Security Response Officer" icon_state = "ert_security" /obj/item/card/id/ert/security/Initialize() @@ -634,8 +618,6 @@ update_label() . = ..() /obj/item/card/id/ert/engineer - registered_name = "Engineering Response Officer" - assignment = "Engineering Response Officer" icon_state = "ert_engineer" /obj/item/card/id/ert/engineer/Initialize() @@ -643,8 +625,6 @@ update_label() . = ..() /obj/item/card/id/ert/medical - registered_name = "Medical Response Officer" - assignment = "Medical Response Officer" icon_state = "ert_medic" /obj/item/card/id/ert/medical/Initialize() @@ -652,8 +632,6 @@ update_label() . = ..() /obj/item/card/id/ert/chaplain - registered_name = "Religious Response Officer" - assignment = "Religious Response Officer" icon_state = "ert_chaplain" /obj/item/card/id/ert/chaplain/Initialize() @@ -661,8 +639,6 @@ update_label() . = ..() /obj/item/card/id/ert/janitor - registered_name = "Janitorial Response Officer" - assignment = "Janitorial Response Officer" icon_state = "ert_janitor" /obj/item/card/id/ert/janitor/Initialize() @@ -670,8 +646,6 @@ update_label() . = ..() /obj/item/card/id/ert/clown - registered_name = "Entertainment Response Officer" - assignment = "Entertainment Response Officer" icon_state = "ert_clown" /obj/item/card/id/ert/clown/Initialize() @@ -679,12 +653,10 @@ update_label() . = ..() /obj/item/card/id/ert/deathsquad - name = "\improper Death Squad ID" - desc = "A Death Squad ID card." + desc = "An access card colored in black and red." icon_state = "deathsquad" //NO NO SIR DEATH SQUADS ARENT A PART OF NANOTRASEN AT ALL - registered_name = "Death Commando" - assignment = "Death Commando" uses_overlays = FALSE + job_icon = "deathsquad" /obj/item/card/id/debug name = "\improper Debug ID" diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 7b2724f9e53f..6a5fa6e70a12 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -257,7 +257,7 @@ /obj/item/circuitboard/machine/power_turbine name = "Power Turbine (Machine Board)" icon_state = "engineering" - build_path = /obj/machinery/power/turbine + build_path = /obj/machinery/power/shuttle/engine/turbine req_components = list( /obj/item/stack/cable_coil = 5, /obj/item/stock_parts/capacitor = 6) @@ -389,6 +389,17 @@ name = "Freezer (Machine Board)" build_path = PATH_FREEZER +/obj/item/circuitboard/machine/ship_gravity + name = "Gravity Generator (Machine Board)" + icon_state = "engineering" + build_path = /obj/machinery/power/ship_gravity + req_components = list( + /obj/item/stock_parts/capacitor = 5, + /obj/item/stack/sheet/bluespace_crystal = 1, + /obj/item/stock_parts/micro_laser = 4 + ) + needs_anchored = FALSE + #undef PATH_FREEZER #undef PATH_HEATER diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 5ca8fa313c60..d703ae86ca7d 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -43,16 +43,15 @@ var/drawtype var/text_buffer = "" - var/static/list/graffiti = list("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","body","cyka","star","poseur tag","prolizard","antilizard") + var/static/list/graffiti = list("face","guy","end","body") + var/static/list/code = list("getout","empty","unsafe","camp","safepath","jackpot","dismantle") var/static/list/symbols = list("danger","firedanger","electricdanger","biohazard","radiation","safe","evac","space","med","trade","shop","food","peace","like","skull","nay","heart","credit") - var/static/list/drawings = list("smallbrush","brush","largebrush","splatter","snake","stickman","carp","ghost","clown","taser","disk","fireaxe","toolbox","corgi","cat","toilet","blueprint","beepsky","scroll","bottle","shotgun") - var/static/list/oriented = list("arrow","line","thinline","shortline","body","chevron","footprint","clawprint","pawprint") // These turn to face the same way as the drawer - var/static/list/runes = list("rune1","rune2","rune3","rune4","rune5","rune6") + var/static/list/drawings = list("smallbrush","brush","splatter","snake","carp","ghost","taser","disk","fireaxe","toolbox","corgi","cat","toilet","blueprint","beepsky","scroll","bottle","shotgun") + var/static/list/oriented = list("arrow","line","thinline","shortline","body","chevron","footprint","clawprint","pawprint","dogo","nogo") // These turn to face the same way as the drawer var/static/list/randoms = list(RANDOM_ANY, RANDOM_RUNE, RANDOM_ORIENTED, RANDOM_NUMBER, RANDOM_GRAFFITI, RANDOM_LETTER, RANDOM_SYMBOL, RANDOM_PUNCTUATION, RANDOM_DRAWING) - var/static/list/graffiti_large_h = list("yiffhell", "secborg", "paint") - var/static/list/all_drawables = graffiti + symbols + drawings + oriented + runes + graffiti_large_h + var/static/list/all_drawables = graffiti + code + symbols + drawings + oriented var/paint_mode = PAINT_NORMAL @@ -176,15 +175,15 @@ . = list() - var/list/g_items = list() + var/list/g_items = list() //i hate tgcode . += list(list("name" = "Graffiti", "items" = g_items)) for(var/g in graffiti) g_items += list(list("item" = g)) - var/list/glh_items = list() - . += list(list("name" = "Graffiti Large Horizontal", "items" = glh_items)) - for(var/glh in graffiti_large_h) - glh_items += list(list("item" = glh)) + var/list/c_items = list() + . += list(list("name" = "Code", "items" = c_items)) + for(var/c in code) + c_items += list(list("item" = c)) var/list/S_items = list() . += list(list("name" = "Symbols", "items" = S_items)) @@ -201,11 +200,6 @@ for(var/O in oriented) O_items += list(list("item" = O)) - var/list/R_items = list() - . += list(list(name = "Runes", "items" = R_items)) - for(var/R in runes) - R_items += list(list("item" = R)) - var/list/rand_items = list() . += list(list(name = "Random", "items" = rand_items)) for(var/i in randoms) @@ -245,9 +239,6 @@ drawtype = stencil . = TRUE text_buffer = "" - if(stencil in graffiti_large_h) - paint_mode = PAINT_LARGE_HORIZONTAL - text_buffer = "" else paint_mode = PAINT_NORMAL if("select_colour") @@ -281,8 +272,6 @@ var/istagger = HAS_TRAIT(user, TRAIT_TAGGER) var/cost = 1 - if(paint_mode == PAINT_LARGE_HORIZONTAL) - cost = 5 if(istype(target, /obj/item/canvas)) cost = 0 if(ishuman(user)) @@ -311,8 +300,6 @@ drawing = pick(drawings) if(RANDOM_GRAFFITI) drawing = pick(graffiti) - if(RANDOM_RUNE) - drawing = pick(runes) if(RANDOM_ORIENTED) drawing = pick(oriented) if(RANDOM_NUMBER) diff --git a/code/game/objects/items/devices/mines.dm b/code/game/objects/items/devices/mines.dm new file mode 100644 index 000000000000..112e26e1303b --- /dev/null +++ b/code/game/objects/items/devices/mines.dm @@ -0,0 +1,708 @@ + +/obj/item/mine + name = "mine" + desc = "An anti-personnel mine. This one explodes into nothing and does nothing. Why can you see this? You should't be able to see this. Stop looking at this." + icon = 'icons/obj/landmine.dmi' + w_class = WEIGHT_CLASS_SMALL + throw_speed = 3 + throw_range = 5 + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + icon_state = "mine" + item_state = "assembly"//when we get custom sprites replace this. please + base_icon_state = "mine" + + /// Is our mine live? + var/armed = FALSE + /// Is our mine currently exploding? + var/triggered = FALSE + + /// Sets a delay for mines going live after being planted + var/arm_delay = 5 SECONDS + /// Use to set a delay after activation to trigger the explosion. + var/blast_delay = 1 DECISECONDS + + var/manufacturer = MANUFACTURER_NONE + + +/obj/item/mine/Initialize(mapload) + . = ..() + if(armed) + now_armed() + + +/obj/item/mine/examine(mob/user) + . = ..() + if(!armed) + . += span_info("It appears to be inactive...") + else + . += span_info("It looks ready to explode.") + + if(manufacturer) + . += span_notice("It has [manufacturer] engraved on it.") + +/obj/item/mine/update_icon_state() + . = ..() + icon_state = "[base_icon_state][triggered ? "_exploding" : null][!armed && anchored ? "_arming" : null][armed && anchored && !triggered ? "_armed" : null]" + +//mines have a small chance to be triggered by damage, but they take longer to explode +/obj/item/mine/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) + . = ..() + if(prob(35) & obj_integrity > 0) + blast_delay = blast_delay * 2 + trigger_mine() + +//insert your horrible fate here +/obj/item/mine/proc/mine_effect(mob/victim) + return + +//handles controlled deactivation +/obj/item/mine/proc/disarm() + if(triggered) //no turning back now + return + anchored = FALSE + armed = FALSE + update_appearance(UPDATE_ICON_STATE) + return + +//using an unarmed mine inhand deploys it. +/obj/item/mine/attack_self(mob/user) + if(!armed) + user.visible_message(span_danger("[user] deploys the [src]."), span_notice("You deploy the [src].")) + + user.dropItemToGround(src) + anchored = TRUE + playsound(src, 'sound/machines/click.ogg', 60, TRUE) + + if(arm_delay) + armed = FALSE + update_appearance(UPDATE_ICON_STATE) + addtimer(CALLBACK(src, PROC_REF(now_armed)), arm_delay) + else + armed = TRUE + message_admins("[key_name(user)] has placed \a [src] at ([x],[y],[z]).") + +//let them know the mine's done cooking +/obj/item/mine/proc/now_armed() + armed = TRUE + update_appearance(UPDATE_ICON_STATE) + playsound(src, 'sound/machines/nuke/angry_beep.ogg', 55, FALSE, 1) + visible_message("\The [src] beeps softly, indicating it is now active.", vision_distance = COMBAT_MESSAGE_RANGE) + +/// Can this mine trigger on the passed movable? +/obj/item/mine/proc/can_trigger(atom/movable/on_who) + //var/badtype = typecacheof(list(/obj/effect, /obj/item/mine)) + if(triggered || !isturf(loc) || !armed || iseffect(on_who) || istype(on_who, /obj/item/mine)) + return FALSE + //if(on_who == badtype)//no recursive self triggering. Bad landmine + // return FALSE + return TRUE + +/// When something sets off a mine +/obj/item/mine/proc/trigger_mine(atom/movable/triggerer) + if(obj_integrity <= 0) + return + if(triggered) //too busy detonating to detonate again + return + if(triggerer) + triggerer.visible_message(span_danger("[icon2html(src, viewers(src))] [triggerer] sets off \the [src]. It's gonna blow!"), span_danger("[icon2html(src, viewers(src))] \The [src] activates.")) + else + visible_message(span_danger("[icon2html(src, viewers(src))] \the [src] begins to flash bright red!")) + triggered = TRUE + update_appearance(UPDATE_ICON_STATE) + if(blast_delay >= 5 DECISECONDS) + playsound(src, 'sound/items/mine_activate.ogg', 70, FALSE) + else + playsound(src, 'sound/items/mine_activate_short.ogg', 80, FALSE) + light_color = "#FF0000" + light_power = 5 + light_range = 3 + if(!blast_delay)//addtimer gets mad if the delay is 0 + blast_now(triggerer) + else + addtimer(CALLBACK(src, PROC_REF(blast_now), triggerer), blast_delay) + +//NOW we actually blow up +/obj/item/mine/proc/blast_now(atom/movable/triggerer) + var/datum/effect_system/spark_spread/sporks = new /datum/effect_system/spark_spread + sporks.set_up(3, 1, src) + sporks.start() + if(ismob(triggerer)) + mine_effect(triggerer) + else + mine_effect() + visible_message(span_danger("[icon2html(src, viewers(src))] \the [src] detonates!")) + SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED, triggerer) + if(triggered)//setting triggered to false in mine_effect() creates a reusable mine + qdel(src) + +//trying to pick up a live mine is probably up there when it comes to terrible ideas +/obj/item/mine/attack_hand(mob/user) + if(armed) + user.visible_message(span_warning("[user] extends their hand towards \the [src]!"), span_userdanger("You extend your arms to pick up \the [src], knowing that it will likely blow up when you touch it!")) + if(do_after(user, 5 SECONDS, target = src))//SO SO generous. You can still step back from the edge. + if(prob(10)) + user.visible_message(span_notice("[user] picks up \the [src], which miraculously doesn't explode!"), span_notice("You pick up \the [src], which miraculously doesn't explode!")) + disarm() + else + user.visible_message(span_danger("[user] attempts to pick up \the [src] only to hear a beep as it activates in their hand!"), span_danger("You attempt to pick up \the [src] only to hear a beep as it activates in your hands!")) + anchored = FALSE + trigger_mine(user) + return . =..() + else + user.visible_message(span_notice("[user] withdraws their hand from \the [src]."), span_notice("You decide against picking up \the [src].")) + . =..() + +//just don't. +/obj/item/mine/attackby(obj/item/I, mob/user) + if(!armed) + to_chat(user, span_notice("You smack \the [src] with [I]. Thankfully, nothing happens.")) + return + else//please stop hitting the live mine with a rock + if(user.a_intent != INTENT_HARM)//are you SURE you want to hit the live mine with a rock + user.visible_message(user, span_notice("[user] gently pokes \the [src] with [I]. Nothing seems to happen."), span_notice("You gently prod \the [src] with [I]. Thankfully, nothing happens.")) + else//at this point it's just natural selection + user.visible_message(span_danger("[user] hits \the [src] with [I], activating it!"), span_userdanger("[icon2html(src, viewers(src))]You hit \the [src] with [I]. The light goes red.")) + trigger_mine(user) + +// +//PRESSURE BASED MINE: +//Mine that explodes when stepped on. +/obj/item/mine/pressure + name = "dummy landmine" + /// When true, mines trigger instantly on being stepped upon + var/hair_trigger = FALSE + /// Has the mine loc been entered? + var/clicked = FALSE + /// Prevents a mine from being screwdrivable (e.g. cannot be disarmed) + var/sealed = FALSE + /// Disables the mine without disarming it. perfect for practical jokes + var/dud = FALSE + + /// Are the wires exposed? + var/open_panel = FALSE + + /// Who's got their foot on the mine's pressure plate + /// Stepping on the mine will set this to the first mob who stepped over it + /// The mine will not detonate via movement unless the first mob steps off of it + var/datum/weakref/foot_on_mine + +/obj/item/mine/pressure/Initialize() + . = ..() + var/static/list/loc_connections = list( + COMSIG_ATOM_ENTERED = PROC_REF(on_entered), + COMSIG_ATOM_EXITED = PROC_REF(on_exited), + ) + AddElement(/datum/element/connect_loc, loc_connections) + wires = new /datum/wires/mine(src) + +/obj/item/mine/pressure/examine(mob/user) + . = ..() + if(hair_trigger) + . += span_danger("It's been rigged to detonate as soon as someone steps on it.") + else + var/atom/movable/unlucky_sod = foot_on_mine?.resolve() + if(user == unlucky_sod) + . += span_bolddanger("The pressure plate is depressed. Any movement you make will set it off now.") + else if(!isnull(unlucky_sod)) + . += span_danger("The pressure plate is depressed by [unlucky_sod]. Any move they make'll set it off now.") + +//step 1: the mistake +/obj/item/mine/pressure/proc/on_entered(datum/source, atom/movable/arrived) + SIGNAL_HANDLER + if(!can_trigger(arrived)) + return + // Flying = can't step on a mine + if(arrived.movement_type & FLYING) + return + //no cheap disarming + if(arrived.throwing && isitem(arrived)) + return + // Someone already on it + if(foot_on_mine?.resolve()) + return + + if(dud == FALSE)//we don't actually need this if the mine's been disabled + foot_on_mine = WEAKREF(arrived) + + if(ismob(arrived)) + var/mob/living/fool = arrived + fool.do_alert_animation(fool) + if(!hair_trigger) + fool.Immobilize(25 DECISECONDS, TRUE) + to_chat(fool, span_userdanger("You step on \the [src] and freeze.")) + visible_message(span_danger("[icon2html(src, viewers(src))] *click*")) + if(dud == FALSE)//see wirecutting + clicked = TRUE + if(hair_trigger) + trigger_mine(arrived) + playsound(src, 'sound/machines/click.ogg', 100, TRUE) + +//step 2: the consequences +/obj/item/mine/pressure/proc/on_exited(datum/source, atom/movable/gone) + SIGNAL_HANDLER + if(hair_trigger) + return + if(!clicked) + return + if(!can_trigger(gone)) + return + // Check that the guy who's on it is stepping off + if(foot_on_mine && !IS_WEAKREF_OF(gone, foot_on_mine)) + return + INVOKE_ASYNC(src, PROC_REF(trigger_mine), gone) + foot_on_mine = null + +/obj/item/mine/pressure/disarm() + clicked = FALSE + . = ..() + +//handles disarming(and failing to disarm) +/obj/item/mine/pressure/attackby(obj/item/I, mob/user) + if(I.tool_behaviour == TOOL_SCREWDRIVER) + if(sealed) + to_chat(user, "You can't see any way to access \the [src]'s wiring.") + return + open_panel = !open_panel + update_appearance(UPDATE_ICON_STATE) + to_chat(user, "You [open_panel ? "reveal" : "hide"] \the [src]'s wiring.") + I.play_tool_sound(src, 50) + return + else if(is_wire_tool(I) && open_panel) + wires.interact(user) + return + else + . = ..() + +// +//PROXIMITY MINES +//Mines that explode when someone moves nearby. Simpler, because I don't have to worry about saving step info or disarming logic +// + +/obj/item/mine/proximity + name = "dummy proximity mine" + blast_delay = 15 DECISECONDS + arm_delay = 10 SECONDS//clear the area + ///needed for the proximity checks. + var/datum/proximity_monitor/proximity_monitor + var/proximity_range = 2 + +/obj/item/mine/proximity/Initialize(mapload) + . = ..() + START_PROCESSING(SSfastprocess, src) + +/obj/item/mine/proximity/examine(mob/user) + . = ..() + if(armed) + . += span_danger("It's been rigged to detonate as soon as someone moves nearby...") + else + . += span_notice("When armed, it activates based on the proximity of living targets.") + +/obj/item/mine/proximity/now_armed() + . = ..() + proximity_monitor = new(src, proximity_range) + light_color = "#FF0000" + light_power = 1 + light_range = 1 + +/obj/item/mine/proximity/disarm() + . = ..() + QDEL_NULL(proximity_monitor) + +/obj/item/mine/proximity/Destroy() + STOP_PROCESSING(SSfastprocess, src) + QDEL_NULL(proximity_monitor) + . = ..() + +/obj/item/mine/proximity/HasProximity(atom/movable/triggerer) + if(!iscarbon(triggerer))//let's keep these on player movements for now. + return + if(!can_trigger(triggerer)) + return + var/mob/living/clueless = triggerer + clueless.do_alert_animation(clueless) + trigger_mine(triggerer) + QDEL_NULL(proximity_monitor) + return + +// +//LANDMINE TYPES +//Rylie please help me make these more immersive +// + +/obj/item/mine/pressure/explosive + name = "\improper G-80 Landmine" + desc = "An anti-infantry explosive produced during the corporate wars. Watch your step." + + //customize explosive power + var/range_devastation = 0 + var/range_heavy = 1 + var/range_light = 5 + var/range_flame = 1 + + //using this to indicate pb + var/range_flash = 1 + + //customize shrapnel. Magnitude zero prevents them from spawning + var/shrapnel_type = /obj/projectile/bullet/shrapnel + var/shrapnel_magnitude = 3 + + /// If TRUE, we spawn extra pellets to eviscerate a person still sitting on it, otherwise it just spawns a ring of pellets around the tile we're on (making setting it off an offensive move) + var/shred_triggerer = TRUE + + manufacturer = MANUFACTURER_SCARBOROUGH + +/obj/item/mine/pressure/explosive/mine_effect(mob/victim) + explosion(loc, range_devastation, range_heavy, range_light, range_flash, 1, 0, range_flame, 0, 1) + if(shrapnel_magnitude > 0) + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) + + +/obj/item/mine/pressure/explosive/rusty + name = "\improper Rusted Landmine" + desc = "An anti-infantry explosive, designed to go off underfoot. This one has seen better days." + manufacturer = MANUFACTURER_NONE + range_heavy = 0 + range_light = 3 + shrapnel_type = /obj/projectile/bullet/shrapnel/rusty + + +/obj/item/mine/pressure/explosive/fire + name = "\improper G-82 Incindeary" + desc = "An anti-infantry explosive produced during the corporate wars. Transforms into superheated slag and a ball of fire on detonation. " + + range_flame = 6 + range_light = 3 + range_flash = 3 + + shrapnel_type = /obj/projectile/bullet/shrapnel/hot + shrapnel_magnitude = 4 + +/obj/item/mine/pressure/explosive/fire/mine_effect(mob/victim) + if(victim.is_holding(src))//in case it's been picked up + for(var/turf/T in view(4,victim)) + T.IgniteTurf(15) + new /obj/effect/hotspot(T) + else + for(var/turf/T in view(4,src)) + T.IgniteTurf(15) + new /obj/effect/hotspot(T) + . = ..() + + +/obj/item/mine/pressure/explosive/heavy + name = "\improper G-81 Anti-Tank Mine" + desc = "An immense anti-vehicle explosive built during the corporate wars. Someone has recklessly switched out the detonator for one that activates for lighter targets." + w_class = WEIGHT_CLASS_BULKY + range_heavy = 6 + range_light = 9 + shrapnel_magnitude = 7 + shrapnel_type = /obj/projectile/bullet/shrapnel/mega + blast_delay = 50//run. + sealed = TRUE//unless we specifically give it to people disarmed, we probably don't want them stealing this + + +/obj/item/mine/pressure/explosive/shrapnel + name = "\improper G-84 Fragmentation" + desc = "An anti-infantry explosive built during the corporate wars. Metal banding inside creates additional deadly shrapnel on detonation. " + + range_heavy = 1 + range_light = 4 + + shrapnel_magnitude = 6 + shred_triggerer = TRUE + +/obj/item/mine/pressure/explosive/rad + name = "\improper G-85 Fission" + desc = "An anti-infantry explosive produced during the corporate wars. This one detonates a small microfission core, creating a bloom of deadly radiation. " + range_light = 4 + range_flame = 2 + shrapnel_magnitude = 7 + shrapnel_type = /obj/projectile/bullet/shrapnel/spicy + var/radpower = 750 + +/obj/item/mine/pressure/explosive/rad/mine_effect(mob/victim) + radiation_pulse(src, radpower, 1) + . = ..() + +//put this on military ships for disarming practice +/obj/item/mine/pressure/training + name = "\improper G-MTH Defusal Trainer" + desc = "A mothballed anti-personnel explosive, equipped with VISCERAL DEFUSAL ACTION for training purposes. Though Scarborough was forced to decomission their stockpiles of mines as part of the ceasefire, the deployed minefields remain." + arm_delay = 2 SECONDS + manufacturer = MANUFACTURER_SCARBOROUGH + +/obj/item/mine/pressure/training/mine_effect(mob/living/victim) + src.say("BOOM! Better luck next time!") + src.visible_message(span_notice("The mine resets itself for another disarming attempt.")) + triggered = FALSE + disarm() + . = ..() + +/obj/item/mine/pressure/gas + name = "chilled vapor mine" + desc = "A non-lethal security deterrent." + var/gas_amount = 500 + var/gas_type = "water_vapor" + hair_trigger = TRUE + +/obj/item/mine/pressure/gas/mine_effect(mob/victim) + atmos_spawn_air("[gas_type]=[gas_amount]") + + +/obj/item/mine/proximity/explosive + name = "\improper G-80P Bouncer" + desc = "An anti-infantry explosive produced during the corporate wars. This one has been rearmed with a proximity movement detector." + + var/range_devastation = 0 + var/range_heavy = 2 + var/range_light = 4 + var/range_flame = 1 + + var/range_flash = 1 + + var/shrapnel_type = /obj/projectile/bullet/shrapnel + var/shrapnel_magnitude = 5 + + manufacturer = MANUFACTURER_SCARBOROUGH + +/obj/item/mine/proximity/explosive/mine_effect(mob/victim) + explosion(loc, range_devastation, range_heavy, range_light, range_flash, 1, 0, range_flame, 0, 1) + if(shrapnel_magnitude > 0) + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) + + +//like all real 'less' than lethal crowd control options this is, in fact, not very good at being nonlethal +/obj/item/mine/proximity/explosive/sting + name = "\improper'Stinger' Crowd Management Device" + desc = "A \"less\" than lethal crowd control weapon, designed to demoralise and scatter anti-NT protestors. The bands of ballistic gel inside strike targets and incapacitate without causing serious maiming. In Theory." + + range_heavy = 0 + range_light = 1 + range_flash = 3 + range_flame = 0 + + shrapnel_magnitude = 8 + shrapnel_type = /obj/projectile/bullet/pellet/stingball + manufacturer = MANUFACTURER_NANOTRASEN_OLD + + +/obj/item/mine/proximity/explosive/plasma + name = "\improper Etherbor EP-3" + desc = "An anti-infantry explosive designed by the PGF for denial of territory to enemy forces. Radiates high energy plasma to eradicate nearby targets." + range_light = 2 + range_flame = 3 + range_heavy = 0 + shrapnel_magnitude = 8 + shrapnel_type = /obj/projectile/energy/plasmabolt + manufacturer = MANUFACTURER_PGF + +/obj/item/mine/proximity/explosive/plasma/mine_effect(mob/victim) + if(victim.is_holding(src))//in case it's been picked up + for(var/turf/T in view(3,victim)) + T.IgniteTurf(25, "green") + else + for(var/turf/T in view(3,src)) + T.IgniteTurf(25, "green") + . = ..() + +//Manhacks... so pretty... +/obj/item/mine/proximity/spawner + name = "debug spawner mine" + desc = "Real no Virus. 100% free. Coders hate him!" + var/spawn_type = null //manhacks go here :) + var/spawn_number = 5 + +/obj/item/mine/proximity/spawner/mine_effect(mob/victim) + if(isturf(loc)) + var/turf/T = get_turf(src) + playsound(T, 'sound/effects/phasein.ogg', 100, TRUE) + spawn_and_random_walk(spawn_type, T, spawn_number, walk_chance=50, admin_spawn=((flags_1 & ADMIN_SPAWNED_1) ? TRUE : FALSE)) + . = ..() + +/obj/item/mine/proximity/spawner/manhack + name = "\improper P-83 Lacerator" + desc = "An anti-infantry device produced during the corporate wars. The explosive payload has been swapped out for 'viscerator'-type antipersonnel drones." + spawn_type = /mob/living/simple_animal/hostile/viscerator + +// +//GIMMICK MINES// +//pretty much exclusively for adminbus & code dependencies +// + +/obj/item/mine/pressure/kickmine + name = "\improper A-00 'Adminbus'" + desc = "An Anti-Griefer proximity expulsive. Delivers Justice." + blast_delay = null//funnier this way + hair_trigger = TRUE + +/obj/item/mine/pressure/kickmine/mine_effect(mob/victim) + if(isliving(victim) && victim.client && Adjacent(victim)) + to_chat(victim, span_userdanger("You have been kicked from the game. Take this time to think about what you've done.")) + qdel(victim.client) + +/obj/item/mine/pressure/sound + name = "sonic mine" + desc = "A potent tool of psychological warfare." + var/sound = 'sound/effects/adminhelp.ogg' + blast_delay = null + hair_trigger = TRUE + +/obj/item/mine/pressure/sound/mine_effect(mob/victim) + playsound(loc, sound, 100, TRUE) + +/obj/item/mine/pressure/pickup + name = "pickup mine" + desc = "does nothing" + icon = 'icons/obj/marg.dmi' + icon_state = "marg" + density = FALSE + var/duration = 0 + pixel_x = -8 + pixel_y = 1 + anchored = TRUE + armed = TRUE + blast_delay = null + hair_trigger = TRUE + +/obj/item/mine/pressure/pickup/Initialize() + . = ..() + animate(src, time = 20, loop = -1) + +/obj/item/mine/pressure/pickup/trigger_mine(mob/victim) + if(triggered) + return + triggered = TRUE + invisibility = INVISIBILITY_ABSTRACT + mine_effect(victim) + qdel(src) + + +/obj/item/mine/pressure/pickup/bloodbath + name = "bloody orb" + desc = "Embrace righteous fury." + duration = 1200 //2min + color = "#FF0000" + var/mob/living/doomslayer + var/obj/item/chainsaw/doomslayer/chainsaw + +/obj/item/mine/pressure/pickup/bloodbath/mine_effect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + to_chat(victim, "RIP AND TEAR") + + INVOKE_ASYNC(src, PROC_REF(blood_delusion), victim) + + chainsaw = new(victim.loc) + victim.log_message("entered a marg frenzy", LOG_ATTACK) + + ADD_TRAIT(chainsaw, TRAIT_NODROP, CHAINSAW_FRENZY_TRAIT) + victim.drop_all_held_items() + victim.put_in_hands(chainsaw, forced = TRUE) + chainsaw.attack_self(victim) + victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,25) + to_chat(victim, "KILL, KILL, KILL! YOU HAVE NO ALLIES ANYMORE, KILL THEM ALL!") + + var/datum/client_colour/colour = victim.add_client_colour(/datum/client_colour/bloodlust) + QDEL_IN(colour, 11) + doomslayer = victim + RegisterSignal(src, COMSIG_PARENT_QDELETING, PROC_REF(end_blood_frenzy)) + QDEL_IN(WEAKREF(src), duration) + +/obj/item/mine/pressure/pickup/bloodbath/proc/end_blood_frenzy() + if(doomslayer) + to_chat(doomslayer, "Your bloodlust seeps back into the bog of your subconscious and you regain self control.") + doomslayer.log_message("exited a blood frenzy", LOG_ATTACK) + if(chainsaw) + qdel(chainsaw) + +/obj/item/mine/pressure/pickup/bloodbath/proc/blood_delusion(mob/living/carbon/victim) + new /datum/hallucination/delusion(victim, TRUE, "demon", duration, 0) + +/obj/item/mine/pressure/pickup/healing + name = "healing orb" + desc = "Your wounds shall be undone." + +/obj/item/mine/pressure/pickup/healing/mine_effect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + to_chat(victim, "You feel great!") + victim.revive(full_heal = TRUE, admin_revive = TRUE) + +/obj/item/mine/pressure/pickup/speed + name = "quick orb" + desc = "Quickens you." + duration = 300 + +/obj/item/mine/pressure/pickup/speed/mine_effect(mob/living/carbon/victim) + if(!victim.client || !istype(victim)) + return + to_chat(victim, "You feel fast!") + victim.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) + addtimer(CALLBACK(src, PROC_REF(finish_effect), victim), duration) + +/obj/item/mine/pressure/pickup/speed/proc/finish_effect(mob/living/carbon/victim) + victim.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) + to_chat(victim, "You slow down.") + + + +// +//mapping tool that generates "live" variants of all mine subtypes, which are anchored and ready to blow. +//Add new mine variants you make below as a LIVE_MINE_HELPER define containing their subtyping. +// + +#define LIVE_MINE_HELPER(mine_type) \ + /obj/item/mine/##mine_type/live { \ + anchored = TRUE; \ + armed = TRUE; \ + } + +LIVE_MINE_HELPER(pressure/explosive) +LIVE_MINE_HELPER(pressure/explosive/fire) +LIVE_MINE_HELPER(pressure/explosive/rusty) +LIVE_MINE_HELPER(pressure/explosive/rad) +LIVE_MINE_HELPER(pressure/explosive/heavy) +LIVE_MINE_HELPER(pressure/explosive/shrapnel) + +LIVE_MINE_HELPER(proximity/explosive) +LIVE_MINE_HELPER(proximity/explosive/sting) +LIVE_MINE_HELPER(proximity/spawner/manhack) +LIVE_MINE_HELPER(proximity/explosive/plasma) + +LIVE_MINE_HELPER(pressure/gas) +LIVE_MINE_HELPER(pressure/kickmine) +LIVE_MINE_HELPER(pressure/sound) + +// +// spawners (random mines, minefields, non-guaranteed mine) +// + +/obj/effect/spawner/lootdrop/mine + name = "live mine spawner (random)" + lootcount = 1 + fan_out_items = TRUE + loot = list( + /obj/item/mine/pressure/explosive/live = 10, + /obj/item/mine/pressure/explosive/shrapnel/live = 3, + /obj/item/mine/pressure/explosive/rad/live = 3, + /obj/item/mine/pressure/explosive/fire/live = 3) + +/obj/effect/spawner/minefield + name = "minefield spawner" + var/minerange = 9 + var/minetype = /obj/item/mine/pressure/explosive/rusty/live + +/obj/effect/spawner/minefield/Initialize(mapload) + . = ..() + for(var/turf/open/T in view(minerange,loc)) + if(prob(5)) + new minetype(T) + +/obj/effect/spawner/minefield/random + name = "random minefield spawner" + minetype = /obj/effect/spawner/lootdrop/mine + +/obj/effect/spawner/minefield/manhack + name = "manhack field spawner" + minetype = /obj/item/mine/proximity/spawner/manhack/live diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index dc35bebb1e30..cc528f103fe2 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -27,7 +27,7 @@ var/last_chatter_time // The time since we last played a radio chatter sound. (WS edit - Radio Chatter #434) var/broadcasting = FALSE // Whether the radio will transmit dialogue it hears nearby. - var/listening = TRUE // Whether the radio is currently receiving. + var/listening = FALSE // Whether the radio is currently receiving. var/prison_radio = FALSE // If true, the transmit wire starts cut. var/unscrewed = FALSE // Whether wires are accessible. Toggleable by screwdrivering. var/freerange = FALSE // If true, the radio has access to the full spectrum. @@ -436,12 +436,6 @@ recalculateChannels() - -/obj/item/radio/off // Station bounced radios, their only difference is spawning with the speakers off, this was made to help the lag. - listening = 0 // And it's nice to have a subtype too for future features. - dog_fashion = /datum/dog_fashion/back - - /obj/item/radio/old name = "old radio" icon_state = "radio" diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm index 8bf29c9a807a..959649c8c59b 100644 --- a/code/game/objects/items/shrapnel.dm +++ b/code/game/objects/items/shrapnel.dm @@ -1,6 +1,6 @@ /obj/item/shrapnel // frag grenades name = "shrapnel shard" - embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=4, embed_chance_turf_mod=-100) + embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=2, embed_chance_turf_mod=-100) custom_materials = list(/datum/material/iron=50) armour_penetration = -20 icon = 'icons/obj/shards.dmi' @@ -8,9 +8,14 @@ w_class = WEIGHT_CLASS_TINY item_flags = DROPDEL -/obj/item/shrapnel/stingball // stingbang grenades - name = "stingball" - embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15, embed_chance_turf_mod=-100) +/obj/item/shrapnel/hot + name = "molten slag" + embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=2, embed_chance_turf_mod=-100) + damtype = BURN + +/obj/item/shrapnel/stingball + name = "clump of ballistic gel" + embedding = list(embed_chance=15, fall_chance=2, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.8, pain_mult=3, jostle_pain_mult=5, rip_time=15, embed_chance_turf_mod=-100) icon_state = "tiny" /obj/item/shrapnel/bullet // bullets @@ -28,35 +33,79 @@ /obj/projectile/bullet/shrapnel name = "flying shrapnel shard" - damage = 9 + damage = 10 range = 10 - armour_penetration = -30 - dismemberment = 5 + armour_penetration = -20 + dismemberment = 25 ricochets_max = 2 ricochet_chance = 40 shrapnel_type = /obj/item/shrapnel ricochet_incidence_leeway = 60 hit_stunned_targets = TRUE +/obj/projectile/bullet/shrapnel/Initialize() + . = ..() + def_zone = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_CHEST, BODY_ZONE_HEAD, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) + +/obj/projectile/bullet/shrapnel/rusty + damage = 8 + armour_penetration = -35 + dismemberment = 15 + ricochets_max = 3//duller = less likely to stick in a wall + ricochet_chance = 60 + /obj/projectile/bullet/shrapnel/mega + damage = 20 name = "flying shrapnel hunk" range = 25 - dismemberment = 10 + dismemberment = 35 ricochets_max = 4 ricochet_chance = 90 ricochet_decay_chance = 0.9 +/obj/projectile/bullet/shrapnel/hot + name = "white-hot metal slag" + damage = 8 + range = 8 + armour_penetration = -35 + dismemberment = 10 + shrapnel_type = /obj/item/shrapnel/hot + damage_type = BURN + +/obj/projectile/bullet/shrapnel/hot/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(15) + M.IgniteMob() + +/obj/projectile/bullet/shrapnel/spicy + name = "radioactive slag" + damage_type = BURN + damage = 10 + range = 8 + dismemberment = 10 + armour_penetration = -35 + shrapnel_type = /obj/item/shrapnel/hot + +/obj/projectile/bullet/shrapnel/spicy/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.apply_effect(250,EFFECT_IRRADIATE,0) + /obj/projectile/bullet/pellet/stingball - name = "stingball pellet" - damage = 3 - stamina = 8 - ricochets_max = 4 + name = "ballistic gel clump" + damage = 5 + stamina = 15 + ricochets_max = 6 ricochet_chance = 66 ricochet_decay_chance = 1 ricochet_decay_damage = 0.9 ricochet_auto_aim_angle = 10 ricochet_auto_aim_range = 2 ricochet_incidence_leeway = 0 + knockdown = 20 shrapnel_type = /obj/item/shrapnel/stingball /obj/projectile/bullet/pellet/stingball/mega diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 09b2338b244f..cf4824f20fbe 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -118,6 +118,10 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar/metal, 3), \ new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \ new/datum/stack_recipe("hygienebot assembly", /obj/item/bot_assembly/hygienebot, 2, time = 50), \ + new/datum/stack_recipe_list("weight machines", list( \ + new/datum/stack_recipe("chest press", /obj/structure/weightmachine/stacklifter, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bench press", /obj/structure/weightmachine/weightlifter, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ + )), \ new/datum/stack_recipe("shower", /obj/machinery/shower, 3, time = 25) )) @@ -367,6 +371,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("19x19 canvas", /obj/item/canvas/nineteenXnineteen, 3), \ new/datum/stack_recipe("23x19 canvas", /obj/item/canvas/twentythreeXnineteen, 4), \ new/datum/stack_recipe("23x23 canvas", /obj/item/canvas/twentythreeXtwentythree, 5), \ + new/datum/stack_recipe("punching bag", /obj/structure/punching_bag, 5, time = 25, one_per_turf = TRUE, on_floor = TRUE), \ )) /obj/item/stack/sheet/cotton/cloth diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 0737eb0b616e..fb001b2eb56b 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -121,9 +121,11 @@ var/mask_type = /obj/item/clothing/mask/breath var/internal_type = /obj/item/tank/internals/emergency_oxygen var/medipen_type = /obj/item/reagent_containers/hypospray/medipen + var/radio_type = /obj/item/radio /obj/item/storage/box/survival/PopulateContents() new mask_type(src) + new radio_type(src) if(!isnull(medipen_type)) new medipen_type(src) @@ -132,10 +134,6 @@ else new /obj/item/tank/internals/plasmaman/belt(src) -/obj/item/storage/box/survival/radio/PopulateContents() - ..() // we want the survival stuff too. - new /obj/item/radio/off(src) - // Mining survival box /obj/item/storage/box/survival/mining mask_type = /obj/item/clothing/mask/gas/explorer @@ -148,10 +146,6 @@ /obj/item/storage/box/survival/engineer internal_type = /obj/item/tank/internals/emergency_oxygen/engi -/obj/item/storage/box/survival/engineer/radio/PopulateContents() - ..() // we want the regular items too. - new /obj/item/radio/off(src) - // Syndie survival box /obj/item/storage/box/survival/syndie mask_type = /obj/item/clothing/mask/gas/syndicate @@ -162,10 +156,6 @@ /obj/item/storage/box/survival/security mask_type = /obj/item/clothing/mask/gas/sechailer -/obj/item/storage/box/survival/security/radio/PopulateContents() - ..() // we want the regular stuff too - new /obj/item/radio/off(src) - // Medical survival box /obj/item/storage/box/survival/medical mask_type = /obj/item/clothing/mask/breath/medical @@ -173,10 +163,6 @@ /obj/item/storage/box/survival/clip internal_type = /obj/item/tank/internals/emergency_oxygen/engi //clip actually cares about their personnel -/obj/item/storage/box/survival/clip/PopulateContents() - . = ..() - new /obj/item/radio/off(src) - /obj/item/storage/box/survival/clip/balaclava mask_type = /obj/item/clothing/mask/gas/sechailer/balaclava diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 7b02bd6b19d3..c703aeb38a0d 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -56,7 +56,7 @@ new /obj/item/flashlight/glowstick(src) if(3) new /obj/item/flashlight/flare(src) - new /obj/item/radio/off(src) + new /obj/item/radio(src) /obj/item/storage/toolbox/emergency/old name = "rusty red toolbox" diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 00c619da8353..361358892520 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1404,7 +1404,7 @@ say(message, language) return NOPASS -/obj/item/toy/dummy/GetVoice() +/obj/item/toy/dummy/GetVoice(if_no_voice = "Unknown") return doll_name /obj/item/toy/seashell diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index abc67e252d52..112218650f85 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -149,7 +149,7 @@ name = "Demonic Friend" uniform = /obj/item/clothing/under/misc/assistantformal shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/radio/off + r_pocket = /obj/item/radio back = /obj/item/storage/backpack implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend. id = /obj/item/card/id diff --git a/code/game/say.dm b/code/game/say.dm index c3c8dca852f8..2d53eea65e75 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -52,10 +52,28 @@ GLOBAL_LIST_INIT(freqcolor, list()) //Radio freq/name display var/freqpart = radio_freq ? "\[[get_radio_name(radio_freq)]\] " : "" //Speaker name - var/namepart = "[speaker.GetVoice()][speaker.get_alt_name()]" - if(face_name && ishuman(speaker)) - var/mob/living/carbon/human/H = speaker - namepart = "[H.get_face_name()]" //So "fake" speaking like in hallucinations does not give the speaker away if disguised + + var/namepart = speaker.GetVoice() + var/atom/movable/reliable_narrator = speaker + if(istype(speaker, /atom/movable/virtualspeaker)) //ugh + var/atom/movable/virtualspeaker/fakespeaker = speaker + reliable_narrator = fakespeaker.source + if(ishuman(reliable_narrator)) + //So "fake" speaking like in hallucinations does not give the speaker away if disguised + if(face_name) + var/mob/living/carbon/human/human_narrator = reliable_narrator + namepart = human_narrator.name + //otherwise, do guestbook handling + else if(ismob(src)) + var/mob/mob_source = src + if(mob_source.mind?.guestbook) + var/known_name = mob_source.mind.guestbook.get_known_name(src, reliable_narrator, namepart) + if(known_name) + namepart = "[known_name]" + else + var/mob/living/carbon/human/human_narrator = reliable_narrator + namepart = "[human_narrator.get_generic_name(prefixed = TRUE, lowercase = FALSE)]" + //End name span. var/endspanpart = "" @@ -67,9 +85,9 @@ GLOBAL_LIST_INIT(freqcolor, list()) else messagepart = lang_treat(speaker, message_language, raw_message, spans, message_mods) - var/datum/language/D = GLOB.language_datum_instances[message_language] - if(istype(D) && D.display_icon(src)) - languageicon = "[D.get_icon()] " + var/datum/language/language = GLOB.language_datum_instances[message_language] + if(istype(language) && language.display_icon(src)) + languageicon = "[language.get_icon()] " messagepart = " " @@ -177,7 +195,7 @@ GLOBAL_LIST_INIT(freqcolor, list()) return "2" return "0" -/atom/movable/proc/GetVoice() +/atom/movable/proc/GetVoice(if_no_voice = "Unknown") return "[src]" //Returns the atom's name, prepended with 'The' if it's not a proper noun /atom/movable/proc/IsVocal() diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index f4bfa034fa12..d74edb27a658 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -62,27 +62,15 @@ if(1) ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) if(2) - switch(rand(1, 3)) - if(1) - if(!length(baseturfs) || !ispath(baseturfs[baseturfs.len-1], /turf/open/floor)) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) - ReplaceWithLattice() - else - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) - if(prob(33)) - new /obj/item/stack/sheet/metal(src) - if(2) - ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) - if(3) - if(prob(80)) - ScrapeAway(flags = CHANGETURF_INHERIT_AIR) - else - break_tile() - hotspot_expose(1000,CELL_VOLUME) - if(prob(33)) - new /obj/item/stack/sheet/metal(src) + if(prob(60)) + ScrapeAway(flags = CHANGETURF_INHERIT_AIR) + else + break_tile() + hotspot_expose(1000,CELL_VOLUME) + if(prob(33)) + new /obj/item/stack/sheet/metal(src) if(3) - if (prob(50)) + if(prob(50)) src.break_tile() src.hotspot_expose(1000,CELL_VOLUME) diff --git a/code/game/turfs/open/floor/plasteel_floor.dm b/code/game/turfs/open/floor/plasteel_floor.dm index 10760b3af5cf..7ed16bc5631e 100644 --- a/code/game/turfs/open/floor/plasteel_floor.dm +++ b/code/game/turfs/open/floor/plasteel_floor.dm @@ -157,7 +157,6 @@ /turf/open/floor/plasteel/cult/airless initial_gas_mix = AIRLESS_ATMOS - /turf/open/floor/plasteel/stairs //considering removal icon = 'icons/turf/floors.dmi' icon_state = "stairs" @@ -169,7 +168,7 @@ icon_state = "stairs-l" base_icon_state = "stairs-l" -/turf/open/floor/plasteel/stairs/medium +/turf/open/floor/plasteel/stairs/mid icon_state = "stairs-m" base_icon_state = "stairs-m" @@ -182,9 +181,128 @@ base_icon_state = "stairs-old" /turf/open/floor/plasteel/stairs/wood - color = "#A47449" - barefootstep = "wood" - footstep = "wood" + color = "#5B3E1D" + icon_state = "stairs-wood" + base_icon_state = "stairs-wood" + barefootstep = FOOTSTEP_WOOD_BAREFOOT + footstep = FOOTSTEP_WOOD_CLAW + +/turf/open/floor/plasteel/stairs/wood/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/mahogany + color = WOOD_COLOR_RICH + +/turf/open/floor/plasteel/stairs/wood/mahogany/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/mahogany/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/mahogany/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/maple + color = WOOD_COLOR_PALE + +/turf/open/floor/plasteel/stairs/wood/maple/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/maple/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/maple/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/ebony + color = WOOD_COLOR_BLACK + +/turf/open/floor/plasteel/stairs/wood/ebony/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/ebony/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/ebony/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/walnut + color = WOOD_COLOR_CHOCOLATE + +/turf/open/floor/plasteel/stairs/wood/walnut/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/walnut/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/walnut/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/bamboo + color = WOOD_COLOR_PALE2 + +/turf/open/floor/plasteel/stairs/wood/bamboo/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/bamboo/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/bamboo/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/birch + color = WOOD_COLOR_PALE3 + +/turf/open/floor/plasteel/stairs/wood/birch/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/birch/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/birch/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" + +/turf/open/floor/plasteel/stairs/wood/yew + color = WOOD_COLOR_YELLOW + +/turf/open/floor/plasteel/stairs/wood/yew/left + icon_state = "stairs-wood-l" + base_icon_state = "stairs-wood-l" + +/turf/open/floor/plasteel/stairs/wood/yew/mid + icon_state = "stairs-wood-m" + base_icon_state = "stairs-wood-m" + +/turf/open/floor/plasteel/stairs/wood/yew/right + icon_state = "stairs-wood-r" + base_icon_state = "stairs-wood-r" /turf/open/floor/plasteel/rockvault icon_state = "rockvault" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 82cb857576c1..5bb4b25cc1f1 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -39,7 +39,7 @@ return var/body = "