diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index d10a2d79f6..d25839b92f 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -11,7 +11,8 @@ 6. [Pull Request Process](#pull-request-process) 7. [Porting features/sprites/sounds/tools from other codebases](#porting-featuresspritessoundstools-from-other-codebases) 8. [Banned content](#banned-content) -9. [A word on Git](#a-word-on-git) +9. [Content requiring prior approval](#content-requiring-prior-approval) +10. [A word on Git](#a-word-on-git) ## Reporting Issues If you ever encounter a bug in-game, the best way to let a coder know about it is with our GitHub Issue Tracker. Please make sure you use the supplied issue template, and include the round ID for the server. @@ -678,6 +679,14 @@ Do not add any of the following in a Pull Request or risk getting the PR closed: Just because something isn't on this list doesn't mean that it's acceptable. Use common sense above all else. +## Content requiring prior approval +Certain types of changes may require prior approval from maintainers. This currently includes: + +* Code adding, removing, or updating the availability of alien races/species/human mutants. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer) +* Code adding, removing, or modifying the functionality of adult-oriented features (such as, but not limited to: vore, genitals, MKUltra, and more). This also includes pull requests attempting to add or remove these features outright. (Requires approval from at least half of the formal maintainer team) + +If a PR contains any of the above content, and it lacks prior approval, then it may closed at maintainer discretion. Prior approval requires an @Maintainer ping in a relevant development/code or staff channel on the Discord. This is primarily to limit the impact of PRs that're created in bad faith, or are otherwise counterproductive to the server's health. + ## A word on Git This repository uses `LF` line endings for all code as specified in the **.gitattributes** and **.editorconfig** files. diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 48054115e6..aac84a1989 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -19118,6 +19118,10 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=14-Starboard-Central"; + location = "13.2-Tcommstore" + }, /turf/open/floor/plasteel/dark/corner, /area/hallway/primary/starboard) "bxn" = ( @@ -21190,10 +21194,6 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=14-Starboard-Central"; - location = "13.2-Tcommstore" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/starboard) diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index cef539c3b6..5178dbdc8e 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -151,16 +151,6 @@ icon_state = "1-2" }, /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aat" = ( @@ -168,16 +158,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aau" = ( @@ -187,16 +167,6 @@ icon_state = "1-2" }, /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aav" = ( @@ -302,32 +272,12 @@ pixel_y = 3 }, /obj/item/storage/firstaid/regular, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaD" = ( /obj/structure/chair/office/dark{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaE" = ( @@ -338,16 +288,6 @@ icon_state = "1-2" }, /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaF" = ( @@ -358,16 +298,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaG" = ( @@ -378,32 +308,12 @@ icon_state = "1-2" }, /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaH" = ( /obj/structure/chair/office/dark{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaI" = ( @@ -411,16 +321,6 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaJ" = ( @@ -487,16 +387,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaN" = ( @@ -506,16 +396,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaO" = ( @@ -528,16 +408,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaP" = ( @@ -550,32 +420,12 @@ pixel_x = -3; pixel_y = 3 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaR" = ( @@ -585,17 +435,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "aaS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -604,16 +446,6 @@ /obj/item/kirbyplants{ icon_state = "plant-22" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaT" = ( @@ -623,16 +455,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaU" = ( @@ -651,16 +473,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaV" = ( @@ -682,12 +494,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaY" = ( @@ -697,12 +503,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aaZ" = ( @@ -721,12 +521,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "aba" = ( @@ -734,12 +528,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abb" = ( @@ -756,16 +544,6 @@ c_tag = "Bar"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "abc" = ( @@ -778,17 +556,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/command/bridge) "abd" = ( /obj/structure/cable/white{ @@ -805,17 +573,8 @@ }, /obj/effect/landmark/event_spawn, /obj/machinery/holopad, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/command/bridge) "abe" = ( /obj/structure/cable/white{ @@ -827,12 +586,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abf" = ( @@ -848,12 +601,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abg" = ( @@ -864,12 +611,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abh" = ( @@ -885,12 +626,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abi" = ( @@ -902,10 +637,6 @@ /area/asteroid/nearstation) "abk" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge Access"; - req_access_txt = "19" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; @@ -916,24 +647,20 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/command/bridge) -"abl" = ( -/obj/machinery/door/firedoor, /obj/machinery/door/airlock/command/glass{ name = "Bridge Access"; req_access_txt = "19" }, +/turf/open/floor/plasteel/dark, +/area/command/bridge) +"abl" = ( +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/bridge) "abm" = ( /obj/structure/cable/white{ @@ -967,50 +694,25 @@ }, /turf/open/floor/plating, /area/engineering/main) -"abo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/command/bridge) "abp" = ( /obj/structure/cable/white{ icon_state = "1-2" }, /obj/structure/table/wood, /obj/item/storage/lockbox/medal, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/command/bridge) "abq" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/command/glass{ name = "Bridge Access"; req_access_txt = "19" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/bridge) "abr" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge Access"; - req_access_txt = "19" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -1021,11 +723,11 @@ name = "WARNING: PRESSURIZED DOORS"; pixel_x = 32 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/bridge) "abs" = ( /turf/closed/wall/r_wall, @@ -1059,24 +761,18 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "abz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/light_switch{ pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "abA" = ( /turf/closed/wall, @@ -1104,26 +800,12 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abD" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abE" = ( @@ -1136,28 +818,12 @@ /obj/structure/table/wood, /obj/item/paper_bin, /obj/item/pen, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abF" = ( /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "abG" = ( @@ -1182,13 +848,9 @@ /obj/machinery/light_switch{ pixel_x = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "abI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -1198,11 +860,9 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "abJ" = ( /obj/structure/table/wood, @@ -1212,16 +872,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "abK" = ( @@ -1430,24 +1080,18 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "ace" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "acf" = ( /obj/structure/cable/white{ @@ -1464,10 +1108,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "ach" = ( @@ -1510,36 +1150,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "acm" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "acn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "aco" = ( /obj/structure/table/wood, @@ -1559,11 +1187,9 @@ c_tag = "Bridge - Head of Personnel's Quarters"; name = "command camera" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hop) "acp" = ( /obj/structure/bed, @@ -1633,9 +1259,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "acw" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -1645,13 +1268,15 @@ /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, /turf/open/floor/plating, /area/maintenance/starboard) "acx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) "acy" = ( @@ -1659,9 +1284,6 @@ name = "External Airlock"; req_access_txt = "13" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -1674,7 +1296,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/starboard) "acz" = ( /obj/structure/cable/white{ @@ -1784,15 +1406,8 @@ /obj/machinery/camera{ c_tag = "Head of Security's Office - Quarters" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/item/storage/fancy/donut_box{ + pixel_y = 7 }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) @@ -1887,24 +1502,18 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "acV" = ( /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "acW" = ( /obj/structure/cable/white{ @@ -1913,35 +1522,13 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/machinery/door/airlock/command{ name = "Council Chambers"; req_access_txt = "19" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/command/bridge) -"acX" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "acY" = ( @@ -2021,20 +1608,14 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/machinery/door/airlock/command{ name = "Council Chambers"; req_access_txt = "19" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/bridge) "ade" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -2044,13 +1625,9 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "adf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -2062,11 +1639,9 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "adg" = ( /obj/structure/closet/secure_closet/hop, @@ -2078,11 +1653,9 @@ icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hop) "adh" = ( /obj/structure/cable/white{ @@ -2141,12 +1714,9 @@ /turf/open/floor/plasteel/white, /area/command/heads_quarters/hop) "adm" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32; - pixel_y = -32 - }, -/turf/open/space/basic, -/area/space) +/obj/structure/girder, +/turf/open/floor/plating, +/area/engineering/storage/tech) "adn" = ( /turf/closed/wall, /area/cargo/storage) @@ -2253,26 +1823,13 @@ /turf/open/floor/plating, /area/command/heads_quarters/hos) "adD" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/closet/secure_closet/hos, +/obj/item/gun/energy/e_gun/hos, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "adE" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -2286,7 +1843,7 @@ name = "Head of Security's Office"; req_access_txt = "58" }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/command/heads_quarters/hos) "adF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -2399,11 +1956,9 @@ name = "Station Intercom"; pixel_x = 28 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "adO" = ( /obj/machinery/status_display/ai, @@ -2438,13 +1993,9 @@ /obj/structure/sign/nanotrasen{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "adT" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -2453,11 +2004,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "adU" = ( /obj/structure/sign/warning/electricshock{ @@ -2478,10 +2027,6 @@ name = "Head of Personnel's Quarters"; req_access_txt = "57" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/command/heads_quarters/hop) "adW" = ( @@ -2746,19 +2291,15 @@ /area/command/heads_quarters/captain/private) "aew" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20" - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/command{ + name = "Captain's Quarters"; + req_access_txt = "20" }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/command/heads_quarters/captain/private) "aex" = ( /obj/structure/cable/white, @@ -2774,11 +2315,9 @@ /obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "aez" = ( /obj/structure/table/reinforced, @@ -2798,10 +2337,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aeA" = ( @@ -2812,16 +2347,6 @@ uses = 10 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aeB" = ( @@ -2837,10 +2362,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/closet/crate/goldcrate, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aeC" = ( @@ -2863,10 +2385,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/closet/crate/silvercrate, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aeE" = ( @@ -2883,16 +2402,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aeF" = ( @@ -2913,12 +2422,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aeG" = ( @@ -2929,13 +2432,9 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "aeH" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -2944,11 +2443,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "aeI" = ( /obj/effect/spawner/structure/window/reinforced, @@ -2963,12 +2460,10 @@ "aeJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/structure/bed/dogbed/ian, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /mob/living/simple_animal/pet/dog/corgi/Ian, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/command/heads_quarters/hop) "aeK" = ( /obj/structure/cable/white{ @@ -2978,31 +2473,19 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/command/heads_quarters/hop) "aeL" = ( /obj/machinery/photocopier, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/command/heads_quarters/hop) "aeM" = ( /obj/structure/filingcabinet/security, /obj/item/folder/documents, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/command/heads_quarters/hop) "aeN" = ( /obj/structure/table/wood, @@ -3020,11 +2503,7 @@ name = "Head of Personnel Quarter's APC"; pixel_y = 23 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/command/heads_quarters/hop) "aeO" = ( /obj/structure/table/wood, @@ -3041,10 +2520,9 @@ pixel_y = 24 }, /obj/machinery/recharger, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hop) "aeP" = ( /obj/structure/cable/white{ @@ -3078,10 +2556,6 @@ name = "Quartermaster"; req_access_txt = "41" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/cargo/qm) "aeR" = ( @@ -3127,16 +2601,6 @@ /turf/open/floor/plasteel, /area/cargo/storage) "aeW" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -3182,25 +2646,13 @@ /turf/open/floor/plasteel, /area/cargo/storage) "afb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/suit_storage_unit/hos, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 9 + }, /area/command/heads_quarters/hos) "afc" = ( /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -3277,10 +2729,6 @@ }, /obj/machinery/suit_storage_unit/captain, /obj/effect/turf_decal/stripes/end, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/captain/private) "afl" = ( @@ -3341,11 +2789,9 @@ dir = 8; name = "command camera" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "afq" = ( /obj/structure/table/reinforced, @@ -3371,13 +2817,7 @@ network = list("minisat"); start_active = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "afr" = ( @@ -3406,12 +2846,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aft" = ( @@ -3427,13 +2861,9 @@ dir = 4; name = "command camera" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "afu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -3446,11 +2876,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "afv" = ( /obj/machinery/door/firedoor, @@ -3460,23 +2888,17 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/machinery/door/airlock/command{ - name = "Head of Personnel's Office"; - req_access_txt = "57" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/command{ + name = "Head of Personnel's Office"; + req_access_txt = "57" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hop) "afw" = ( /obj/structure/cable/white{ @@ -3544,13 +2966,9 @@ dir = 8; name = "command camera" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hop) "afB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3577,73 +2995,31 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-2" }, /turf/open/floor/plasteel, /area/cargo/storage) "afE" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "afF" = ( /obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "cargounload" }, /turf/open/floor/plasteel, /area/cargo/storage) "afG" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "afH" = ( -/obj/machinery/conveyor_switch/oneway{ - dir = 8; - id = "cargounload" +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/cargo/storage) +/area/maintenance/port/fore) "afI" = ( /obj/machinery/button/door{ id = "cargounload"; @@ -3674,17 +3050,13 @@ /area/cargo/storage) "afK" = ( /obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /obj/machinery/door/airlock/mining{ name = "Cargo Bay"; req_one_access_txt = "48;50" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/cargo/storage) "afL" = ( @@ -3740,12 +3112,6 @@ name = "Head of Security's Office Maintenance"; req_access_txt = "4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plating, /area/maintenance/fore) "afS" = ( @@ -3761,12 +3127,6 @@ /turf/open/floor/wood, /area/command/heads_quarters/hos) "afT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/door/airlock/maintenance_hatch{ name = "Security Maintenance"; req_access_txt = "63" @@ -3789,30 +3149,20 @@ /area/maintenance/fore) "afW" = ( /obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /obj/machinery/door/airlock/command{ name = "Captain's Emergency Escape"; req_access_txt = "20" }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/maintenance/fore) "afX" = ( /obj/structure/cable/white{ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/captain/private) "afY" = ( @@ -3877,23 +3227,17 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "agf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "agg" = ( /obj/machinery/airalarm{ @@ -3922,25 +3266,11 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "agh" = ( /obj/machinery/computer/upload/ai, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "agi" = ( @@ -3949,16 +3279,6 @@ "agj" = ( /obj/machinery/computer/upload/borg, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "agk" = ( @@ -3972,23 +3292,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "agl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "agm" = ( /obj/structure/cable/white{ @@ -4095,13 +3405,9 @@ pixel_y = -24; req_access_txt = "57" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hop) "agu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4125,16 +3431,6 @@ /turf/open/floor/plasteel, /area/cargo/storage) "agw" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-4" }, @@ -4144,30 +3440,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "agy" = ( /obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -4178,16 +3454,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "agA" = ( @@ -4300,11 +3566,9 @@ name = "Station Intercom"; pixel_x = -26 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "agM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4337,10 +3601,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/captain/private) "agP" = ( @@ -4406,10 +3666,6 @@ /area/command/heads_quarters/captain/private) "agU" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Captain's Office"; - req_access_txt = "20" - }, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -4422,13 +3678,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock/command{ + name = "Captain's Office"; + req_access_txt = "20" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/heads_quarters/captain/private) "agV" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -4438,24 +3692,18 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "agW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "agX" = ( /obj/structure/table/reinforced, @@ -4471,10 +3719,6 @@ dir = 4 }, /obj/item/aiModule/supplied/freeform, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "agY" = ( @@ -4491,16 +3735,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "aha" = ( @@ -4521,16 +3755,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "ahb" = ( @@ -4541,16 +3765,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "ahc" = ( @@ -4579,25 +3793,15 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "ahe" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "ahf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -4607,11 +3811,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "ahg" = ( /obj/structure/cable/white, @@ -4675,16 +3877,6 @@ /turf/open/floor/plasteel, /area/cargo/storage) "ahm" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/cargo/storage) @@ -4692,16 +3884,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/cargo/storage) @@ -4782,15 +3964,12 @@ /turf/open/floor/plasteel, /area/cargo/storage) "ahu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/maintenance_hatch{ name = "Security Maintenance"; req_access_txt = "63" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/security/prison) "ahv" = ( @@ -4810,14 +3989,12 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/computer/card/minor/hos{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/command/heads_quarters/hos) "ahy" = ( /obj/machinery/door/firedoor, @@ -4825,15 +4002,13 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock/command{ name = "Head of Security's Office"; req_access_txt = "58" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/command/heads_quarters/hos) "ahz" = ( /obj/structure/reagent_dispensers/peppertank{ @@ -4920,11 +4095,6 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/item/gun/energy/e_gun/hos, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/captain/private) "ahI" = ( @@ -4975,8 +4145,10 @@ pixel_y = -24 }, /obj/structure/table/wood, -/obj/item/storage/fancy/donut_box, -/obj/item/lighter, +/obj/item/hand_tele{ + pixel_y = 9 + }, +/obj/item/storage/lockbox/medal, /turf/open/floor/wood, /area/command/heads_quarters/captain/private) "ahN" = ( @@ -4994,21 +4166,15 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "ahP" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /obj/machinery/ore_silo, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "ahQ" = ( @@ -5026,16 +4192,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "ahT" = ( @@ -5072,12 +4228,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) "ahW" = ( @@ -5085,16 +4235,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -5109,11 +4249,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "ahY" = ( /turf/closed/wall/r_wall, @@ -5249,6 +4387,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/machinery/conveyor_switch/oneway{ + id = "cargoload" + }, /turf/open/floor/plasteel, /area/cargo/storage) "aij" = ( @@ -5330,15 +4471,11 @@ /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/security/glass{ name = "Security E.V.A. Storage"; req_access_txt = "63" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/security/brig) "ais" = ( @@ -5368,14 +4505,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/checker, /area/security/brig) "aiv" = ( /obj/item/cultivator, @@ -5395,35 +4528,27 @@ }, /area/maintenance/starboard/central) "aix" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/fore) "aiy" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge Access"; - req_access_txt = "19" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/bridge) "aiz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -5461,19 +4586,15 @@ /area/ai_monitored/command/nuke_storage) "aiC" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "Bridge Access"; - req_access_txt = "19" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Bridge Access"; + req_access_txt = "19" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/command/bridge) "aiD" = ( /obj/machinery/door/poddoor/shutters/preopen{ @@ -5506,16 +4627,12 @@ /area/hallway/primary/starboard/fore) "aiH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/starboard/fore) @@ -5668,14 +4785,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/checker, /area/security/brig) "aiS" = ( /obj/structure/sign/poster/official/do_not_question{ @@ -5713,6 +4826,7 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/effect/turf_decal/stripes/box, /turf/open/floor/plasteel, /area/security/brig) "aiW" = ( @@ -5727,12 +4841,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/brig) "aiY" = ( @@ -5842,18 +4950,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "aji" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ajj" = ( @@ -5864,9 +4966,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ajk" = ( @@ -5877,9 +4976,6 @@ pixel_y = 32 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ajl" = ( @@ -5890,9 +4986,6 @@ name = "Station Intercom"; pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ajm" = ( @@ -5905,9 +4998,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ajn" = ( @@ -5918,12 +5008,6 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ajo" = ( @@ -5953,9 +5037,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ajr" = ( @@ -5965,9 +5046,6 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ajs" = ( @@ -6019,9 +5097,6 @@ pixel_y = 24 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ajw" = ( @@ -6032,9 +5107,6 @@ name = "Station Intercom"; pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ajx" = ( @@ -6047,9 +5119,6 @@ /obj/machinery/camera{ c_tag = "Fore Primary Hallway 2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ajy" = ( @@ -6083,12 +5152,6 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "ajB" = ( @@ -6128,9 +5191,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "ajF" = ( @@ -6143,15 +5203,15 @@ /obj/machinery/camera{ c_tag = "Central Hallway North-East" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "ajG" = ( /turf/closed/wall/r_wall, /area/command/heads_quarters/cmo) "ajH" = ( +/obj/machinery/door/window/eastleft{ + req_access_txt = "48;50" + }, /obj/structure/plasticflaps/opaque, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, @@ -6186,16 +5246,6 @@ dir = 4 }, /obj/effect/landmark/start/cargo_technician, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "ajM" = ( @@ -6241,16 +5291,6 @@ /area/medical/medbay/zone3) "ajO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/landmark/start/paramedic, /turf/open/floor/plasteel, /area/medical/medbay/zone3) @@ -6275,11 +5315,9 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "ajS" = ( /obj/structure/cable/white{ @@ -6348,14 +5386,12 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "ajX" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, /turf/open/floor/plating, /area/engineering/atmos) "ajY" = ( @@ -6365,10 +5401,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "ajZ" = ( @@ -6426,7 +5458,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ake" = ( @@ -6436,9 +5467,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6449,9 +5477,6 @@ }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6463,9 +5488,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/chair, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -6479,9 +5501,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/chair, /turf/open/floor/plasteel{ heat_capacity = 1e+006 @@ -6495,9 +5514,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "2-8" }, @@ -6516,9 +5532,6 @@ dir = 1; pixel_y = -22 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6533,9 +5546,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6620,12 +5630,6 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "akr" = ( @@ -6642,9 +5646,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6659,9 +5660,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6779,7 +5777,6 @@ codes_txt = "patrol;next_patrol=4.2-HoP"; location = "4.1-BridgeEast" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/fore) "akB" = ( @@ -6790,7 +5787,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/fore) "akC" = ( @@ -6809,7 +5805,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/fore) "akD" = ( @@ -6901,7 +5896,6 @@ location = "4.2-HoP"; name = "Billy Herrington memorial navigation beacon" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "akJ" = ( @@ -6912,9 +5906,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -6946,6 +5937,9 @@ /obj/item/chair, /obj/item/stack/ore/silver, /obj/item/stack/ore/iron, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plating, /area/engineering/atmos) "akN" = ( @@ -6959,6 +5953,8 @@ dir = 4 }, /obj/structure/lattice, +/obj/item/broken_bottle, +/obj/item/pickaxe, /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) "akP" = ( @@ -6993,16 +5989,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "akS" = ( @@ -7029,16 +6015,12 @@ /obj/structure/cable/white{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/security{ name = "Armoury"; req_access_txt = "3" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, /area/security/brig) "akV" = ( @@ -7092,12 +6074,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/brig) "akZ" = ( @@ -7131,9 +6107,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "ald" = ( @@ -7180,10 +6153,6 @@ name = "Teleport Access"; req_access_txt = "17" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/command/teleporter) "alk" = ( @@ -7306,10 +6275,6 @@ name = "E.V.A. Storage"; req_access_txt = "18" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/ai_monitored/command/storage/eva) "alx" = ( @@ -7326,9 +6291,6 @@ /area/ai_monitored/command/storage/eva) "aly" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "alz" = ( @@ -7376,32 +6338,12 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "alD" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/cargo/storage) "alE" = ( @@ -7421,6 +6363,9 @@ network = list("ss13","engine") }, /mob/living/simple_animal/parrot/Poly, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) "alF" = ( @@ -7474,18 +6419,12 @@ /area/security/brig) "alK" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Security Office"; - req_access_txt = "63" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/security/glass{ + name = "Security Office"; + req_access_txt = "63" }, /turf/open/floor/plasteel, /area/security/brig) @@ -7503,10 +6442,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "alN" = ( @@ -7561,7 +6496,6 @@ id = "brig2"; pixel_y = 26 }, -/obj/structure/chair, /obj/structure/cable/white{ icon_state = "2-4" }, @@ -7578,6 +6512,8 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/bed, +/obj/item/bedsheet/blue, /turf/open/floor/plasteel, /area/security/brig) "alR" = ( @@ -7600,9 +6536,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "alT" = ( @@ -7643,7 +6576,6 @@ /turf/open/floor/wood, /area/service/lawoffice) "alY" = ( -/obj/machinery/shieldwallgen, /obj/machinery/button/door{ id = "teleportershutters"; name = "Teleporter Shutters"; @@ -7651,10 +6583,7 @@ req_access_txt = "19" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, +/obj/machinery/shieldwallgen, /turf/open/floor/plasteel/dark, /area/command/teleporter) "alZ" = ( @@ -7686,7 +6615,6 @@ /turf/open/floor/plasteel, /area/command/teleporter) "amc" = ( -/obj/machinery/shieldwallgen, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -7694,12 +6622,7 @@ c_tag = "Teleporter" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/shieldwallgen, /turf/open/floor/plasteel/dark, /area/command/teleporter) "amd" = ( @@ -7725,19 +6648,9 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "amg" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -7748,16 +6661,6 @@ icon_state = "1-2" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ami" = ( @@ -7765,22 +6668,7 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/primary/central) -"amj" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "amk" = ( -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "aml" = ( @@ -7792,16 +6680,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "amm" = ( /obj/structure/cable/white{ @@ -7827,10 +6706,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/storage/eva) "amp" = ( @@ -7874,12 +6749,6 @@ pixel_x = 26; req_access_txt = "19" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/storage/eva) "amt" = ( @@ -7891,9 +6760,6 @@ name = "Station Intercom"; pixel_x = -26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "amu" = ( @@ -8048,7 +6914,9 @@ /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "amI" = ( /obj/machinery/holopad, @@ -8072,12 +6940,6 @@ c_tag = "Security - Central"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/brig) "amL" = ( @@ -8098,12 +6960,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/brig) "amN" = ( @@ -8113,10 +6969,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/window/brigdoor/security/cell/westright{ - id = "brig2"; - name = "Cell 2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -8126,6 +6978,10 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/door/window/brigdoor/security/cell/eastright{ + id = "Cell 1"; + name = "Cell 1" + }, /turf/open/floor/plasteel, /area/security/brig) "amO" = ( @@ -8172,7 +7028,6 @@ /turf/open/floor/wood, /area/service/lawoffice) "amT" = ( -/obj/structure/table/reinforced, /obj/item/stack/cable_coil/white, /obj/item/stack/packageWrap, /obj/item/hand_labeler, @@ -8185,10 +7040,7 @@ dir = 4; name = "command camera" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/command/teleporter) "amU" = ( @@ -8230,12 +7082,6 @@ /area/command/teleporter) "amX" = ( /obj/machinery/teleport/hub, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/teleporter) "amY" = ( @@ -8251,34 +7097,19 @@ icon_state = "1-8" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "ana" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, /area/hallway/primary/fore) -"anb" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "anc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/fore) "and" = ( @@ -8290,13 +7121,7 @@ icon_state = "1-4" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "ane" = ( /obj/structure/sign/warning/electricshock, @@ -8307,7 +7132,9 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/ai_monitored/command/storage/eva) "ang" = ( /obj/structure/cable/white{ @@ -8347,15 +7174,13 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/ai_monitored/command/storage/eva) "ank" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "anl" = ( @@ -8364,10 +7189,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "anm" = ( @@ -8390,17 +7211,13 @@ /area/cargo/storage) "ano" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Office"; - req_access_txt = "48;50" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/mining/glass{ + name = "Cargo Office"; + req_access_txt = "48;50" }, /turf/open/floor/plasteel, /area/cargo/storage) @@ -8417,12 +7234,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/cargo/miningdock) "anr" = ( /obj/machinery/mineral/equipment_vendor, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/cargo/miningdock) "ans" = ( /obj/machinery/power/apc{ @@ -8441,7 +7262,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/cargo/miningdock) "ant" = ( /obj/effect/spawner/structure/window/reinforced, @@ -8449,11 +7272,17 @@ /turf/open/floor/plating, /area/cargo/miningdock) "anu" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 }, -/turf/closed/wall/r_wall, -/area/command/heads_quarters/ce) +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/engineering/atmos) "anv" = ( /obj/effect/turf_decal/stripes/end{ dir = 8 @@ -8462,9 +7291,7 @@ dir = 1 }, /obj/effect/turf_decal/tile/yellow, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plasteel, /area/command/heads_quarters/ce) "anw" = ( @@ -8497,16 +7324,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/brig) "anA" = ( @@ -8565,10 +7382,6 @@ "anD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "anE" = ( @@ -8612,10 +7425,6 @@ "anH" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "anI" = ( @@ -8624,10 +7433,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "anJ" = ( @@ -8675,10 +7480,6 @@ }, /obj/structure/closet/crate/engineering, /obj/item/hand_tele, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/teleporter) "anM" = ( @@ -8706,19 +7507,13 @@ /turf/open/floor/plasteel, /area/command/heads_quarters/ce) "anP" = ( -/obj/machinery/teleport/station, /obj/machinery/light{ dir = 4 }, /obj/machinery/status_display{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/teleport/station, /turf/open/floor/plasteel/dark, /area/command/teleporter) "anQ" = ( @@ -8728,48 +7523,33 @@ "anR" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Atrium" - }, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium" + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "anS" = ( /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/public/glass{ name = "Atrium" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, /area/hallway/primary/fore) "anT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/public/glass{ name = "Atrium" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, /area/hallway/primary/fore) "anU" = ( -/obj/structure/closet/crate/rcd{ - pixel_y = 4 - }, /obj/machinery/door/window/northleft{ dir = 4; name = "RCD Storage"; @@ -8787,15 +7567,8 @@ /obj/machinery/status_display{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/structure/closet/crate/rcd{ + pixel_y = 4 }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/storage/eva) @@ -8840,9 +7613,6 @@ dir = 4; pixel_x = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "aoa" = ( @@ -8866,12 +7636,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "aoc" = ( @@ -9144,23 +7908,17 @@ /area/security/brig) "aox" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "secinterior"; - name = "Brig"; - req_access_txt = "63" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "secinterior"; + name = "Brig"; + req_access_txt = "63" + }, /turf/open/floor/plasteel, /area/security/brig) "aoy" = ( @@ -9187,23 +7945,17 @@ /area/security/brig) "aoA" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "secexterior"; - name = "Brig"; - req_access_txt = "63" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "secexterior"; + name = "Brig"; + req_access_txt = "63" + }, /turf/open/floor/plasteel, /area/security/brig) "aoB" = ( @@ -9226,7 +7978,7 @@ /obj/structure/table/wood, /obj/structure/window/reinforced/spawner/west, /obj/item/folder/blue, -/turf/open/floor/carpet/green/airless, +/turf/open/floor/carpet/green, /area/service/lawoffice) "aoE" = ( /obj/machinery/airalarm{ @@ -9241,7 +7993,6 @@ /turf/open/floor/wood, /area/service/lawoffice) "aoF" = ( -/obj/structure/table/reinforced, /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/machinery/cell_charger, @@ -9249,10 +8000,7 @@ dir = 4; pixel_x = -22 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/command/teleporter) "aoG" = ( @@ -9273,16 +8021,10 @@ /turf/open/floor/plasteel, /area/command/teleporter) "aoI" = ( -/obj/machinery/computer/teleporter{ - dir = 8 - }, /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/computer/teleporter{ dir = 8 }, /turf/open/floor/plasteel/dark, @@ -9291,6 +8033,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/space_heater, /turf/open/floor/plasteel, /area/maintenance/port/central) "aoK" = ( @@ -9352,9 +8095,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, @@ -9364,25 +8104,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aoQ" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, @@ -9403,22 +8130,16 @@ /turf/open/floor/plasteel, /area/service/bar/atrium) "aoS" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/starboard/central) "aoU" = ( @@ -9450,7 +8171,9 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/ai_monitored/command/storage/eva) "aoX" = ( /obj/structure/tank_dispenser/oxygen, @@ -9465,7 +8188,9 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/ai_monitored/command/storage/eva) "aoZ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -9474,9 +8199,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -9510,12 +8232,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "apc" = ( @@ -9594,21 +8310,15 @@ /area/hallway/primary/starboard/fore) "api" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining{ - name = "Mining Dock"; - req_access_txt = "48" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/mining{ + name = "Mining Dock"; + req_access_txt = "48" }, /turf/open/floor/plasteel, /area/cargo/miningdock) @@ -9726,23 +8436,17 @@ /area/command/heads_quarters/ce) "apr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /obj/machinery/door/airlock/command/glass{ name = "Chief Engineer"; req_access_txt = "56" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /turf/open/floor/plasteel, /area/command/heads_quarters/ce) "aps" = ( @@ -9773,16 +8477,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/main) "apu" = ( @@ -9793,9 +8487,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/sign/departments/custodian{ pixel_x = 32; pixel_y = 32 @@ -9832,18 +8523,14 @@ /obj/structure/cable/white{ icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /obj/machinery/door/airlock/security/glass{ name = "Security Office"; req_access_txt = "63" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, /turf/open/floor/plasteel, /area/security/brig) "apy" = ( @@ -9869,10 +8556,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "apA" = ( @@ -9910,26 +8593,20 @@ /area/security/brig) "apC" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "secinterior"; - name = "Brig"; - req_access_txt = "63" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "secinterior"; + name = "Brig"; + req_access_txt = "63" + }, /turf/open/floor/plasteel, /area/security/brig) "apD" = ( @@ -9956,26 +8633,20 @@ /area/security/brig) "apF" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - id_tag = "secexterior"; - name = "Brig"; - req_access_txt = "63" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "secexterior"; + name = "Brig"; + req_access_txt = "63" + }, /turf/open/floor/plasteel, /area/security/brig) "apG" = ( @@ -10009,9 +8680,6 @@ name = "Station Intercom"; pixel_x = 26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "apI" = ( @@ -10029,10 +8697,6 @@ pixel_y = -28 }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/teleporter) "apL" = ( @@ -10069,7 +8733,6 @@ /turf/open/floor/plasteel, /area/command/teleporter) "apO" = ( -/obj/machinery/shieldwallgen, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_x = 28 @@ -10078,12 +8741,7 @@ pixel_y = -32 }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/shieldwallgen, /turf/open/floor/plasteel/dark, /area/command/teleporter) "apP" = ( @@ -10121,21 +8779,15 @@ /turf/open/floor/plasteel/dark, /area/security/brig) "apS" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plasteel, /area/maintenance/port/central) @@ -10169,9 +8821,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -10180,16 +8829,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "apW" = ( @@ -10197,11 +8836,6 @@ /obj/effect/turf_decal/loading_area{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/service/bar/atrium) "apX" = ( @@ -10246,7 +8880,6 @@ /turf/open/floor/plasteel, /area/maintenance/starboard/central) "aqc" = ( -/obj/structure/table/reinforced, /obj/item/tank/jetpack/carbondioxide{ pixel_x = 3; pixel_y = 3 @@ -10260,10 +8893,7 @@ /obj/structure/sign/warning/nosmoking{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/storage/eva) "aqd" = ( @@ -10303,7 +8933,6 @@ /turf/open/floor/plasteel, /area/ai_monitored/command/storage/eva) "aqg" = ( -/obj/structure/table/reinforced, /obj/item/stack/sheet/plasteel{ amount = 15 }, @@ -10323,19 +8952,11 @@ /obj/structure/extinguisher_cabinet{ pixel_y = -28 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/storage/eva) "aqh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -10519,6 +9140,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/structure/closet/secure_closet/contraband/armory, /turf/open/floor/plasteel, /area/security/brig) "aqC" = ( @@ -10562,6 +9184,14 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + weaponscheck = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "aqH" = ( @@ -10590,28 +9220,16 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/security/brig) "aqJ" = ( /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "aqK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -10619,17 +9237,9 @@ dir = 4 }, /obj/machinery/vending/wardrobe/sec_wardrobe, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/security/brig) "aqL" = ( /obj/structure/cable/white{ @@ -10669,12 +9279,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/brig) "aqP" = ( @@ -10734,9 +9338,6 @@ /obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aqT" = ( @@ -10827,46 +9428,34 @@ "arc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Atrium" - }, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "ard" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ name = "Atrium" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "are" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Atrium" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "arf" = ( /obj/effect/spawner/structure/window/reinforced, @@ -10892,9 +9481,6 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -10904,7 +9490,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "ark" = ( @@ -10977,15 +9562,13 @@ /turf/closed/wall, /area/maintenance/port/fore) "arp" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; req_access_txt = "12" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, /area/maintenance/port/fore) "arq" = ( /turf/closed/wall/r_wall, @@ -10995,16 +9578,6 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "ars" = ( @@ -11027,12 +9600,6 @@ /obj/machinery/newscaster/security_unit{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/table/reinforced, /obj/item/grenade/barrier{ pixel_x = -3; @@ -11051,53 +9618,25 @@ c_tag = "Brig Control Room"; dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/security/brig) "arv" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 9 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "arw" = ( /obj/machinery/computer/atmos_control/tank/mix_tank, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "arx" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "ary" = ( @@ -11105,16 +9644,6 @@ name = "Mix to Distro" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "arz" = ( @@ -11129,16 +9658,6 @@ name = "Station Intercom"; pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "arA" = ( @@ -11151,7 +9670,7 @@ /obj/structure/sign/poster/random{ pixel_y = 32 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/engineering/atmos) "arB" = ( /obj/effect/turf_decal/tile/red{ @@ -11174,11 +9693,9 @@ dir = 1 }, /obj/structure/closet/l3closet/security, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/security/brig) "arE" = ( /obj/structure/cable/white{ @@ -11188,58 +9705,32 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "arF" = ( /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "arG" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/security/glass{ - name = "Gear Room"; - req_access_txt = "63" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-4" }, /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/security/glass{ + name = "Gear Room"; + req_access_txt = "63" }, /turf/open/floor/plasteel, /area/security/brig) @@ -11269,10 +9760,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "arJ" = ( @@ -11296,10 +9783,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/security/brig) "arL" = ( @@ -11310,18 +9793,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/security/glass{ - name = "Security Desk"; - req_access_txt = "63" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/security/glass{ + name = "Security Desk"; + req_access_txt = "63" }, /turf/open/floor/plasteel, /area/security/brig) @@ -11338,17 +9815,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/security/brig) "arN" = ( /obj/machinery/button/door{ @@ -11388,16 +9857,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/security/brig) "arO" = ( @@ -11498,21 +9957,15 @@ /turf/open/floor/plating, /area/maintenance/port/central) "arW" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/port/central) @@ -11600,11 +10053,9 @@ c_tag = "Central Diner 3"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "ase" = ( /obj/item/kirbyplants{ @@ -11687,13 +10138,9 @@ /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "ask" = ( /obj/structure/cable/white{ @@ -11713,19 +10160,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/central) -"asm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "asn" = ( /obj/machinery/airalarm/unlocked{ dir = 4; @@ -11738,12 +10172,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/table/reinforced, /obj/item/storage/box/chemimp{ pixel_x = 6 @@ -11752,7 +10180,9 @@ pixel_x = -3 }, /obj/item/storage/lockbox/loyalty, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/security/brig) "aso" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -11828,10 +10258,10 @@ /obj/machinery/atmospherics/pipe/manifold/yellow/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/dark/corner{ - dir = 1 + dir = 4 }, /area/engineering/atmos) "asx" = ( @@ -11850,12 +10280,6 @@ name = "Security RC"; pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/table/reinforced, /obj/item/storage/box/teargas{ pixel_x = 3; @@ -11866,7 +10290,9 @@ pixel_x = -3; pixel_y = -3 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/security/brig) "asA" = ( /obj/structure/reagent_dispensers/fueltank, @@ -11901,10 +10327,10 @@ /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/dark/corner{ - dir = 1 + dir = 4 }, /area/engineering/atmos) "asD" = ( @@ -11916,37 +10342,26 @@ }, /turf/open/floor/plasteel, /area/maintenance/port/fore) -"asE" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/fore) "asF" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 5 }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/dark/corner{ - dir = 1 + dir = 4 }, /area/engineering/atmos) "asG" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /obj/effect/turf_decal/tile/yellow{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/dark/corner{ - dir = 1 + dir = 4 }, /area/engineering/atmos) "asH" = ( @@ -11961,16 +10376,6 @@ c_tag = "Atmospherics North"; network = list("ss13","engine") }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "asI" = ( @@ -11987,10 +10392,9 @@ pixel_y = -32 }, /obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/turf/open/floor/plasteel/dark, /area/security/brig) "asK" = ( /obj/structure/rack, @@ -12024,13 +10428,7 @@ c_tag = "Security - Gear Room"; dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/security/brig) "asL" = ( /obj/structure/closet/secure_closet/security/sec, @@ -12038,13 +10436,7 @@ dir = 1; pixel_y = -26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/security/brig) "asM" = ( /obj/structure/cable/white, @@ -12148,13 +10540,9 @@ c_tag = "Security - Front Desk"; dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, /area/security/brig) "asS" = ( /obj/machinery/computer/secure_data{ @@ -12170,12 +10558,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/security/brig) "asT" = ( @@ -12188,27 +10570,18 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "asU" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Primary Tool Storage" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/engineering/glass{ + name = "Primary Tool Storage" }, /turf/open/floor/plasteel, /area/commons/storage/primary) @@ -12334,10 +10707,6 @@ /turf/closed/wall, /area/service/theater) "atg" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -12345,11 +10714,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/maintenance/port/central) "ath" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -12362,14 +10731,9 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "atj" = ( /obj/machinery/vending/coffee, @@ -12380,14 +10744,9 @@ /obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "atk" = ( /obj/effect/spawner/structure/window/reinforced/tinted, @@ -12411,25 +10770,6 @@ }, /turf/open/floor/plasteel/white/corner, /area/hallway/primary/starboard/fore) -"atq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/starboard) "atr" = ( /obj/structure/table/wood, /obj/item/storage/secure/briefcase, @@ -12516,15 +10856,13 @@ /area/security/detectives_office) "atA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock/security{ name = "Detective's Office"; req_access_txt = "4" }, -/turf/open/floor/plasteel, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, /area/security/detectives_office) "atB" = ( /obj/machinery/portable_atmospherics/canister/air, @@ -12624,10 +10962,10 @@ /obj/item/clothing/suit/hazardvest, /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "atJ" = ( /turf/open/floor/wood, @@ -12644,17 +10982,13 @@ }, /area/maintenance/port/fore) "atL" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Security Maintenance"; - req_access_txt = "63" - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Security Maintenance"; + req_access_txt = "63" }, /turf/open/floor/plasteel, /area/security/brig) @@ -12665,9 +10999,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "atN" = ( @@ -12678,24 +11009,15 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "atO" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Primary Tool Storage" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/engineering/glass{ + name = "Primary Tool Storage" }, /turf/open/floor/plasteel, /area/commons/storage/primary) @@ -12871,16 +11193,6 @@ pixel_y = 3 }, /obj/item/camera_film, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "atY" = ( @@ -12918,11 +11230,9 @@ /area/service/theater) "aub" = ( /obj/machinery/vending/cigarette, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "auc" = ( /obj/item/reagent_containers/food/condiment/saltshaker{ @@ -12932,33 +11242,13 @@ /obj/item/reagent_containers/food/condiment/peppermill{ pixel_x = -8 }, -/obj/structure/table/wood, /obj/item/kitchen/fork, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, +/obj/structure/table/wood, /turf/open/floor/plasteel, /area/service/bar/atrium) "aud" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aue" = ( @@ -12982,17 +11272,9 @@ pixel_y = 3 }, /obj/item/lighter, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aug" = ( /obj/structure/sign/barsign{ @@ -13021,17 +11303,9 @@ c_tag = "Bar Backroom"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "auk" = ( /obj/structure/sink/kitchen{ @@ -13040,16 +11314,6 @@ pixel_y = 28 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aul" = ( @@ -13067,17 +11331,9 @@ pixel_x = 26 }, /obj/structure/closet, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aun" = ( /obj/effect/landmark/blobstart, @@ -13094,9 +11350,6 @@ /obj/machinery/status_display{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -13202,21 +11455,17 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "4-8" }, /obj/machinery/door/airlock/security{ name = "Detective's Office"; req_access_txt = "4" }, -/obj/machinery/door/firedoor, -/obj/structure/cable/white{ - icon_state = "4-8" +/turf/open/floor/wood{ + icon_state = "wood-broken7" }, -/turf/open/floor/plasteel, /area/security/detectives_office) "auA" = ( /obj/effect/turf_decal/stripes/line{ @@ -13243,10 +11492,10 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "auC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13349,18 +11598,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plasteel, /area/maintenance/port/fore) @@ -13372,11 +11615,9 @@ dir = 4 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/port) "auO" = ( /obj/structure/cable/white{ @@ -13394,9 +11635,6 @@ /obj/machinery/camera{ c_tag = "Port Hallway 2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "auP" = ( @@ -13406,9 +11644,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "auQ" = ( @@ -13418,9 +11653,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "auR" = ( @@ -13431,9 +11663,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "auS" = ( @@ -13443,9 +11672,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "auT" = ( @@ -13508,16 +11734,6 @@ "ava" = ( /obj/structure/table/wood, /obj/item/instrument/guitar, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "avb" = ( @@ -13552,11 +11768,9 @@ /obj/structure/table/wood, /obj/item/clothing/head/fedora, /obj/item/clothing/mask/cigarette/pipe, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "avf" = ( /obj/structure/chair/stool, @@ -13566,16 +11780,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "avg" = ( @@ -13584,16 +11788,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "avh" = ( @@ -13602,16 +11796,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "avi" = ( @@ -13652,33 +11836,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "avl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "avm" = ( @@ -13704,7 +11870,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/service/bar/atrium) "avp" = ( /obj/effect/landmark/start/bartender, @@ -13712,16 +11880,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "avq" = ( @@ -13732,20 +11890,12 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/service/bar/atrium) "avs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -13760,9 +11910,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -13789,7 +11936,6 @@ /obj/machinery/airalarm{ pixel_y = 23 }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) "avx" = ( @@ -13801,34 +11947,17 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/engineering/atmos) "avy" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "avz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -13904,10 +12033,10 @@ /obj/structure/closet/secure_closet/atmospherics, /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "avH" = ( /obj/structure/table/wood, @@ -13951,18 +12080,12 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plasteel, /area/maintenance/port/fore) @@ -14068,11 +12191,9 @@ pixel_x = -32 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/port) "avT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14082,9 +12203,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "avU" = ( @@ -14094,14 +12212,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"avV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "avW" = ( @@ -14112,7 +12222,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "avX" = ( @@ -14123,7 +12232,6 @@ /obj/item/kirbyplants{ icon_state = "plant-21" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "avY" = ( @@ -14200,16 +12308,6 @@ "awf" = ( /obj/structure/table/wood, /obj/item/camera, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "awg" = ( @@ -14237,11 +12335,9 @@ /obj/structure/chair/comfy/brown{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awk" = ( /obj/structure/chair/stool, @@ -14250,31 +12346,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awl" = ( /obj/structure/table/wood, /obj/item/storage/bag/tray, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awm" = ( @@ -14282,16 +12358,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awn" = ( @@ -14336,17 +12402,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awq" = ( /obj/effect/landmark/start/bartender, @@ -14364,37 +12422,21 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aws" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Bar Backroom"; - req_access_txt = "25" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock{ + name = "Bar Backroom"; + req_access_txt = "25" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -14403,16 +12445,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awu" = ( @@ -14420,16 +12452,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awv" = ( @@ -14442,34 +12464,18 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aww" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Bar Maintenance"; - req_access_txt = "25" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Bar Maintenance"; + req_access_txt = "25" }, /turf/open/floor/plating, /area/maintenance/starboard/central) @@ -14495,9 +12501,6 @@ pixel_x = -26 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -14531,16 +12534,6 @@ /obj/structure/sign/warning/nosmoking{ pixel_y = 30 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "awD" = ( @@ -14570,25 +12563,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engineering/atmos) -"awG" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) "awH" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 1 @@ -14616,10 +12590,10 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/vending/wardrobe/atmos_wardrobe, -/obj/effect/turf_decal/tile/yellow{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "awL" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -14632,15 +12606,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/door/airlock/maintenance_hatch{ name = "Atmospherics Maintenance"; req_access_txt = "24" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/maintenance/port/fore) "awN" = ( @@ -14651,6 +12621,10 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, +/obj/machinery/door/window/eastright{ + dir = 1; + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engineering/atmos) "awO" = ( @@ -14659,10 +12633,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "awP" = ( @@ -14675,16 +12645,6 @@ "awR" = ( /obj/structure/table/wood, /obj/item/soap/nanotrasen, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "awS" = ( @@ -14699,16 +12659,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awU" = ( @@ -14720,16 +12670,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awV" = ( @@ -14738,63 +12678,26 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "awX" = ( /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awY" = ( /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "awZ" = ( @@ -14803,16 +12706,6 @@ /obj/item/reagent_containers/food/drinks/shaker, /obj/item/reagent_containers/rag, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "axa" = ( @@ -14829,22 +12722,16 @@ dir = 1; pixel_y = -24 }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "axc" = ( /obj/machinery/light, /obj/machinery/vending/wardrobe/bar_wardrobe, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/service/bar/atrium) "axd" = ( /obj/structure/closet/secure_closet/bar, @@ -14854,17 +12741,9 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "axe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -14875,7 +12754,6 @@ /area/maintenance/starboard/central) "axf" = ( /obj/structure/table, -/obj/effect/turf_decal/bot, /obj/structure/bedsheetbin/towel, /obj/structure/sign/poster/official/cleanliness{ pixel_y = -32 @@ -14898,7 +12776,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, -/obj/effect/turf_decal/bot, /obj/machinery/light_switch{ pixel_x = 8; pixel_y = -24 @@ -14974,10 +12851,9 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/yellow{ +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/checker, /area/engineering/atmos) "axq" = ( /obj/machinery/light{ @@ -14991,7 +12867,12 @@ }, /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, /area/engineering/atmos) "axr" = ( /obj/structure/cable/white{ @@ -15000,7 +12881,12 @@ /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, /area/engineering/atmos) "axs" = ( /obj/structure/reagent_dispensers/fueltank, @@ -15011,7 +12897,13 @@ /obj/effect/decal/cleanable/oil, /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, /area/engineering/atmos) "axt" = ( /obj/effect/spawner/structure/window/reinforced, @@ -15114,16 +13006,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"axC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "axD" = ( @@ -15133,17 +13015,9 @@ }, /obj/effect/turf_decal/bot, /obj/machinery/computer/arcade, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/commons/dorms) "axE" = ( /obj/machinery/status_display{ @@ -15151,54 +13025,30 @@ }, /obj/effect/turf_decal/bot, /obj/structure/closet/wardrobe/white, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/commons/dorms) "axF" = ( /obj/machinery/light_switch{ pixel_y = 24 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/item/kirbyplants{ icon_state = "plant-21" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/commons/dorms) "axG" = ( /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/cryopod{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, /area/commons/dorms) "axH" = ( /obj/structure/closet/secure_closet/personal/cabinet, @@ -15270,16 +13120,6 @@ pixel_y = -3 }, /obj/item/lipstick/random, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "axN" = ( @@ -15304,16 +13144,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "axP" = ( @@ -15337,16 +13167,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "axR" = ( @@ -15358,17 +13178,9 @@ name = "Bar Door"; req_access_txt = "25" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "axS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -15395,16 +13207,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/bar/atrium) "axU" = ( @@ -15418,9 +13220,6 @@ /obj/machinery/newscaster{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -15454,18 +13253,14 @@ /obj/structure/cable/white{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, /obj/machinery/door/airlock/security/glass{ name = "Security E.V.A. Storage"; req_access_txt = "63" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/security/brig) "ayb" = ( @@ -15515,17 +13310,12 @@ /obj/effect/decal/cleanable/oil, /obj/effect/decal/cleanable/dirt, /obj/machinery/meter/atmos, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "ayi" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, @@ -15533,6 +13323,9 @@ icon_state = "4-8" }, /obj/machinery/meter/atmos/atmos_waste_loop, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "ayj" = ( @@ -15637,42 +13430,17 @@ }, /turf/open/floor/plating, /area/engineering/atmos) -"ayt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) "ayu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/commons/dorms) -"ayv" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/commons/dorms) "ayw" = ( /obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "ayx" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "ayy" = ( /obj/effect/turf_decal/stripes/line{ @@ -15722,35 +13490,19 @@ dir = 4 }, /obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "1-8" + }, /obj/machinery/door/airlock/security/glass{ id_tag = "secinterior"; name = "Brig"; req_access_txt = "63" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, /turf/open/floor/plasteel, /area/security/brig) "ayE" = ( /obj/structure/table/wood, /obj/item/instrument/violin, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "ayF" = ( @@ -15787,27 +13539,15 @@ c_tag = "Central Diner 2"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "ayJ" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "ayK" = ( @@ -15815,16 +13555,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "ayL" = ( @@ -15866,17 +13596,9 @@ }, /obj/item/storage/fancy/cigarettes/cigars/havana, /obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "ayO" = ( /obj/structure/table/reinforced, @@ -15884,17 +13606,9 @@ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "ayP" = ( /turf/closed/wall, @@ -15942,9 +13656,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -15952,13 +13663,9 @@ "ayV" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/port) "ayW" = ( /obj/structure/table/reinforced, @@ -16114,12 +13821,6 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/maintenance/port/fore) "azh" = ( @@ -16158,27 +13859,20 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "azm" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/machinery/meter, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/dark/corner{ - dir = 1 + dir = 4 }, /area/engineering/atmos) "azn" = ( @@ -16194,6 +13888,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "azq" = ( @@ -16201,14 +13898,17 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "azr" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, /turf/open/floor/plasteel, /area/engineering/atmos) @@ -16286,16 +13986,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "azz" = ( @@ -16317,67 +14007,25 @@ /turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "azA" = ( -/obj/structure/table, -/obj/item/paicard, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, /area/commons/dorms) "azB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/commons/dorms) -"azC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "azD" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock{ id_tag = "Dorm1"; name = "Dorm 1" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/grimy, /area/commons/dorms) "azE" = ( /obj/structure/table/wood, /obj/item/staff/broom, /obj/item/clothing/head/witchwig, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/theater) "azF" = ( @@ -16420,11 +14068,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "azJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -16434,16 +14080,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "azK" = ( @@ -16452,16 +14088,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "azL" = ( @@ -16532,18 +14158,12 @@ /turf/open/floor/plating, /area/maintenance/starboard/central) "azS" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/starboard/central) @@ -16551,9 +14171,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -16563,13 +14180,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard/fore) "azV" = ( /obj/structure/table/reinforced, @@ -16586,16 +14199,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "azX" = ( @@ -16611,16 +14214,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "azZ" = ( @@ -16793,10 +14386,6 @@ /area/engineering/atmos) "aAu" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Access"; - req_access_txt = "24" - }, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -16806,11 +14395,9 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/atmos{ + name = "Atmospherics Access"; + req_access_txt = "24" }, /turf/open/floor/plasteel, /area/engineering/atmos) @@ -16825,12 +14412,6 @@ /area/engineering/atmos) "aAw" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -16842,30 +14423,10 @@ /area/security/prison) "aAx" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "aAy" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "aAz" = ( @@ -16881,16 +14442,6 @@ dir = 4 }, /obj/effect/landmark/start/atmospheric_technician, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "aAB" = ( @@ -16913,24 +14464,15 @@ codes_txt = "patrol;next_patrol=1.1-BrigCentral"; location = "9.6-LeavingDorms" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aAD" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Lockerroom" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/public/glass{ + name = "Lockerroom" }, /turf/open/floor/plasteel, /area/commons/dorms) @@ -16938,9 +14480,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/commons/dorms) "aAF" = ( @@ -16955,32 +14494,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/commons/dorms) -"aAH" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/commons/dorms) "aAI" = ( /obj/structure/sign/warning/nosmoking{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aAJ" = ( /obj/structure/table, @@ -17012,27 +14532,13 @@ /area/service/theater) "aAM" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" }, /turf/open/floor/plasteel/dark, /area/service/theater) @@ -17076,16 +14582,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aAP" = ( @@ -17101,16 +14597,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aAQ" = ( @@ -17171,21 +14657,15 @@ /turf/open/floor/plasteel, /area/service/bar/atrium) "aAT" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/starboard/central) @@ -17233,9 +14713,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -17247,19 +14724,14 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "aBb" = ( /obj/machinery/vending/cola/random, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard/fore) "aBc" = ( /obj/machinery/computer/security{ @@ -17608,9 +15080,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aBL" = ( @@ -17625,25 +15094,18 @@ codes_txt = "patrol;next_patrol=9.5-Dorms"; location = "9.4-EnteringDorms" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "aBM" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Lockerroom" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/public/glass{ + name = "Lockerroom" }, /turf/open/floor/plasteel, /area/commons/dorms) @@ -17654,9 +15116,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -17668,16 +15127,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/commons/dorms) "aBP" = ( @@ -17687,24 +15136,13 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/commons/dorms) "aBQ" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aBR" = ( /obj/machinery/light, @@ -17720,12 +15158,7 @@ codes_txt = "patrol;next_patrol=9.6-LeavingDorms"; location = "9.5-Dorms" }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, -/area/commons/dorms) -"aBS" = ( -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aBT" = ( /obj/machinery/washing_machine, @@ -17766,11 +15199,9 @@ /obj/machinery/camera{ c_tag = "Theatre Storage" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aBW" = ( /turf/open/floor/wood{ @@ -17795,17 +15226,9 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aBY" = ( /obj/machinery/airalarm{ @@ -17830,16 +15253,6 @@ "aBZ" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/cheesiehonkers, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aCa" = ( @@ -17871,16 +15284,12 @@ /area/service/kitchen) "aCd" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock{ name = "Kitchen"; req_access_txt = "28" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/service/kitchen) "aCe" = ( /turf/closed/wall, @@ -17890,9 +15299,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -17904,13 +15310,9 @@ pixel_x = 24 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard/fore) "aCi" = ( /obj/effect/spawner/structure/window/reinforced, @@ -18022,10 +15424,6 @@ /area/security/brig) "aCr" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/security/glass{ name = "Gen-Pop Access"; @@ -18148,13 +15546,10 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "aCE" = ( /obj/structure/cable/white{ @@ -18165,13 +15560,10 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "aCF" = ( /obj/effect/decal/cleanable/dirt, @@ -18220,10 +15612,6 @@ name = "Atmospherics Lockdown Blast door" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/atmos/glass{ - name = "Atmospherics Desk"; - req_access_txt = "24" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-8" @@ -18231,11 +15619,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/atmos/glass{ + name = "Atmospherics Desk"; + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engineering/atmos) "aCJ" = ( @@ -18282,53 +15670,28 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/machinery/camera{ - c_tag = "Central Hallway East"; - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aCM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/central) "aCN" = ( -/obj/structure/table, /obj/item/storage/firstaid/regular, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/item/paicard{ + pixel_x = 15 }, +/obj/structure/table, /turf/open/floor/plasteel, /area/commons/dorms) "aCO" = ( -/obj/structure/table, /obj/item/storage/toolbox/mechanical{ pixel_x = 3; pixel_y = 3 }, /obj/item/storage/toolbox/emergency, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table, /turf/open/floor/plasteel, /area/commons/dorms) "aCP" = ( @@ -18340,11 +15703,9 @@ /obj/structure/sign/poster/contraband/clown{ pixel_x = -32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aCQ" = ( /obj/effect/landmark/start/clown, @@ -18372,17 +15733,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aCT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -18418,19 +15771,15 @@ /obj/machinery/camera{ c_tag = "Kitchen" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/kitchen) "aCW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/kitchen) "aCX" = ( /obj/structure/sink/kitchen{ @@ -18438,11 +15787,9 @@ name = "sink"; pixel_y = 28 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/kitchen) "aCY" = ( /obj/machinery/light{ @@ -18454,11 +15801,9 @@ pixel_y = 32 }, /obj/structure/closet/secure_closet/freezer/kitchen, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/kitchen) "aCZ" = ( /obj/structure/closet/secure_closet/freezer/fridge, @@ -18467,11 +15812,9 @@ }, /obj/item/storage/box/donkpockets, /obj/item/storage/box/donkpockets, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/kitchen) "aDa" = ( /obj/structure/table/reinforced, @@ -18485,11 +15828,9 @@ /obj/structure/sign/nanotrasen{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/kitchen) "aDb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -18596,24 +15937,11 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "aDm" = ( -/obj/structure/bookcase/random/fiction, -/obj/structure/cable/white{ - icon_state = "1-2" +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/service/library) +/area/maintenance/port/fore) "aDn" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -18625,7 +15953,9 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aDp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -18644,16 +15974,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "aDq" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/closet/crate/bin, /obj/machinery/airalarm{ dir = 1; @@ -18677,19 +15997,15 @@ /area/engineering/atmos) "aDt" = ( /obj/machinery/door/firedoor, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/machinery/door/airlock/atmos{ name = "Atmospherics Engine Access"; req_access_txt = "24" }, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engineering/atmos) "aDu" = ( @@ -18774,24 +16090,17 @@ "aDC" = ( /obj/structure/table/reinforced, /obj/item/airlock_painter, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/primary/port) "aDD" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel{ - heat_capacity = 1e+006 - }, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aDE" = ( /obj/effect/landmark/start/assistant, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aDF" = ( /obj/machinery/light{ @@ -18800,11 +16109,7 @@ /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aDG" = ( /obj/effect/landmark/event_spawn, @@ -18848,11 +16153,9 @@ /obj/structure/mirror{ pixel_x = -28 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aDK" = ( /obj/effect/landmark/start/mime, @@ -18879,35 +16182,21 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aDN" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Theatre Backstage"; - req_access_txt = "46" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock{ + name = "Theatre Backstage"; + req_access_txt = "46" }, /turf/open/floor/plasteel, /area/service/theater) @@ -18925,16 +16214,6 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aDP" = ( @@ -18942,16 +16221,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aDQ" = ( @@ -19043,21 +16312,13 @@ }, /turf/open/floor/plasteel, /area/service/kitchen) -"aDZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/starboard) "aEa" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/hallway/primary/starboard) "aEb" = ( /obj/effect/turf_decal/bot, @@ -19068,16 +16329,6 @@ /area/hallway/secondary/exit) "aEc" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aEd" = ( @@ -19097,16 +16348,6 @@ codes_txt = "patrol;next_patrol=6.3-DeparturesS"; location = "6.2-DeparturesN" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aEf" = ( @@ -19117,13 +16358,14 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aEg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse{ + dir = 4; + name = "air mixer" + }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "aEh" = ( @@ -19139,9 +16381,6 @@ /obj/machinery/camera{ c_tag = "Aft Primary Hallway 4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "aEi" = ( @@ -19161,9 +16400,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "aEj" = ( @@ -19191,9 +16427,6 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "aEl" = ( @@ -19231,32 +16464,15 @@ name = "Station Intercom"; pixel_x = -26 }, -/obj/machinery/camera{ - c_tag = "Engineering Secure Storage"; - dir = 4; - network = list("ss13","engine") - }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/engineering/main) "aEo" = ( /obj/machinery/shieldgen, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/main) "aEp" = ( /obj/effect/turf_decal/stripes/line{ @@ -19274,36 +16490,19 @@ "aEr" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/engineering/main) "aEs" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/main) "aEt" = ( /turf/closed/wall/r_wall, /area/engineering/main) "aEu" = ( -/obj/machinery/computer/monitor{ - name = "Engineering Power Monitoring Console" - }, /obj/machinery/status_display{ pixel_x = -32 }, @@ -19317,9 +16516,8 @@ dir = 1 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/computer/monitor{ + name = "Engineering Power Monitoring Console" }, /turf/open/floor/plasteel/dark, /area/engineering/main) @@ -19327,12 +16525,12 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/machinery/power/smes{ - charge = 5e+006 - }, /obj/structure/cable/white{ icon_state = "0-4" }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, /turf/open/floor/circuit/green, /area/engineering/main) "aEw" = ( @@ -19360,6 +16558,11 @@ dir = 9 }, /obj/item/clothing/glasses/meson/engine, +/obj/machinery/camera{ + c_tag = "Engineering Access"; + dir = 4; + network = list("ss13","engine") + }, /turf/open/floor/plasteel, /area/engineering/main) "aEy" = ( @@ -19408,32 +16611,12 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aED" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aEE" = ( @@ -19441,32 +16624,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aEF" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aEG" = ( @@ -19486,12 +16649,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Engineering Foyer" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aEI" = ( @@ -19502,9 +16659,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aEJ" = ( @@ -19514,63 +16668,35 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral, +/obj/machinery/camera{ + c_tag = "Central Hallway West"; + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "aEK" = ( -/obj/machinery/vending/clothing, /obj/machinery/firealarm{ dir = 4; pixel_x = -24 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/vending/clothing, +/turf/open/floor/plasteel/dark/side, /area/commons/dorms) "aEL" = ( /obj/machinery/status_display{ pixel_y = -32 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/gear_painter, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/commons/dorms) "aEM" = ( -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/vending/kink, +/turf/open/floor/plasteel/dark/side, /area/commons/dorms) "aEN" = ( -/obj/machinery/vending/autodrobe, /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, @@ -19579,17 +16705,8 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/vending/autodrobe, +/turf/open/floor/plasteel/dark/side, /area/commons/dorms) "aEO" = ( /obj/structure/closet/secure_closet/personal/cabinet, @@ -19650,10 +16767,9 @@ /obj/structure/sign/poster/contraband/random{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aET" = ( /obj/structure/table/wood, @@ -19665,13 +16781,7 @@ name = "Station Intercom"; pixel_y = -26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/theater) "aEU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -19681,13 +16791,7 @@ pixel_y = -32 }, /obj/structure/closet/crate/wooden/toy, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/theater) "aEV" = ( /obj/structure/closet/crate/bin, @@ -19698,13 +16802,9 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, /area/service/theater) "aEW" = ( /obj/structure/chair/stool, @@ -19712,31 +16812,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aEX" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/chips, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aEY" = ( @@ -19849,21 +16929,15 @@ /turf/open/floor/plasteel/white, /area/service/kitchen) "aFf" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Kitchen Maintenance"; - req_access_txt = "28" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Kitchen Maintenance"; + req_access_txt = "28" }, /turf/open/floor/plating, /area/maintenance/starboard/central) @@ -19930,16 +17004,6 @@ /area/hallway/secondary/exit) "aFl" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aFm" = ( @@ -19953,16 +17017,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aFo" = ( @@ -19988,10 +17042,6 @@ /obj/machinery/power/emitter, /obj/machinery/light/small, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/engineering/main) "aFr" = ( @@ -20001,17 +17051,9 @@ pixel_y = -26 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/main) "aFs" = ( /obj/effect/turf_decal/stripes/line{ @@ -20027,17 +17069,9 @@ /area/engineering/main) "aFu" = ( /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/engineering/main) "aFv" = ( /obj/structure/closet/crate, @@ -20051,12 +17085,6 @@ pixel_x = 26 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/main) "aFw" = ( @@ -20137,20 +17165,21 @@ /turf/open/floor/plasteel, /area/engineering/main) "aFB" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/terminal{ - dir = 4 - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/airalarm{ - pixel_y = 24 - }, /obj/machinery/camera{ c_tag = "Starboard Bow Solar"; network = list("ss13","engine") }, +/obj/machinery/power/solar_control{ + id = "forestarboard"; + name = "Starboard Bow Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "aFC" = ( @@ -20182,16 +17211,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aFE" = ( @@ -20206,16 +17225,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aFF" = ( @@ -20226,16 +17235,6 @@ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aFG" = ( @@ -20246,16 +17245,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/break_room) "aFH" = ( @@ -20273,17 +17262,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/airlock/public/glass{ - name = "Engineering Foyer" - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/public/glass{ + name = "Engineering Foyer" }, /turf/open/floor/plasteel, /area/engineering/break_room) @@ -20294,9 +17277,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -20315,9 +17295,6 @@ codes_txt = "patrol;next_patrol=9.3-Engi"; location = "9.2-EnteringEngi" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -20328,11 +17305,6 @@ pixel_x = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/camera{ - c_tag = "Central Hallway West"; - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "aFM" = ( @@ -20371,16 +17343,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aFP" = ( @@ -20388,16 +17350,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aFQ" = ( @@ -20481,9 +17433,6 @@ name = "Station Intercom"; pixel_x = -26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aFY" = ( @@ -20504,16 +17453,6 @@ "aGa" = ( /obj/effect/landmark/event_spawn, /obj/item/beacon, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aGb" = ( @@ -20574,7 +17513,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/engineering/main) "aGi" = ( /obj/structure/sign/warning/securearea, @@ -20592,10 +17531,6 @@ /area/engineering/main) "aGk" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering/glass{ - name = "Power Monitoring"; - req_access_txt = "32" - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -20606,11 +17541,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/engineering/glass{ + name = "Power Monitoring"; + req_access_txt = "32" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/engineering/main) "aGl" = ( /obj/machinery/door/firedoor, @@ -20644,21 +17579,17 @@ /area/engineering/main) "aGn" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark/side, /area/engineering/main) "aGo" = ( /obj/structure/sign/warning/fire, @@ -20737,7 +17668,6 @@ /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, /obj/machinery/cell_charger, -/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/hallway/primary/port) "aGw" = ( @@ -20748,9 +17678,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -20759,7 +17686,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "aGy" = ( @@ -20853,11 +17779,9 @@ pixel_y = 32 }, /obj/machinery/door/window/southleft, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/medical/genetics) "aGG" = ( /obj/structure/cable/white{ @@ -20950,16 +17874,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aGO" = ( @@ -20975,16 +17889,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aGP" = ( @@ -20993,16 +17897,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aGQ" = ( @@ -21044,10 +17938,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel/dark/side, /area/service/kitchen) "aGS" = ( /obj/machinery/processor, @@ -21056,23 +17947,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel/dark/side, /area/service/kitchen) "aGT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/kitchen) "aGU" = ( /obj/structure/rack, @@ -21086,13 +17968,7 @@ /obj/item/storage/box/donkpockets, /obj/item/clothing/head/chefhat, /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/kitchen) "aGV" = ( /obj/structure/table/reinforced, @@ -21105,13 +17981,7 @@ dir = 1; pixel_y = -22 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/kitchen) "aGW" = ( /obj/structure/table/reinforced, @@ -21120,21 +17990,12 @@ pixel_x = -3; pixel_y = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/kitchen) "aGX" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aGY" = ( @@ -21160,12 +18021,6 @@ dir = 8 }, /obj/effect/turf_decal/loading_area, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 9 }, @@ -21211,33 +18066,19 @@ name = "Station Intercom"; pixel_y = 26 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/medical/genetics) "aHd" = ( /obj/structure/window/reinforced, /obj/machinery/clonepod, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/medical/genetics) "aHe" = ( /obj/effect/turf_decal/bot_white/right, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) "aHf" = ( @@ -21249,25 +18090,6 @@ }, /turf/open/floor/plating, /area/medical/genetics) -"aHg" = ( -/obj/machinery/camera{ - c_tag = "Gravity Generator Room"; - dir = 8; - network = list("ss13","engine") - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engineering/gravity_generator) "aHh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -21423,7 +18245,7 @@ /area/engineering/main) "aHs" = ( /obj/effect/turf_decal/tile/blue, -/obj/machinery/vending/medical, +/obj/structure/closet/crate/freezer/blood, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "aHt" = ( @@ -21445,15 +18267,13 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/item/kirbyplants{ - icon_state = "plant-22" - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/machinery/vending/wardrobe/engi_wardrobe, /turf/open/floor/engine, /area/engineering/main) "aHv" = ( @@ -21485,10 +18305,6 @@ name = "Engineering Lockdown Shutters" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, @@ -21498,13 +18314,13 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, /turf/open/floor/plasteel, /area/engineering/main) "aHy" = ( @@ -21576,9 +18392,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -21591,7 +18404,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "aHE" = ( @@ -21602,30 +18414,20 @@ icon_state = "4-8" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/port) "aHF" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/port/central) @@ -21640,11 +18442,6 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/obj/structure/table, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/button/door{ id = "geneticsbot"; name = "Genetics Shutter Control"; @@ -21658,7 +18455,10 @@ pixel_y = 4 }, /obj/item/storage/box/rxglasses, -/turf/open/floor/plasteel/dark, +/obj/structure/table, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/genetics) "aHH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -21720,10 +18520,6 @@ /turf/closed/wall, /area/service/hydroponics) "aHO" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Hydroponics Maintenance"; - req_access_txt = "35" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -21731,9 +18527,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Hydroponics Maintenance"; + req_access_txt = "35" }, /turf/open/floor/plating, /area/maintenance/port/central) @@ -21775,31 +18571,11 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aHT" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/coffee, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aHU" = ( @@ -21828,49 +18604,37 @@ /area/service/kitchen) "aHW" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock{ - name = "Kitchen Coldroom"; - req_access_txt = "28" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock{ + name = "Kitchen Coldroom"; + req_access_txt = "28" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/service/kitchen) "aHX" = ( /obj/structure/sign/warning/nosmoking{ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/effect/turf_decal/bot, /obj/machinery/computer/scan_consolenew{ dir = 8 }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/medical/genetics) "aHY" = ( /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aHZ" = ( /obj/item/kirbyplants{ @@ -21883,51 +18647,14 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) -"aIb" = ( -/obj/structure/sign/warning/radiation{ - pixel_x = -32 - }, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/engineering/gravity_generator) "aIc" = ( /turf/open/floor/circuit/green, /area/engineering/gravity_generator) "aId" = ( -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/engineering/gravity_generator) "aIe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -22171,9 +18898,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -22187,23 +18911,18 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "aIB" = ( /turf/closed/wall, /area/service/janitor) "aIC" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Custodial Maintenance"; - req_access_txt = "26" - }, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Custodial Maintenance"; + req_access_txt = "26" }, /turf/open/floor/plating, /area/maintenance/port/central) @@ -22226,11 +18945,9 @@ /obj/effect/turf_decal/delivery, /obj/item/wrench, /obj/item/wirecutters, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aIF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -22238,11 +18955,9 @@ pixel_y = 32 }, /obj/structure/closet/secure_closet/hydroponics, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/corner{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aIG" = ( /obj/machinery/hydroponics/constructable, @@ -22292,11 +19007,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/corner{ + dir = 4 }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aIM" = ( /obj/machinery/requests_console{ @@ -22309,26 +19022,21 @@ /obj/machinery/chem_master/condimaster{ name = "BrewMaster 3000" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aIN" = ( -/obj/machinery/vending/hydronutrients, /obj/structure/noticeboard{ pixel_y = 30 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/vending/hydronutrients, +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aIO" = ( -/obj/machinery/vending/hydroseeds, /obj/machinery/light_switch{ pixel_x = -8; pixel_y = 24 @@ -22341,11 +19049,10 @@ req_access_txt = "35" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/vending/hydroseeds, +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aIP" = ( /obj/structure/table/reinforced, @@ -22364,16 +19071,9 @@ pixel_x = 32 }, /obj/structure/closet/crate/bin, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aIR" = ( /obj/structure/closet/secure_closet/freezer/meat, @@ -22434,9 +19134,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aIY" = ( @@ -22447,9 +19144,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aIZ" = ( @@ -22470,14 +19164,14 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aJb" = ( -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/exit) "aJc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -22523,52 +19217,24 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/dna_scannernew, -/obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/delivery, /obj/machinery/firealarm{ dir = 8; pixel_x = 24 }, -/turf/open/floor/plasteel/dark, -/area/medical/genetics) -"aJh" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/bot_white/left, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/area/medical/genetics) +"aJh" = ( +/obj/effect/turf_decal/bot_white/left, /turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) "aJi" = ( /obj/machinery/gravity_generator/main/station, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/engineering/gravity_generator) "aJj" = ( /obj/effect/spawner/structure/window/reinforced, @@ -22737,17 +19403,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, /area/engineering/main) -"aJx" = ( -/obj/structure/cable/white{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/medical/morgue) "aJy" = ( /obj/structure/cable{ icon_state = "1-2" @@ -22844,16 +19499,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/main) "aJE" = ( @@ -22875,16 +19520,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/main) "aJG" = ( @@ -22922,7 +19557,6 @@ /turf/open/floor/plasteel, /area/engineering/main) "aJI" = ( -/obj/structure/table/reinforced, /obj/item/storage/box/mousetraps{ pixel_x = 3; pixel_y = 3 @@ -22941,11 +19575,10 @@ c_tag = "Custodial Closet" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aJJ" = ( /obj/vehicle/ridden/janicart, @@ -22961,14 +19594,18 @@ icon_state = "0-2" }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/service/janitor) "aJK" = ( /obj/structure/cable/white{ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/service/janitor) "aJL" = ( /obj/structure/closet/crate/bin, @@ -22981,13 +19618,9 @@ name = "Station Intercom"; pixel_x = 26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aJM" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -23115,27 +19748,13 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "aJX" = ( /obj/machinery/vending/cola/random, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aJY" = ( /obj/structure/sign/warning/nosmoking, @@ -23224,13 +19843,7 @@ "aKg" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/hallway/primary/port/aft) "aKh" = ( /obj/structure/sign/nanotrasen, @@ -23277,39 +19890,21 @@ /turf/closed/wall, /area/maintenance/port/aft) "aKn" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, +/turf/open/floor/plating, /area/maintenance/port/aft) "aKo" = ( /obj/structure/lattice, /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) "aKp" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -23319,17 +19914,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/engineering/gravity_generator) "aKr" = ( /obj/machinery/power/solar{ @@ -23344,26 +19929,22 @@ /area/solars/port/aft) "aKs" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command/glass{ - name = "Gravity Generator Chamber"; - req_access_txt = "19; 61" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/structure/cable{ icon_state = "2-4" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/engineering/glass{ + name = "Gravity Generator"; + req_access_txt = "11" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/engineering/gravity_generator) "aKt" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -23388,16 +19969,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/gravity_generator) "aKv" = ( @@ -23423,10 +19994,6 @@ /area/engineering/gravity_generator) "aKx" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, /obj/structure/cable/white{ icon_state = "1-8" }, @@ -23436,17 +20003,17 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/engineering/gravity_generator) "aKy" = ( /obj/structure/cable/white{ @@ -23536,10 +20103,6 @@ /area/engineering/main) "aKH" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/engineering{ - name = "Engineering Access"; - req_access_txt = "10" - }, /obj/structure/cable/white{ icon_state = "1-8" }, @@ -23549,13 +20112,13 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/door/airlock/engineering{ + name = "Engineering Access"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, /area/engineering/main) "aKI" = ( /obj/structure/cable/white{ @@ -23618,16 +20181,6 @@ }, /obj/item/rcl/pre_loaded, /obj/item/rcl/pre_loaded, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/main) "aKM" = ( @@ -23638,7 +20191,7 @@ /obj/effect/turf_decal/bot, /obj/structure/closet/l3closet/janitor, /obj/item/toy/figure/janitor, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/service/janitor) "aKN" = ( /obj/structure/cable/white{ @@ -23647,16 +20200,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/main) "aKO" = ( @@ -23680,7 +20223,6 @@ /turf/open/floor/plasteel, /area/engineering/main) "aKP" = ( -/obj/structure/table/reinforced, /obj/item/clothing/gloves/color/orange, /obj/item/reagent_containers/spray/cleaner, /obj/item/reagent_containers/spray/cleaner, @@ -23693,11 +20235,10 @@ pixel_x = -32 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aKQ" = ( /obj/effect/landmark/start/janitor, @@ -23742,13 +20283,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aKT" = ( /obj/effect/turf_decal/stripes/line{ @@ -23765,38 +20302,17 @@ /area/service/hydroponics) "aKU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/hydroponics) "aKV" = ( /turf/closed/wall/r_wall, /area/medical/virology) "aKW" = ( -/obj/machinery/seed_extractor, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/seed_extractor, /turf/open/floor/plasteel, /area/service/hydroponics) "aKX" = ( -/obj/structure/table/glass, /obj/item/crowbar/red, /obj/item/cultivator, /obj/item/shovel/spade, @@ -23808,20 +20324,10 @@ }, /obj/item/reagent_containers/glass/bucket, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table/glass, /turf/open/floor/plasteel, /area/service/hydroponics) "aKY" = ( -/obj/structure/table/glass, /obj/machinery/reagentgrinder{ desc = "Used to grind things up into raw materials and liquids."; pixel_y = 5 @@ -23832,35 +20338,16 @@ /obj/item/reagent_containers/glass/bottle/nutrient/rh, /obj/item/reagent_containers/dropper, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table/glass, /turf/open/floor/plasteel, /area/service/hydroponics) "aKZ" = ( -/obj/structure/table/glass, /obj/item/watertank, /obj/item/reagent_containers/spray/pestspray, /obj/item/grenade/chem_grenade/antiweed, /obj/item/grenade/chem_grenade/antiweed, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table/glass, /turf/open/floor/plasteel, /area/service/hydroponics) "aLa" = ( @@ -23870,16 +20357,6 @@ icon_state = "1-2" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/hydroponics) "aLb" = ( @@ -23903,13 +20380,7 @@ /obj/item/reagent_containers/food/snacks/grown/tomato, /obj/effect/turf_decal/bot, /obj/item/paper/guides/jobs/hydroponics, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/hydroponics) "aLd" = ( /obj/structure/table/glass, @@ -23925,13 +20396,7 @@ /obj/item/seeds/tower, /obj/effect/turf_decal/bot, /obj/item/book/manual/hydroponics_pod_people, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/hydroponics) "aLe" = ( /obj/machinery/smartfridge, @@ -23964,13 +20429,9 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aLi" = ( /obj/structure/kitchenspike, @@ -23997,9 +20458,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aLn" = ( @@ -24030,6 +20488,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, +/obj/effect/turf_decal/trimline/green/line, /turf/open/floor/plating, /area/maintenance/port/aft) "aLq" = ( @@ -24129,16 +20588,21 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/port/aft) "aLC" = ( /turf/closed/wall, /area/maintenance/solars/port/aft) "aLD" = ( -/obj/machinery/power/port_gen/pacman, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/structure/table/reinforced, +/obj/item/paper/guides/jobs/engi/gravity_gen, +/obj/item/pen/blue, /turf/open/floor/plasteel, /area/engineering/gravity_generator) "aLE" = ( @@ -24148,17 +20612,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/engineering/gravity_generator) "aLF" = ( /obj/structure/table/reinforced, @@ -24190,6 +20644,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/power/port_gen/pacman, /turf/open/floor/plasteel, /area/engineering/gravity_generator) "aLI" = ( @@ -24230,13 +20685,10 @@ /turf/open/floor/plasteel, /area/engineering/gravity_generator) "aLL" = ( -/obj/effect/turf_decal/box, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/tracker, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port/aft) +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "aLM" = ( /obj/structure/cable/white{ icon_state = "1-2" @@ -24368,16 +20820,6 @@ /turf/open/floor/plasteel, /area/engineering/main) "aMa" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/main) "aMb" = ( @@ -24428,7 +20870,6 @@ /turf/open/floor/plasteel, /area/engineering/main) "aMe" = ( -/obj/structure/table/reinforced, /obj/item/storage/box/lights/mixed{ pixel_x = 3; pixel_y = 3 @@ -24439,11 +20880,10 @@ dir = 4; pixel_x = -23 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aMf" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, @@ -24484,13 +20924,9 @@ dir = 9 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aMi" = ( /obj/effect/turf_decal/stripes/line{ @@ -24656,17 +21092,7 @@ /obj/structure/sign/poster/contraband/random{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/maintenance/port/aft) "aMw" = ( /obj/structure/rack, @@ -24676,17 +21102,10 @@ }, /obj/item/storage/secure/briefcase, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aMx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -24702,13 +21121,9 @@ icon_state = "plant-22" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aMz" = ( /obj/item/kirbyplants{ @@ -24731,16 +21146,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "aMC" = ( @@ -24790,18 +21195,14 @@ /area/tcommsat/server) "aML" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Telecomms Control Room"; - req_access_txt = "19; 61" - }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/engineering{ + name = "Telecommunications"; + req_access_txt = "61" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/tcommsat/server) "aMM" = ( /obj/effect/spawner/structure/window/reinforced, @@ -24916,15 +21317,9 @@ /turf/open/floor/engine, /area/engineering/supermatter) "aMY" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/dna_scannernew, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/dark, +/obj/machinery/dna_scannernew, +/turf/open/floor/plasteel/dark/side, /area/medical/genetics) "aMZ" = ( /obj/structure/cable{ @@ -25037,9 +21432,6 @@ c_tag = "Atmospherics South West"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -25049,7 +21441,6 @@ /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "aNj" = ( @@ -25060,11 +21451,9 @@ pixel_y = -26 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aNk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -25072,18 +21461,13 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/service/janitor) "aNl" = ( -/obj/structure/table, /obj/machinery/airalarm/unlocked{ dir = 4; pixel_x = -23 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, /obj/item/clipboard, /obj/item/folder/white, /obj/item/storage/pill_bottle/mutadone{ @@ -25099,32 +21483,25 @@ pixel_x = 5; pixel_y = 13 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/genetics) "aNm" = ( /obj/effect/turf_decal/bot, /obj/machinery/vending/wardrobe/jani_wardrobe, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/janitor) "aNn" = ( -/obj/structure/table/glass, /obj/item/storage/box/syringes, /obj/effect/turf_decal/bot, /obj/item/storage/box/disks_plantgene, /obj/item/toy/figure/botanist, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/glass, +/turf/open/floor/plasteel/dark/side, /area/service/hydroponics) "aNo" = ( /obj/machinery/light_switch{ @@ -25151,12 +21528,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/door/airlock/medical/glass{ name = "Genetics"; req_access_txt = "5; 9; 68" @@ -25197,13 +21568,9 @@ /area/service/hydroponics) "aNt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/corner{ + dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, /area/service/hydroponics) "aNu" = ( /obj/structure/closet/crate/bin, @@ -25213,13 +21580,7 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/service/hydroponics) "aNv" = ( /obj/structure/window/reinforced{ @@ -25238,30 +21599,22 @@ /area/service/hydroponics) "aNy" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Atrium" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/service/bar/atrium) -"aNz" = ( -/obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ name = "Atrium" }, +/turf/open/floor/plasteel/dark, +/area/service/bar/atrium) +"aNz" = ( +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/public/glass{ + name = "Atrium" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "aNA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -25309,9 +21662,6 @@ pixel_x = -24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -25421,19 +21771,15 @@ /area/medical/genetics) "aNQ" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, /obj/machinery/door/airlock/medical/glass{ id_tag = "cloningfoyer"; name = "Cloning Lab"; req_access_txt = "5" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, /turf/open/floor/plasteel, /area/medical/genetics) "aNR" = ( @@ -25456,23 +21802,13 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "aNT" = ( -/obj/machinery/announcement_system, /obj/machinery/status_display/ai{ pixel_x = -32 }, /obj/machinery/firealarm{ pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/announcement_system, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "aNU" = ( @@ -25496,21 +21832,11 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/server) "aNX" = ( -/obj/machinery/computer/telecomms/monitor{ - dir = 8 - }, /obj/item/radio/intercom{ name = "Station Intercom"; pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/computer/telecomms/monitor{ dir = 8 }, /turf/open/floor/plasteel/dark, @@ -25589,37 +21915,27 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/airlock/command{ - name = "Chief Medical Officer's Office"; - req_access_txt = "40" - }, /obj/machinery/door/firedoor, /obj/structure/cable/white{ icon_state = "2-8" }, +/obj/machinery/door/airlock/command{ + name = "Chief Medical Officer's Office"; + req_access_txt = "40" + }, /turf/open/floor/plasteel, /area/command/heads_quarters/cmo) "aOf" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; - req_access_txt = "26" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock{ + name = "Custodial Closet"; + req_access_txt = "26" }, /turf/open/floor/plasteel, /area/service/janitor) @@ -25647,15 +21963,11 @@ /area/service/hydroponics) "aOi" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/medical/glass{ name = "Hydroponics"; req_access_txt = "35" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/service/hydroponics) "aOj" = ( @@ -25760,41 +22072,29 @@ /obj/machinery/shieldgen, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/maintenance/port/aft) "aOu" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/starboard/central) "aOv" = ( -/obj/machinery/computer/message_monitor{ - dir = 4 - }, /obj/machinery/newscaster{ pixel_x = -32 }, /obj/item/paper/monitorkey, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/computer/message_monitor{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "aOw" = ( @@ -25814,9 +22114,6 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/server) "aOy" = ( -/obj/machinery/computer/telecomms/server{ - dir = 8 - }, /obj/machinery/newscaster{ pixel_x = 32 }, @@ -25824,14 +22121,7 @@ pixel_x = 24; pixel_y = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/computer/telecomms/server{ dir = 8 }, /turf/open/floor/plasteel/dark, @@ -25998,17 +22288,9 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aON" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aOO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -26021,17 +22303,9 @@ icon_state = "4-8" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/port/aft) "aOP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -26041,9 +22315,6 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -26102,12 +22373,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/airalarm{ pixel_y = 24 }, @@ -26230,12 +22495,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "aPe" = ( @@ -26391,9 +22650,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aPq" = ( @@ -26415,9 +22671,6 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aPr" = ( @@ -26431,9 +22684,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aPs" = ( @@ -26446,9 +22696,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aPt" = ( @@ -26461,9 +22708,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/central) "aPu" = ( @@ -26474,9 +22718,6 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aPv" = ( @@ -26515,9 +22756,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aPx" = ( @@ -26530,20 +22768,15 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aPy" = ( /obj/structure/table, /obj/item/storage/briefcase, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aPz" = ( /obj/effect/turf_decal/delivery, @@ -26571,11 +22804,11 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/grunge{ name = "Morgue"; req_access_txt = "5" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/medical/morgue) "aPB" = ( @@ -26619,10 +22852,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/medical/morgue) "aPF" = ( @@ -26644,10 +22873,6 @@ /turf/open/floor/plating, /area/tcommsat/server) "aPH" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /obj/structure/disposalpipe/trunk{ dir = 1 }, @@ -26771,15 +22996,11 @@ /area/maintenance/port/aft) "aPU" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock{ id_tag = "Dorm2"; name = "Dorm 2" }, -/turf/open/floor/plasteel, +/turf/open/floor/carpet, /area/commons/dorms) "aPV" = ( /obj/structure/barricade/wooden, @@ -26787,10 +23008,6 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "aPW" = ( @@ -26800,17 +23017,9 @@ pixel_x = -24 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/port/aft) "aPX" = ( /obj/item/kirbyplants{ @@ -26820,9 +23029,6 @@ c_tag = "Central Primary Hallway South-West"; dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -26832,9 +23038,6 @@ codes_txt = "patrol;next_patrol=9.2-EnteringEngi"; location = "9.1-Library" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, @@ -26850,9 +23053,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -26864,18 +23064,12 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, /area/hallway/primary/port/aft) "aQb" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -26885,21 +23079,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "aQd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -26910,17 +23095,11 @@ dir = 8; network = list("ss13","medbay") }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/computer/scan_consolenew{ dir = 1 }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/medical/genetics) "aQf" = ( /obj/machinery/firealarm{ @@ -26930,9 +23109,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -26947,16 +23123,6 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "aQh" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/airalarm{ dir = 4; pixel_x = -22 @@ -26964,16 +23130,6 @@ /turf/open/floor/plasteel/dark, /area/medical/morgue) "aQi" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, @@ -27118,7 +23274,6 @@ dir = 4 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aQy" = ( @@ -27129,7 +23284,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aQz" = ( @@ -27140,7 +23294,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "aQA" = ( @@ -27155,29 +23308,15 @@ dir = 1 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "aQB" = ( /obj/structure/sign/poster/contraband/random, /turf/closed/wall, /area/maintenance/port/aft) "aQC" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, @@ -27192,16 +23331,6 @@ icon_state = "2-4" }, /obj/effect/landmark/blobstart, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, @@ -27215,9 +23344,6 @@ /turf/open/floor/plating/asteroid, /area/command/heads_quarters/rd) "aQF" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/structure/sign/warning/fire{ desc = "A sign that states the labeled room's number."; icon_state = "roomnum"; @@ -27225,7 +23351,7 @@ pixel_x = -1; pixel_y = 26 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aQG" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -27235,16 +23361,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "aQH" = ( @@ -27252,16 +23368,12 @@ icon_state = "1-2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/command{ - name = "Telecomms Server Room"; - req_access_txt = "61" - }, -/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" }, /turf/open/floor/plasteel/grimy, /area/tcommsat/server) @@ -27270,12 +23382,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "aQJ" = ( @@ -27301,12 +23407,6 @@ "aQL" = ( /obj/structure/table/wood, /obj/item/clothing/gloves/color/latex, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "aQM" = ( @@ -27366,42 +23466,29 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/engine, /area/engineering/main) "aQU" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "aQV" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/computer/arcade{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/maintenance/port/aft) "aQW" = ( /turf/closed/wall, @@ -27412,28 +23499,20 @@ /area/service/library) "aQY" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/public/glass{ name = "Library Access" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/service/library) "aQZ" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Library Access" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/public/glass{ + name = "Library Access" }, /turf/open/floor/plasteel, /area/service/library) @@ -27456,7 +23535,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, /obj/structure/sign/warning/fire{ desc = "A sign that states the labeled room's number."; dir = 4; @@ -27465,7 +23543,7 @@ pixel_x = -1; pixel_y = -24 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "aRf" = ( /turf/closed/wall, @@ -27549,10 +23627,6 @@ /obj/structure/bodycontainer/morgue{ dir = 2 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/medical/morgue) @@ -27590,58 +23664,42 @@ /area/science/lab) "aRu" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" }, /turf/open/floor/plasteel, /area/science/research) "aRv" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/research{ name = "Research Division Access"; req_access_txt = "47" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/science/research) "aRw" = ( /obj/structure/bodycontainer/morgue{ dir = 2 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, /turf/open/floor/plasteel/dark, /area/medical/morgue) "aRx" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -27690,10 +23748,6 @@ /obj/item/clipboard, /obj/item/storage/firstaid/o2, /obj/item/crowbar, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "aRC" = ( @@ -27704,19 +23758,11 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "aRE" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "aRF" = ( @@ -27755,13 +23801,12 @@ /turf/open/floor/engine, /area/engineering/main) "aRI" = ( -/obj/structure/cable/white{ - dir = 5; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 5 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/engine, /area/engineering/main) "aRJ" = ( @@ -27855,36 +23900,21 @@ c_tag = "Library 2"; dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/sign/painting{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aRU" = ( /obj/structure/table/wood, /obj/item/folder, /obj/item/pen, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aRV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -27898,16 +23928,6 @@ name = "Station Intercom"; pixel_y = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aRX" = ( @@ -27916,7 +23936,9 @@ /obj/machinery/newscaster{ pixel_y = 32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aRY" = ( /obj/structure/table/wood, @@ -27928,23 +23950,15 @@ }, /obj/item/paper_bin, /obj/item/pen, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aRZ" = ( /obj/structure/chair/office/dark{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aSa" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -27960,16 +23974,6 @@ "aSc" = ( /obj/structure/table/wood, /obj/machinery/computer/libraryconsole, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aSd" = ( @@ -27978,7 +23982,9 @@ /obj/machinery/newscaster{ pixel_x = 32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aSe" = ( /obj/machinery/vending/wallmed{ @@ -28002,7 +24008,9 @@ }, /obj/machinery/shieldgen, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/maintenance/port/aft) "aSg" = ( /obj/item/cigbutt, @@ -28031,7 +24039,9 @@ /obj/structure/closet/secure_closet/medical1, /obj/item/storage/box/beakers, /obj/item/storage/box/pillbottles, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/chemistry) "aSk" = ( /obj/structure/cable/white{ @@ -28053,16 +24063,6 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "aSm" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) @@ -28081,16 +24081,6 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "aSo" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/dark, /area/medical/morgue) @@ -28128,10 +24118,6 @@ "aSt" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aSu" = ( @@ -28295,29 +24281,15 @@ }, /area/maintenance/port/aft) "aSM" = ( -/obj/machinery/door/airlock/command{ - name = "Telecomms Server Room"; - req_access_txt = "61" - }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room"; + req_access_txt = "61" }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) @@ -28336,7 +24308,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/machinery/vending/wardrobe/engi_wardrobe, +/obj/structure/closet/secure_closet/engineering_electrical, /turf/open/floor/engine, /area/engineering/main) "aSQ" = ( @@ -28344,12 +24316,6 @@ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plating, /area/maintenance/port/aft) "aSR" = ( @@ -28378,18 +24344,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/engineering/main) -"aSU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/engineering/main) "aSV" = ( /obj/machinery/power/emitter/anchored{ dir = 1; @@ -28407,11 +24361,8 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/effect/turf_decal/stripes/end{ + dir = 1 }, /turf/open/floor/engine, /area/engineering/main) @@ -28465,64 +24416,40 @@ dir = 8 }, /obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aTd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aTe" = ( /obj/structure/chair/office/dark{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aTf" = ( /obj/structure/table/wood, /obj/item/clipboard, /obj/item/storage/dice, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aTg" = ( /obj/structure/table/wood, /obj/item/folder, /obj/item/pen/red, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aTh" = ( /obj/structure/chair/office/dark{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aTi" = ( @@ -28530,7 +24457,9 @@ dir = 4 }, /obj/effect/landmark/start/librarian, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aTj" = ( /obj/effect/turf_decal/stripes/line{ @@ -28620,7 +24549,9 @@ dir = 6 }, /obj/machinery/vending/wardrobe/chem_wardrobe, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/chemistry) "aTr" = ( /obj/structure/cable/white{ @@ -28651,15 +24582,13 @@ /turf/open/floor/plasteel, /area/medical/chemistry) "aTv" = ( -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 +/obj/machinery/door/airlock/virology/glass{ + name = "Isolation Room"; + req_access_txt = "39" }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, /turf/open/floor/plasteel/freezer, /area/medical/virology) @@ -28675,16 +24604,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aTy" = ( @@ -28700,9 +24619,6 @@ /obj/item/kirbyplants{ icon_state = "plant-18" }, -/obj/machinery/camera{ - c_tag = "Arrivals Lounge" - }, /turf/open/floor/plasteel/grimy, /area/commons/lounge) "aTB" = ( @@ -28713,20 +24629,13 @@ "aTC" = ( /obj/structure/table/wood, /obj/item/storage/fancy/donut_box, +/obj/machinery/camera{ + c_tag = "Arrivals Lounge" + }, /turf/open/floor/plasteel/grimy, /area/commons/lounge) "aTD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aTE" = ( @@ -28770,16 +24679,6 @@ /area/science/lab) "aTI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, /turf/open/floor/plasteel, /area/science/lab) "aTJ" = ( @@ -28799,10 +24698,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aTL" = ( @@ -28838,21 +24733,15 @@ /turf/open/floor/plasteel/white, /area/science/research) "aTO" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Science Maintenance"; - req_access_txt = "47" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Science Maintenance"; + req_access_txt = "47" }, /turf/open/floor/plating, /area/science/research) @@ -28926,26 +24815,18 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 }, /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aTW" = ( -/obj/structure/bed, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, +/obj/machinery/light/small{ + dir = 4 + }, /turf/open/floor/plasteel/freezer, /area/medical/virology) "aTX" = ( @@ -28953,16 +24834,6 @@ dir = 8 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "aTY" = ( @@ -28973,16 +24844,6 @@ dir = 4 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "aTZ" = ( @@ -28993,16 +24854,6 @@ dir = 9 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "aUa" = ( @@ -29010,16 +24861,6 @@ /turf/closed/wall/r_wall/rust, /area/engineering/main) "aUb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/landmark/event_spawn, /obj/structure/cable/white{ @@ -29041,7 +24882,9 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aUd" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -29088,7 +24931,9 @@ /area/maintenance/port/aft) "aUj" = ( /obj/machinery/photocopier, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aUk" = ( /obj/structure/table/wood, @@ -29101,31 +24946,15 @@ /obj/structure/sign/poster/contraband/random{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aUm" = ( /obj/machinery/computer/slot_machine, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aUn" = ( /obj/effect/spawner/structure/window/reinforced/tinted, @@ -29158,17 +24987,9 @@ pixel_y = 5 }, /obj/item/reagent_containers/syringe, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aUq" = ( /obj/structure/table/wood, @@ -29194,16 +25015,12 @@ /turf/closed/wall, /area/medical/chemistry) "aUs" = ( -/obj/structure/table/glass, /obj/machinery/reagentgrinder{ pixel_y = 5 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/glass, +/turf/open/floor/plasteel, /area/medical/chemistry) "aUt" = ( /obj/effect/turf_decal/bot, @@ -29223,6 +25040,7 @@ /obj/structure/cable/white{ icon_state = "1-8" }, +/obj/effect/turf_decal/trimline/green/line, /turf/open/floor/plating, /area/maintenance/port/aft) "aUv" = ( @@ -29241,7 +25059,7 @@ dir = 4 }, /obj/structure/closet/crate/bin, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel, /area/medical/chemistry) "aUx" = ( /obj/structure/chair/comfy/brown{ @@ -29263,26 +25081,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aUB" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aUC" = ( @@ -29291,10 +25095,6 @@ dir = 5 }, /obj/machinery/rnd/production/protolathe/department/science, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aUD" = ( @@ -29327,10 +25127,6 @@ dir = 8 }, /obj/item/multitool, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aUF" = ( @@ -29383,39 +25179,24 @@ /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/turf_decal/trimline/green/line, /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aUK" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/door/airlock/virology{ name = "Virology Access"; req_access_txt = "39" }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /turf/open/floor/plasteel, /area/medical/virology) "aUL" = ( @@ -29430,16 +25211,12 @@ /area/maintenance/port/aft) "aUM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Medbay Maintenance"; - req_access_txt = "5" - }, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Medbay Maintenance"; + req_access_txt = "5" }, /turf/open/floor/plasteel, /area/maintenance/port/aft) @@ -29449,8 +25226,7 @@ icon_state = "1-2" }, /obj/effect/turf_decal/trimline/green/line{ - dir = 8; - icon_state = "trimline" + dir = 9 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -29465,16 +25241,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "aUP" = ( @@ -29525,16 +25291,6 @@ pixel_x = -26 }, /obj/machinery/libraryscanner, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aUW" = ( @@ -29561,8 +25317,7 @@ dir = 4 }, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -29575,8 +25330,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -29591,16 +25345,6 @@ name = "Station Intercom"; pixel_x = 26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aVc" = ( @@ -29618,8 +25362,7 @@ }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -29640,8 +25383,7 @@ }, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -29654,8 +25396,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -29674,8 +25415,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/green/corner{ - dir = 1; - icon_state = "trimline_corner" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -29746,16 +25486,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aVp" = ( @@ -29774,22 +25504,6 @@ }, /turf/open/floor/plasteel/grimy, /area/commons/lounge) -"aVs" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) "aVt" = ( /obj/machinery/computer/rdconsole/core{ dir = 4 @@ -29807,10 +25521,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aVu" = ( @@ -29820,16 +25530,6 @@ icon_state = "2-8" }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aVv" = ( @@ -29839,10 +25539,6 @@ dir = 6 }, /obj/machinery/rnd/production/circuit_imprinter/department/science, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aVw" = ( @@ -29858,10 +25554,6 @@ /obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aVy" = ( @@ -29886,11 +25578,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Engineering Access"; - dir = 8; - network = list("ss13","engine") - }, /obj/effect/turf_decal/stripes/line{ dir = 6 }, @@ -29908,16 +25595,6 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/science/research) "aVC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/science/research) "aVD" = ( @@ -29938,15 +25615,11 @@ /area/science/research) "aVF" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock{ id_tag = "Dorm3"; name = "Dorm 3" }, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/commons/dorms) "aVG" = ( /turf/open/floor/plating{ @@ -29955,20 +25628,15 @@ /area/maintenance/port/aft) "aVH" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock{ id_tag = "Dorm4"; name = "Room Four" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/grimy, /area/commons/dorms) "aVI" = ( /obj/effect/turf_decal/trimline/green/line{ - dir = 9; - icon_state = "trimline" + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -29981,8 +25649,7 @@ icon_state = "2-4" }, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -30008,8 +25675,7 @@ icon_state = "1-8" }, /obj/effect/turf_decal/trimline/green/corner{ - dir = 1; - icon_state = "trimline_corner" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -30020,19 +25686,15 @@ /obj/machinery/status_display{ pixel_x = -32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aVO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/window/northright{ + name = "Library Desk Door"; + req_access_txt = "37" }, /turf/open/floor/plasteel/dark, /area/service/library) @@ -30040,19 +25702,11 @@ /obj/structure/table/wood, /obj/item/flashlight/lamp, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aVQ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aVR" = ( @@ -30083,7 +25737,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aVU" = ( /obj/effect/turf_decal/tile/neutral{ @@ -30100,9 +25756,13 @@ /turf/open/floor/plasteel/dark, /area/service/library) "aVV" = ( -/obj/structure/bookcase/random/religion, -/turf/open/floor/plasteel/dark, -/area/service/library) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "aVW" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical, @@ -30121,13 +25781,11 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 26 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aVY" = ( -/obj/machinery/door/airlock/grunge{ - name = "Crematorium"; - req_access_txt = "27" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -30136,23 +25794,13 @@ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/grunge{ + name = "Crematorium"; + req_access_txt = "27" }, /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "aVZ" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -30160,9 +25808,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -30271,13 +25919,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/white, /area/medical/chemistry) "aWj" = ( /obj/structure/table/glass, @@ -30313,6 +25955,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/item/screwdriver, /turf/open/floor/plasteel, /area/medical/chemistry) "aWk" = ( @@ -30351,7 +25994,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/medbay/zone3) "aWn" = ( /obj/machinery/firealarm{ @@ -30378,10 +26023,6 @@ }, /obj/item/stock_parts/cell/high, /obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/lab) "aWp" = ( @@ -30419,16 +26060,6 @@ /obj/machinery/atmospherics/pipe/simple/general/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/science/research) "aWu" = ( @@ -30439,18 +26070,12 @@ /turf/open/floor/circuit/green/telecomms/mainframe, /area/science/research) "aWv" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -30460,8 +26085,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/trimline/green/line{ - dir = 8; - icon_state = "trimline" + dir = 8 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -30496,16 +26120,6 @@ /obj/machinery/light_switch{ pixel_y = -24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aWB" = ( @@ -30514,7 +26128,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aWC" = ( /obj/structure/table/wood, @@ -30524,24 +26140,18 @@ }, /obj/item/camera_film, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aWD" = ( /obj/machinery/holopad, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aWE" = ( -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aWF" = ( /obj/structure/cable/white{ @@ -30556,16 +26166,6 @@ /obj/machinery/status_display{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aWH" = ( @@ -30619,38 +26219,28 @@ /turf/open/floor/plasteel, /area/medical/virology) "aWM" = ( -/obj/machinery/door/airlock/virology{ - name = "Virology Access"; - req_access_txt = "39" - }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/door/airlock/virology{ + name = "Virology Access"; + req_access_txt = "39" + }, /turf/open/floor/plasteel/white, /area/medical/virology) "aWN" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Chemistry Lab"; - req_access_txt = "5; 33" - }, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/medical/glass{ + name = "Chemistry Lab"; + req_access_txt = "5; 33" }, /turf/open/floor/plasteel, /area/medical/chemistry) @@ -30710,15 +26300,14 @@ /area/commons/lounge) "aWU" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Research and Development Lab"; - req_one_access_txt = "7;29" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/research{ + name = "Research and Development Lab"; + req_one_access_txt = "7;29" + }, /turf/open/floor/plasteel, /area/science/lab) "aWV" = ( @@ -30765,20 +26354,6 @@ name = "Server Access"; req_access_txt = "30" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aXa" = ( @@ -30817,8 +26392,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/trimline/green/corner{ - dir = 1; - icon_state = "trimline_corner" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) @@ -30838,20 +26412,12 @@ /obj/structure/sign/painting{ pixel_y = -32 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aXh" = ( /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/library) "aXi" = ( @@ -30869,16 +26435,6 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "aXj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/structure/sign/painting{ pixel_y = -32 }, @@ -30892,7 +26448,9 @@ c_tag = "Library 1"; dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, /area/service/library) "aXm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -30996,17 +26554,13 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "aXv" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plasteel, /area/maintenance/port/aft) @@ -31014,26 +26568,16 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aXx" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" }, /turf/open/floor/plasteel, /area/science/research) @@ -31101,10 +26645,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, /turf/open/floor/plasteel, /area/medical/virology) "aXE" = ( @@ -31122,23 +26662,17 @@ /turf/open/floor/plasteel/white, /area/science/research) "aXF" = ( -/obj/machinery/door/airlock/command{ - name = "Research Division Server Room"; - req_access_txt = "30" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock/command{ + name = "Research Division Server Room"; + req_access_txt = "30" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/science/research) "aXG" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, @@ -31148,16 +26682,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aXH" = ( @@ -31170,16 +26694,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aXI" = ( @@ -31191,16 +26705,6 @@ pixel_x = 24 }, /obj/item/clothing/suit/armor/reactive/teleport, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aXJ" = ( @@ -31234,16 +26738,12 @@ /area/service/library) "aXN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel, +/turf/open/floor/wood, /area/maintenance/port/aft) "aXO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31294,20 +26794,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/medbay/zone3) "aXT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXU" = ( @@ -31334,16 +26826,6 @@ /area/medical/medbay/zone3) "aXX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aXY" = ( @@ -31377,26 +26859,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/aft) -"aYc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYd" = ( @@ -31406,10 +26868,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYe" = ( @@ -31425,24 +26883,10 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYf" = ( /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYg" = ( @@ -31450,26 +26894,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYh" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" }, /turf/open/floor/plasteel, /area/science/research) @@ -31559,16 +26993,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "aYq" = ( @@ -31582,16 +27006,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aYr" = ( @@ -31609,16 +27023,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aYs" = ( @@ -31629,16 +27033,6 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/research) "aYt" = ( @@ -31651,21 +27045,15 @@ /turf/open/floor/plating, /area/maintenance/starboard) "aYu" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/starboard/aft) @@ -31729,21 +27117,15 @@ /area/maintenance/port/aft) "aYB" = ( /obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/command{ - name = "Research Director's Office"; - req_access_txt = "30" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock/command{ + name = "Research Director's Office"; + req_access_txt = "30" }, /turf/open/floor/plasteel, /area/command/heads_quarters/rd) @@ -31775,7 +27157,9 @@ "aYF" = ( /obj/structure/chair/comfy/black, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, /area/maintenance/port/aft) "aYG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -31808,12 +27192,6 @@ name = "Medbay Storage"; req_access_txt = "5" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYK" = ( @@ -31870,14 +27248,18 @@ }, /obj/structure/table, /obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = -6; - pixel_y = 6 + pixel_x = -5; + pixel_y = 10 }, /obj/item/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 6; + pixel_x = -5; pixel_y = 6 }, -/obj/item/storage/pill_bottle/mannitol, +/obj/item/storage/pill_bottle/mannitol{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/cleaner, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYQ" = ( @@ -31901,16 +27283,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYS" = ( @@ -31925,23 +27297,17 @@ /area/medical/medbay/zone3) "aYT" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/unres{ dir = 8 }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aYU" = ( @@ -31949,12 +27315,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYV" = ( @@ -31965,28 +27325,12 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -32005,16 +27349,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aYZ" = ( @@ -32040,15 +27374,11 @@ /area/science/robotics/mechbay) "aZd" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/research{ name = "Mech Bay"; req_access_txt = "29" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) "aZe" = ( @@ -32058,7 +27388,6 @@ "aZf" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/research) "aZg" = ( @@ -32067,7 +27396,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/science/research) "aZh" = ( @@ -32132,17 +27460,11 @@ /turf/open/floor/plasteel, /area/maintenance/port/aft) "aZq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt/dust, /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel, /area/maintenance/port/aft) "aZr" = ( @@ -32158,14 +27480,10 @@ /area/maintenance/port/aft) "aZs" = ( /obj/machinery/vending/autodrobe, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/maintenance/port/aft) "aZt" = ( /obj/effect/turf_decal/tile/neutral{ @@ -32259,14 +27577,10 @@ /area/maintenance/port/aft) "aZz" = ( /obj/structure/dresser, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/maintenance/port/aft) "aZA" = ( /obj/structure/table/glass, @@ -32277,12 +27591,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/folder/white, /obj/item/toy/figure/chemist, /obj/item/reagent_containers/glass/beaker/large{ @@ -32293,16 +27601,15 @@ pixel_x = 3; pixel_y = 6 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/medical/chemistry) "aZB" = ( -/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/virology/glass{ - name = "Isolation Room"; - req_access_txt = "39" +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 }, -/turf/open/floor/plasteel/freezer, +/turf/open/floor/plasteel, /area/medical/virology) "aZC" = ( /obj/structure/table/wood, @@ -32330,31 +27637,19 @@ name = "Atmospherics Maintenance"; req_access_txt = "12;24" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/port/aft) "aZF" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Storage"; - req_access_txt = "5" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Storage"; + req_access_txt = "5" }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) @@ -32386,16 +27681,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aZJ" = ( @@ -32452,16 +27737,6 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aZN" = ( @@ -32498,26 +27773,20 @@ /area/medical/medbay/zone3) "aZP" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - id_tag = "MedbayFoyer"; - name = "Medbay"; - req_access_txt = "5" - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/unres{ dir = 8 }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "aZQ" = ( @@ -32527,12 +27796,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aZR" = ( @@ -32549,16 +27812,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aZS" = ( @@ -32589,10 +27842,6 @@ icon_state = "0-2" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/mechbay) "aZV" = ( @@ -32600,29 +27849,17 @@ /obj/effect/landmark/start/cyborg, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/mechbay) "aZW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/mechbay) "aZX" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/oil, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/mechbay) "aZY" = ( @@ -32666,10 +27903,6 @@ network = list("ss13","rd") }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bac" = ( @@ -32677,10 +27910,6 @@ /obj/effect/turf_decal/stripes/end{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bad" = ( @@ -32693,10 +27922,6 @@ dir = 1 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bae" = ( @@ -32716,7 +27941,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/solars/port/aft) "baf" = ( /obj/item/stack/sheet/metal/fifty, @@ -32736,10 +27961,6 @@ pixel_y = 32 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bag" = ( @@ -32772,10 +27993,6 @@ /obj/item/stack/sheet/plasteel{ amount = 15 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bah" = ( @@ -32792,28 +28009,21 @@ }, /area/maintenance/starboard) "baj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/landmark/xeno_spawn, /obj/structure/sign/warning/vacuum{ pixel_x = -32; pixel_y = 32 }, -/obj/effect/turf_decal/delivery, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/caution, +/turf/open/floor/plating, /area/maintenance/solars/port/aft) "bak" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/solars/port/aft) "bal" = ( /obj/effect/turf_decal/stripes/line{ @@ -32822,9 +28032,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/machinery/door/airlock/external{ name = "External Airlock"; req_access_txt = "13" @@ -32835,12 +28042,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/solars/port/aft) "bam" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/sign/warning/vacuum{ pixel_y = 32 }, @@ -32853,8 +28057,8 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) @@ -32871,20 +28075,14 @@ /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bap" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "baq" = ( @@ -32925,11 +28123,10 @@ /area/maintenance/solars/port/aft) "bav" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-2" }, -/turf/closed/wall, +/turf/open/floor/plating, /area/maintenance/solars/port/aft) "baw" = ( /obj/effect/spawner/structure/window/reinforced, @@ -32955,7 +28152,9 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/medical/medbay/zone3) "bay" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -32991,16 +28190,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "baB" = ( @@ -33023,16 +28212,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "baD" = ( @@ -33086,16 +28265,6 @@ c_tag = "Medbay Foyer"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "baI" = ( @@ -33154,16 +28323,6 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "baM" = ( @@ -33225,21 +28384,15 @@ /area/science/robotics/mechbay) "baR" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Mech Bay"; - req_access_txt = "29" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/research{ + name = "Mech Bay"; + req_access_txt = "29" }, /turf/open/floor/plasteel, /area/science/robotics/mechbay) @@ -33289,7 +28442,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/structure/closet/crate/bin, /turf/open/floor/plasteel, /area/science/robotics/lab) "baW" = ( @@ -33325,12 +28477,6 @@ /area/science/robotics/lab) "bba" = ( /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bbb" = ( @@ -33362,9 +28508,14 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bbf" = ( +/obj/machinery/camera{ + c_tag = "Port Quarter Solar"; + dir = 4; + network = list("ss13","engine") + }, /obj/machinery/power/smes, /obj/structure/cable/white{ - icon_state = "0-2" + icon_state = "0-4" }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) @@ -33378,42 +28529,23 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bbi" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/structure/cable/white{ - icon_state = "0-2" - }, /obj/machinery/power/apc{ areastring = "/area/maintenance/solars/port/aft"; dir = 4; name = "Port Quarter Solar APC"; pixel_x = 24 }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) -"bbj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/maintenance/port/aft) "bbk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -33421,19 +28553,11 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/maintenance/port/aft) -"bbl" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/area/maintenance/port/aft) +"bbl" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, @@ -33443,22 +28567,16 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port/aft) "bbm" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "bbn" = ( @@ -33477,9 +28595,13 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "bbo" = ( -/obj/structure/cable/white{ - icon_state = "1-4" +/obj/machinery/power/terminal{ + dir = 1 }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bbp" = ( @@ -33546,33 +28668,17 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bbx" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Security Checkpoint"; - req_access_txt = "63" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/security/glass{ + name = "Security Checkpoint"; + req_access_txt = "63" }, /turf/open/floor/plasteel, /area/security/checkpoint) @@ -33700,21 +28806,15 @@ /area/science/research) "bbI" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab"; - req_access_txt = "29" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/research/glass{ + name = "Robotics Lab"; + req_access_txt = "29" }, /turf/open/floor/plasteel, /area/science/robotics/lab) @@ -33746,16 +28846,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/science/robotics/lab) "bbM" = ( @@ -33787,12 +28877,6 @@ dir = 8; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bbP" = ( @@ -33825,15 +28909,15 @@ /turf/open/space/basic, /area/solars/starboard/fore) "bbR" = ( -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/structure/cable/white, +/obj/machinery/light/small, /obj/machinery/power/solar_control{ dir = 8; id = "aftport"; name = "Port Quarter Solar Control" }, +/obj/structure/cable{ + icon_state = "0-8" + }, /obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/maintenance/solars/port/aft) @@ -33874,41 +28958,32 @@ /turf/open/space/basic, /area/solars/starboard/fore) "bbX" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/emcloset/anchored, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bbY" = ( /obj/structure/lattice/catwalk, /turf/open/floor/plating/airless, /area/solars/starboard/fore) "bbZ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plasteel, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bca" = ( /obj/structure/sign/warning/vacuum{ pixel_x = 32; pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/landmark/xeno_spawn, -/obj/effect/turf_decal/delivery, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/caution, +/turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcb" = ( /obj/machinery/door/airlock/external{ @@ -33924,7 +28999,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcc" = ( /obj/effect/turf_decal/stripes/line, @@ -33936,16 +29011,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcd" = ( -/obj/item/retractor, -/obj/item/hemostat, -/obj/structure/table/reinforced, /obj/machinery/vending/wallmed{ name = "Emergency NanoMed"; pixel_x = -26; @@ -33955,16 +29026,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bce" = ( @@ -33987,41 +29050,15 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "bcf" = ( -/obj/machinery/computer/operating{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/computer/operating, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "bcg" = ( -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/suit/apron/surgical, -/obj/item/clothing/mask/surgical, -/obj/item/surgical_drapes, -/obj/structure/table/reinforced, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/limbgrower, /turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bch" = ( @@ -34038,16 +29075,9 @@ "bci" = ( /obj/structure/bed/roller, /obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bcj" = ( /obj/structure/table/reinforced, @@ -34065,17 +29095,13 @@ /area/medical/medbay/zone3) "bck" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay Desk"; - req_access_txt = "5" - }, /obj/structure/sign/warning/nosmoking/circle{ pixel_x = 32 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/medical/glass{ + name = "Medbay Desk"; + req_access_txt = "5" }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) @@ -34087,16 +29113,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bcm" = ( @@ -34122,16 +29138,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/checkpoint) "bcp" = ( @@ -34155,16 +29161,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bcr" = ( @@ -34238,6 +29234,7 @@ /area/science/robotics/lab) "bcA" = ( /obj/effect/turf_decal/stripes/line, +/obj/machinery/rnd/production/circuit_imprinter, /turf/open/floor/plasteel, /area/science/robotics/lab) "bcB" = ( @@ -34252,12 +29249,6 @@ }, /obj/effect/turf_decal/bot, /obj/machinery/aug_manipulator, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bcD" = ( @@ -34277,13 +29268,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/science/mixing) "bcF" = ( /obj/structure/sign/warning/securearea, @@ -34294,58 +29279,58 @@ pixel_x = 32; pixel_y = 32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ icon_state = "1-4" }, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, /area/maintenance/solars/starboard/fore) "bcH" = ( -/obj/machinery/light/small{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, +/obj/structure/closet/emcloset/anchored, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"bcI" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) -"bcI" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) "bcJ" = ( +/obj/structure/lattice, +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"bcK" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, /obj/structure/cable{ icon_state = "0-8" }, -/obj/effect/turf_decal/box, -/obj/machinery/power/tracker, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/starboard/fore) -"bcK" = ( -/obj/machinery/power/smes, -/obj/structure/cable/white{ - icon_state = "0-4" - }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcL" = ( +/obj/machinery/power/smes, /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/machinery/power/solar_control{ - id = "forestarboard"; - name = "Starboard Bow Solar Control" - }, -/obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcM" = ( @@ -34355,12 +29340,9 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/maintenance/solars/starboard/fore) "bcN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/structure/cable/white{ icon_state = "4-8" }, @@ -34368,12 +29350,13 @@ pixel_x = 32; pixel_y = -32 }, -/turf/open/floor/plating, -/area/maintenance/solars/starboard/fore) -"bcO" = ( +/obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/turf/open/floor/plasteel, +/area/maintenance/solars/starboard/fore) +"bcO" = ( /obj/structure/cable/white{ icon_state = "4-8" }, @@ -34381,6 +29364,9 @@ name = "Starboard Bow Solar Access"; req_access_txt = "10" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcP" = ( @@ -34390,6 +29376,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcQ" = ( @@ -34401,6 +29388,10 @@ /obj/structure/cable/white{ icon_state = "1-8" }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcS" = ( @@ -34429,11 +29420,6 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "bcU" = ( -/obj/item/circular_saw, -/obj/item/surgicaldrill{ - pixel_y = 5 - }, -/obj/structure/table/reinforced, /obj/structure/mirror{ pixel_x = -28 }, @@ -34441,30 +29427,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/suit/apron/surgical, +/obj/item/clothing/mask/surgical, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bcV" = ( /obj/effect/landmark/start/medical_doctor, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "bcW" = ( @@ -34484,9 +29454,6 @@ /turf/open/floor/plasteel, /area/medical/medbay/zone3) "bcX" = ( -/obj/item/scalpel, -/obj/item/cautery, -/obj/structure/table/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -34494,16 +29461,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/item/reagent_containers/glass/beaker/synthflesh, +/obj/structure/closet/crate/freezer/surplus_limbs, /turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bcY" = ( @@ -34514,10 +29473,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Medbay South"; - dir = 4 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, @@ -34526,23 +29481,20 @@ "bcZ" = ( /obj/structure/bed/roller, /obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/medical/medbay/zone3) "bda" = ( /obj/machinery/computer/med_data{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bdb" = ( /obj/structure/chair/office/light{ @@ -34632,16 +29584,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/checkpoint) "bdg" = ( @@ -34790,16 +29732,6 @@ icon_state = "0-4" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bdu" = ( @@ -34814,16 +29746,6 @@ icon_state = "1-8" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bdv" = ( @@ -34837,9 +29759,12 @@ network = list("ss13","engine") }, /obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/checker, /area/engineering/atmos) "bdw" = ( /obj/machinery/holopad, @@ -34863,12 +29788,6 @@ pixel_x = 32 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bdz" = ( @@ -34877,7 +29796,7 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "8;12" + req_one_access_txt = "7;12" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -34896,11 +29815,12 @@ /turf/open/floor/plating/airless, /area/solars/starboard/fore) "bdC" = ( -/obj/structure/cable, -/obj/machinery/power/terminal{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable/white{ + icon_state = "4-8" }, -/obj/effect/turf_decal/delivery, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bdD" = ( @@ -34930,7 +29850,7 @@ /area/command/heads_quarters/rd) "bdE" = ( /obj/structure/cable/white{ - icon_state = "0-4" + icon_state = "4-8" }, /obj/structure/cable/white{ icon_state = "0-8" @@ -34959,9 +29879,6 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "bdG" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, @@ -34969,6 +29886,10 @@ dir = 1; pixel_y = -22 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/solars/port/aft) "bdH" = ( @@ -35125,7 +30046,6 @@ /turf/open/floor/plating/asteroid, /area/command/heads_quarters/rd) "bdQ" = ( -/obj/structure/closet/secure_closet/medical2, /obj/machinery/airalarm{ dir = 4; pixel_x = -22 @@ -35137,16 +30057,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/closet/secure_closet/medical2, /turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bdR" = ( @@ -35178,32 +30089,16 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bdT" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Surgery Theatre"; - req_access_txt = "45" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/medical{ + name = "Surgery Theatre"; + req_access_txt = "45" }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) @@ -35220,7 +30115,6 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "bdV" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, @@ -35228,6 +30122,9 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone3) "bdW" = ( @@ -35260,11 +30157,9 @@ pixel_x = -26; pixel_y = -26 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bdY" = ( /obj/machinery/airalarm{ @@ -35336,16 +30231,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/checkpoint) "bee" = ( @@ -35413,22 +30298,20 @@ /area/science/robotics/mechbay) "bek" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/science/research) "bel" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/science/research) "bem" = ( /obj/structure/table, @@ -35441,12 +30324,6 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "ben" = ( @@ -35455,12 +30332,6 @@ icon_state = "1-2" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "beo" = ( @@ -35476,10 +30347,6 @@ }, /obj/machinery/light, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bep" = ( @@ -35516,12 +30383,16 @@ pixel_x = 28 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/item/healthanalyzer, +/obj/item/storage/firstaid/regular{ + empty = 1; + name = "First-Aid (empty)" }, +/obj/item/healthanalyzer, /turf/open/floor/plasteel/dark, /area/science/robotics/lab) "bes" = ( @@ -35539,11 +30410,9 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/science/mixing) "bev" = ( /obj/structure/table/plasmaglass, @@ -35633,11 +30502,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, /area/science/mixing) "beB" = ( /obj/structure/cable/white{ @@ -35783,24 +30650,16 @@ /area/science/robotics/mechbay) "beM" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/research{ name = "Research Division Access"; req_access_txt = "47" }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/science/research) "beN" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Research Division Access"; - req_access_txt = "47" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -35808,12 +30667,12 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/research{ + name = "Research Division Access"; + req_access_txt = "47" + }, +/turf/open/floor/plasteel/dark, /area/science/research) "beO" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, @@ -35821,10 +30680,6 @@ /area/science/robotics/lab) "beP" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Robotics Lab Maintenance"; - req_access_txt = "29" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -35832,9 +30687,9 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Robotics Lab Maintenance"; + req_access_txt = "29" }, /turf/open/floor/plating, /area/maintenance/starboard) @@ -35921,11 +30776,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, /area/science/mixing) "beW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -35970,11 +30823,9 @@ /obj/machinery/portable_atmospherics/scrubber, /obj/item/storage/firstaid/toxin, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/science/mixing) "bfc" = ( /obj/structure/cable/white{ @@ -36011,10 +30862,6 @@ name = "Security Checkpoint"; req_access_txt = "63" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/security/checkpoint) "bfg" = ( @@ -36070,7 +30917,7 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bfm" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, @@ -36087,7 +30934,7 @@ icon_state = "2-4" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "bfn" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -36156,13 +31003,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/science/mixing) "bft" = ( /obj/structure/closet/secure_closet/RD, @@ -36177,10 +31018,8 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, /obj/item/circuitboard/aicore, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel{ icon_state = "sepia" }, @@ -36219,6 +31058,9 @@ dir = 1; pixel_y = -28 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel{ icon_state = "sepia" }, @@ -36252,7 +31094,7 @@ /area/service/chapel/main) "bfB" = ( /obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/mixing) "bfC" = ( @@ -36278,16 +31120,6 @@ name = "Morgue APC"; pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/camera{ c_tag = "Morgue"; dir = 8; @@ -36304,10 +31136,6 @@ /obj/item/surgical_drapes, /obj/item/cautery, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/item/toy/figure/roboticist{ pixel_x = -4; pixel_y = 14 @@ -36324,20 +31152,13 @@ network = list("ss13","medbay"); pixel_x = 22 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/smartfridge/organ/preloaded{ + density = 0; + pixel_y = -31 }, /turf/open/floor/plasteel, /area/medical/medbay/zone3) "bfG" = ( -/obj/structure/closet/crate/freezer/blood, /obj/structure/extinguisher_cabinet{ pixel_y = -26 }, @@ -36346,16 +31167,13 @@ }, /obj/machinery/camera{ c_tag = "Medbay Recovery Room"; - dir = 8; + dir = 1; network = list("ss13","medbay") }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/machinery/vending/medical, +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/medical/medbay/zone3) "bfH" = ( /obj/effect/landmark/start/virologist, @@ -36400,16 +31218,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bfK" = ( @@ -36419,16 +31227,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bfL" = ( @@ -36442,16 +31240,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "bfM" = ( @@ -36505,18 +31293,14 @@ name = "Xenobiology Containment Door" }, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /obj/machinery/door/airlock/research{ name = "Xenobiology Lab"; req_access_txt = "47" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, /turf/open/floor/plasteel, /area/science/xenobiology) "bfR" = ( @@ -36525,10 +31309,6 @@ name = "Xenobiology Containment Door" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Xenobiology Lab"; - req_access_txt = "47" - }, /obj/structure/sign/departments/xenobio{ pixel_x = 32 }, @@ -36536,13 +31316,13 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/machinery/door/airlock/research{ + name = "Xenobiology Lab"; + req_access_txt = "47" + }, /turf/open/floor/plasteel, /area/science/xenobiology) "bfS" = ( @@ -36571,10 +31351,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bfU" = ( @@ -36589,16 +31365,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bfV" = ( @@ -36609,16 +31375,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bfX" = ( @@ -36700,38 +31456,13 @@ /obj/effect/turf_decal/stripes/end{ dir = 8 }, -/obj/machinery/camera{ - c_tag = "Xenobiology Central"; - dir = 4; - network = list("ss13","rd"); - pixel_y = -5 - }, /turf/open/floor/plasteel, /area/science/xenobiology) "bgd" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/beakers{ - pixel_x = 3; - pixel_y = 3 +/obj/structure/closet/l3closet/scientist, +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/obj/item/storage/box/syringes, -/obj/item/extinguisher/mini, -/obj/machinery/airalarm/unlocked{ - dir = 4; - pixel_x = -23 - }, -/obj/machinery/newscaster{ - pixel_y = -32 - }, -/obj/machinery/camera{ - c_tag = "Xenobiology Lab"; - dir = 4; - network = list("ss13","rd") - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, /area/science/xenobiology) "bge" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -36745,9 +31476,6 @@ codes_txt = "patrol;next_patrol=8.4-AftNW"; location = "8.3-AftSW" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -36760,29 +31488,19 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, /area/hallway/primary/aft) "bgg" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes, -/obj/item/storage/box/monkeycubes, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/machinery/camera{ - c_tag = "Xenobiology South"; - dir = 1; - network = list("ss13","rd") +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "bgh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -36796,6 +31514,12 @@ dir = 1; network = list("ss13","engine") }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "bgi" = ( @@ -36810,13 +31534,10 @@ network = list("ss13","engine") }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "bgj" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -36838,14 +31559,11 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "bgk" = ( -/obj/structure/cable/white{ - icon_state = "4-8" +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/machinery/light/small, -/obj/machinery/camera{ - c_tag = "Port Quarter Solar"; - dir = 1; - network = list("ss13","engine") +/obj/structure/cable{ + icon_state = "1-4" }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) @@ -36855,25 +31573,11 @@ pixel_x = 32 }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/primary/aft) -"bgm" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/area/hallway/primary/aft) +"bgm" = ( /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bgn" = ( @@ -36912,12 +31616,16 @@ pixel_y = 32 }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 9 + }, /area/science/xenobiology) "bgq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/science/xenobiology) "bgr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -36925,7 +31633,9 @@ icon_state = "1-2" }, /obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/science/xenobiology) "bgu" = ( /obj/effect/turf_decal/tile/neutral, @@ -36956,11 +31666,12 @@ /obj/structure/mirror{ pixel_x = 26 }, -/obj/structure/sink{ - dir = 4; - pixel_x = 12 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 + }, /turf/open/floor/plasteel/white, /area/service/chapel/main) "bgC" = ( @@ -37002,10 +31713,6 @@ c_tag = "Crematorium"; dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bgE" = ( @@ -37015,16 +31722,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bgF" = ( @@ -37124,28 +31821,20 @@ /area/hallway/secondary/entry) "bgR" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/airlock/public/glass{ name = "Arrivals Port" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgS" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Arrivals Port" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/public/glass{ + name = "Arrivals Port" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -37163,14 +31852,10 @@ /area/hallway/secondary/entry) "bgW" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/public/glass{ name = "Arrivals Port" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bgX" = ( @@ -37191,16 +31876,6 @@ /obj/machinery/light{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bgZ" = ( @@ -37223,16 +31898,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bhb" = ( @@ -37240,7 +31905,9 @@ icon_state = "4-8" }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/science/xenobiology) "bhc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -37275,7 +31942,6 @@ /obj/effect/turf_decal/tile/purple{ dir = 1 }, -/obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 }, @@ -37288,16 +31954,6 @@ /obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bhj" = ( @@ -37318,8 +31974,7 @@ "bhn" = ( /obj/machinery/light/floor, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 8; - icon_state = "yellowcornersiding" + dir = 8 }, /area/maintenance/starboard/aft) "bho" = ( @@ -37351,10 +32006,6 @@ /turf/closed/wall, /area/service/chapel/main) "bhr" = ( -/obj/machinery/door/airlock/grunge{ - name = "Crematorium"; - req_access_txt = "27" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -37362,15 +32013,9 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/grunge{ + name = "Crematorium"; + req_access_txt = "27" }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) @@ -37425,34 +32070,18 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bhy" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Chapel Hall" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/grunge{ + name = "Chapel Hall" }, /turf/open/floor/plasteel, /area/service/chapel/main) @@ -37461,9 +32090,8 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/airalarm{ + pixel_y = 23 }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -37487,12 +32115,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Arrivals Bay 1 North" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -37519,10 +32143,6 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bhE" = ( @@ -37539,10 +32159,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bhG" = ( @@ -37555,10 +32171,6 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bhH" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bhI" = ( @@ -37567,16 +32179,12 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bhJ" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bhK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/purple{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -37594,12 +32202,6 @@ pixel_x = 24 }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "bhM" = ( @@ -37609,16 +32211,6 @@ /obj/structure/disposaloutlet{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bhN" = ( @@ -37635,7 +32227,9 @@ dir = 8 }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/science/xenobiology) "bhP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -37653,31 +32247,17 @@ icon_state = "1-2" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bhS" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/area/engineering/atmos) "bhX" = ( /obj/machinery/pool/filter{ pixel_y = 16 @@ -37695,16 +32275,6 @@ c_tag = "Chaplain's Quarters" }, /obj/machinery/vending/wardrobe/chap_wardrobe, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bia" = ( @@ -37758,16 +32328,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "big" = ( @@ -37870,12 +32430,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -37887,10 +32441,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/machinery/camera{ - c_tag = "Arrivals Bay 1 North"; - dir = 1 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, @@ -37911,12 +32461,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -37944,12 +32488,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -37970,12 +32508,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -37998,7 +32530,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/purple{ dir = 4 }, /turf/open/floor/plasteel/white/corner{ @@ -38009,12 +32541,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -38030,19 +32556,9 @@ name = "arrivals camera" }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "biD" = ( -/obj/machinery/shower{ - dir = 8; - name = "emergency shower" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" @@ -38050,6 +32566,12 @@ /obj/effect/turf_decal/stripes/end{ dir = 4 }, +/obj/machinery/camera{ + c_tag = "Xenobiology Central"; + dir = 8; + network = list("ss13","rd"); + pixel_y = -5 + }, /turf/open/floor/plasteel, /area/science/xenobiology) "biF" = ( @@ -38072,18 +32594,12 @@ /turf/open/floor/plasteel/grimy, /area/service/chapel/main) "biH" = ( -/obj/machinery/door/airlock/grunge{ - name = "Chapel Quarters"; - req_access_txt = "27" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/grunge{ + name = "Chapel Quarters"; + req_access_txt = "27" }, /turf/open/floor/plasteel, /area/service/chapel/main) @@ -38110,35 +32626,19 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "biM" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Chapel Office"; - req_access_txt = "27" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/grunge{ + name = "Chapel Office"; + req_access_txt = "27" }, /turf/open/floor/plasteel, /area/service/chapel/main) @@ -38160,16 +32660,6 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "biP" = ( @@ -38249,23 +32739,11 @@ "biU" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "biV" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Arrivals Hallway 3"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "biW" = ( @@ -38286,7 +32764,9 @@ req_access_txt = "55" }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/science/xenobiology) "biY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -38357,16 +32837,6 @@ /obj/structure/sign/nanotrasen{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bjg" = ( @@ -38375,16 +32845,6 @@ dir = 1; pixel_y = -22 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "bjh" = ( @@ -38451,16 +32911,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "bjq" = ( @@ -38479,15 +32929,13 @@ /turf/open/floor/plasteel/white, /area/science/xenobiology) "bjr" = ( -/obj/machinery/holopad, /obj/structure/cable/white{ icon_state = "1-2" }, /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "bjs" = ( /obj/effect/turf_decal/tile/purple{ @@ -38514,52 +32962,28 @@ dir = 6 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/science/xenobiology) "bjv" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 4 + }, /obj/machinery/door/airlock/research/glass{ name = "Xenobiology Kill Room"; req_access_txt = "47" }, -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/telecomms, /area/science/xenobiology) "bjw" = ( /obj/machinery/atmospherics/pipe/manifold/general/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/science/xenobiology) "bjx" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/science/xenobiology) "bjy" = ( @@ -38609,51 +33033,38 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bjD" = ( -/obj/effect/turf_decal/tile/purple{ - dir = 1 - }, -/obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 8 }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bjE" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/scientist, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, /area/science/xenobiology) "bjF" = ( -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bjG" = ( -/obj/structure/closet/l3closet/scientist, /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/purple{ - dir = 8 - }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "bjH" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/effect/turf_decal/stripes/end{ + dir = 8 }, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -38709,67 +33120,33 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bjR" = ( -/obj/machinery/computer/camera_advanced/xenobio{ - dir = 1 - }, -/obj/machinery/light, -/obj/machinery/requests_console{ - department = "Xenobiology Lab"; - name = "Xenobiology RC"; - pixel_y = -32; - receive_ore_updates = 1 - }, +/obj/structure/chair/office/light, +/obj/effect/landmark/start/scientist, /obj/structure/cable/white{ - icon_state = "1-4" + icon_state = "1-2" }, -/turf/open/floor/circuit/green, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "bjS" = ( -/obj/structure/table/reinforced, -/obj/item/folder/white, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 }, -/obj/item/reagent_containers/glass/beaker/large, -/obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/dropper, -/obj/machinery/status_display{ - pixel_y = -32 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "bjT" = ( -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_y = 5 +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/science/xenobiology"; - dir = 4; - name = "Xenobiology Lab APC"; - pixel_x = 24 +/obj/effect/turf_decal/tile/purple{ + dir = 8 }, -/obj/machinery/light_switch{ - pixel_x = 24; - pixel_y = -24 - }, -/obj/item/radio/intercom{ - name = "Station Intercom"; - pixel_y = -24 - }, -/obj/structure/cable/white{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "bjU" = ( /obj/machinery/status_display{ @@ -38781,6 +33158,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway"; + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bjV" = ( @@ -38937,6 +33318,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/obj/machinery/camera{ + c_tag = "Arrivals Hallway 2"; + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bkX" = ( @@ -38954,12 +33339,12 @@ "blb" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/hallway/secondary/entry) "blc" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/hallway/secondary/entry) "blf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -38968,9 +33353,6 @@ /obj/machinery/camera{ c_tag = "Fore Primary Hallway 3" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "blg" = ( @@ -38980,10 +33362,6 @@ c_tag = "Port Primary Hallway"; dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "blh" = ( @@ -38995,7 +33373,6 @@ c_tag = "Starboard Primary Hallway 2"; dir = 8 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "bli" = ( @@ -39004,13 +33381,9 @@ c_tag = "Starboard Primary Hallway 2" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard/fore) "blj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -39058,13 +33431,9 @@ c_tag = "Starboard Primary Hallway" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "bln" = ( /obj/structure/cable/white{ @@ -39094,9 +33463,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "blp" = ( @@ -39118,82 +33484,27 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) "bls" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Security Checkpoint"; - dir = 1 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/hallway/primary/aft) +/turf/closed/wall, +/area/engineering/storage/tech) "blv" = ( +/turf/closed/wall/rust, +/area/engineering/storage/tech) +"blx" = ( +/obj/structure/sign/poster/contraband/random, +/turf/closed/wall, +/area/engineering/storage/tech) +"bly" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Arrivals Bay 1 North"; - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/hallway/secondary/entry) -"blx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Arrivals Hallway"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) -"bly" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/camera{ - c_tag = "Arrivals Hallway 2"; - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/turf/closed/wall/r_wall, +/area/command/heads_quarters/rd) "blA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/grunge{ name = "Mass Driver Room"; req_access_txt = "27" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "blC" = ( @@ -39221,20 +33532,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "blF" = ( -/obj/structure/fans/tiny, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/service/chapel/main) @@ -39247,12 +33547,6 @@ dir = 8 }, /obj/machinery/light/small, -/obj/machinery/button/massdriver{ - id = "chapelmassdoor"; - name = "mass driver blast door button"; - pixel_x = 24; - pixel_y = -8 - }, /obj/machinery/button/massdriver{ id = "chapelgun"; pixel_x = 24; @@ -39261,24 +33555,14 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) "blI" = ( +/obj/structure/fans/tiny, /obj/machinery/door/poddoor{ - id = "chapelmassdoor"; + id = "chapelgun"; name = "Chapel Launcher Door" }, -/obj/structure/fans/tiny, /turf/open/floor/plating, /area/service/chapel/main) "blJ" = ( @@ -39296,17 +33580,11 @@ /turf/open/floor/engine, /area/engineering/main) "blL" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Departure Lounge" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) @@ -39329,12 +33607,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Departure Lounge" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "blZ" = ( @@ -39356,12 +33628,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -39371,25 +33637,30 @@ }, /area/hallway/secondary/exit) "bmC" = ( -/obj/machinery/vending/snack/random, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/hallway/secondary/exit) "bmG" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/hallway/secondary/exit) +"bnS" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/hallway/secondary/exit) +/area/science/xenobiology) "boD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -39487,9 +33758,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bsA" = ( @@ -39506,20 +33774,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bsB" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Departure Lounge" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/public/glass{ + name = "Departure Lounge" }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) @@ -39542,7 +33804,7 @@ /obj/machinery/status_display{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -39565,7 +33827,7 @@ /obj/structure/sign/poster/official/random{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -39584,10 +33846,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bsO" = ( @@ -39609,16 +33867,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bsQ" = ( @@ -39645,16 +33893,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bsS" = ( @@ -39679,16 +33917,6 @@ codes_txt = "patrol;next_patrol=6.4-LeavingDepartures"; location = "6.3-DeparturesS" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bsV" = ( @@ -39699,7 +33927,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -39707,13 +33935,9 @@ "bsX" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/machinery/door/airlock/mining/glass{ name = "Cargo Office"; req_access_txt = "48;50" @@ -39840,16 +34064,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "buH" = ( @@ -39873,16 +34087,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "buJ" = ( @@ -39899,16 +34103,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "buL" = ( @@ -39916,10 +34110,10 @@ /turf/open/floor/circuit/green/telecomms, /area/tcommsat/server) "buN" = ( -/obj/machinery/announcement_system, /obj/machinery/status_display/ai{ pixel_x = 32 }, +/obj/machinery/ntnet_relay, /turf/open/floor/circuit/telecomms/mainframe, /area/tcommsat/server) "buO" = ( @@ -39948,35 +34142,14 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "buS" = ( -/obj/machinery/ntnet_relay, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark/telecomms, -/area/tcommsat/server) +/turf/closed/wall/r_wall/rust, +/area/science/mixing) "buW" = ( /turf/closed/wall/r_wall, /area/engineering/supermatter) @@ -40144,13 +34317,9 @@ icon_state = "1-2" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "bxy" = ( /obj/structure/cable/white{ @@ -40165,9 +34334,6 @@ "bxz" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "bxA" = ( @@ -40231,30 +34397,10 @@ dir = 4 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "bxH" = ( /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/engineering/atmos) "bxJ" = ( @@ -40262,10 +34408,6 @@ dir = 4; light_color = "#e8eaff" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /obj/machinery/computer/cryopod{ dir = 8; pixel_x = 26 @@ -40273,28 +34415,20 @@ /obj/machinery/cryopod{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/commons/dorms) "bxK" = ( /obj/structure/cable/white{ icon_state = "4-8" }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white/corner, /area/commons/dorms) "bxL" = ( /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "bxM" = ( @@ -40321,15 +34455,11 @@ "bxP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bxQ" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -40384,12 +34514,6 @@ dir = 4 }, /obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -40453,6 +34577,9 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -40468,6 +34595,10 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall, /area/command/gateway) +"bRW" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/science/xenobiology) "bVs" = ( /obj/structure/girder, /obj/effect/turf_decal/sand/plating, @@ -40503,11 +34634,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"cfq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/girder/reinforced, +/turf/open/floor/plating, +/area/space/nearstation) "cfz" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/stripes/line{ @@ -40525,13 +34660,13 @@ /turf/open/floor/plasteel, /area/science/mixing) "chJ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/turf_decal/bot, /obj/machinery/space_heater, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -40564,35 +34699,24 @@ pixel_y = 2 }, /obj/structure/table/glass, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/hydroponics) "cpn" = ( -/turf/closed/wall, -/area/space/station_ruins) +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/command/heads_quarters/ce) "csX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ name = "Hydroponics"; req_access_txt = "35" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/service/hydroponics) "cBf" = ( @@ -40621,32 +34745,66 @@ }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) +"cCv" = ( +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Creature Pen"; + req_access_txt = "47" + }, +/obj/machinery/door/poddoor/preopen{ + id = "xeno5"; + name = "Creature Cell #5" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/xenobiology) "cGA" = ( /obj/machinery/pool/controller, /turf/open/floor/wood, /area/maintenance/starboard/aft) +"cLO" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) "cRz" = ( /obj/machinery/button/door{ id = "supplybridge"; name = "Shuttle Bay Space Bridge Control"; pixel_y = 27 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Bridge Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Bridge Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/starboard) "cUd" = ( @@ -40672,6 +34830,10 @@ name = "Atmospherics Lockdown Blast door" }, /obj/effect/turf_decal/delivery, +/obj/machinery/door/window/eastright{ + dir = 2; + req_access_txt = "24" + }, /turf/open/floor/plasteel, /area/engineering/atmos) "cXu" = ( @@ -40679,9 +34841,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "dai" = ( @@ -40704,25 +34863,19 @@ /turf/open/floor/plating, /area/science/mixing) "dfP" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "dgV" = ( @@ -40741,7 +34894,7 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "8;12" + req_one_access_txt = "7;12" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, @@ -40761,16 +34914,23 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "dvB" = ( -/obj/structure/sink/puddle, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand, +/obj/structure/well_foundation, +/turf/open/floor/plating, /area/maintenance/port/aft) +"dxC" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/warning/deathsposal{ + pixel_x = 30 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/xenobiology) "dFV" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -40780,21 +34940,14 @@ name = "Oxygen to Airmix" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "dMl" = ( /obj/structure/sign/warning/fire, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 4 }, /turf/closed/wall/r_wall, @@ -40818,22 +34971,11 @@ dir = 4 }, /obj/machinery/vr_sleeper, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "dSq" = ( /turf/open/floor/plasteel/yellowsiding{ - dir = 4; - icon_state = "yellowsiding" + dir = 4 }, /area/maintenance/starboard/aft) "dXv" = ( @@ -40857,11 +34999,18 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"dZL" = ( +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "eaf" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/structure/cable{ @@ -40872,9 +35021,15 @@ /area/engineering/atmos) "eew" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "ekG" = ( @@ -40905,17 +35060,10 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "ewT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -40945,16 +35093,6 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) "eyu" = ( @@ -40999,18 +35137,27 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) +"eDk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"eDE" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space/station_ruins) +"eIk" = ( +/obj/structure/bookcase/random/fiction, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, +/area/service/library) "eOg" = ( /obj/structure/closet/crate{ icon_state = "crateopen" @@ -41040,10 +35187,6 @@ "eUz" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "eWo" = ( @@ -41066,13 +35209,13 @@ name = "Incinerator Exterior Airlock"; req_access_txt = "12" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "eZd" = ( @@ -41087,7 +35230,6 @@ /turf/open/floor/plasteel, /area/science/mixing) "fbH" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, /obj/structure/fireaxecabinet{ pixel_x = -30 @@ -41095,6 +35237,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -41126,9 +35269,6 @@ /obj/structure/cable/white{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "fgG" = ( @@ -41140,6 +35280,13 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, /area/asteroid/nearstation) +"fji" = ( +/obj/structure/disposaloutlet, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating, +/area/space/nearstation) "fjs" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -41149,17 +35296,10 @@ c_tag = "Atmospherics Central"; dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "fjN" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -41168,16 +35308,6 @@ /turf/open/floor/plasteel, /area/science/mixing) "fkE" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -41194,7 +35324,7 @@ /obj/structure/window/reinforced/spawner/west, /obj/item/flashlight/lamp/green, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/carpet/green/airless, +/turf/open/floor/carpet/green, /area/service/lawoffice) "fnp" = ( /obj/machinery/air_sensor/atmos/nitrous_tank, @@ -41231,14 +35361,14 @@ /turf/open/space/basic, /area/space) "fsJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume{ frequency = 1449; id = "incinerator_airlock_pump" }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "fuR" = ( @@ -41285,6 +35415,15 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plasteel, /area/engineering/atmos) +"fHF" = ( +/obj/structure/table/wood, +/obj/item/folder, +/obj/item/pen, +/obj/structure/sign/painting{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/dark, +/area/service/library) "fIN" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 10 @@ -41312,19 +35451,14 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "fNN" = ( /obj/machinery/hydroponics/soil, /obj/item/seeds/tea, /obj/machinery/light/small, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand, +/turf/open/floor/plating, /area/maintenance/port/aft) "fRe" = ( /turf/open/floor/plating/airless{ @@ -41333,7 +35467,7 @@ /area/asteroid/nearstation) "fTp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall/rust, +/turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) "fWh" = ( /turf/open/floor/wood{ @@ -41381,27 +35515,51 @@ /area/maintenance/disposal/incinerator) "geZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) +"gfr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall, +/area/science/mixing) "ggq" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/command/bridge) "ghr" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/maintenance/port/aft) +"gia" = ( +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/machinery/power/apc{ + areastring = "/area/science/xenobiology"; + dir = 4; + name = "Xenobiology Lab APC"; + pixel_x = 24 + }, +/obj/machinery/light_switch{ + pixel_x = 24; + pixel_y = -24 + }, +/obj/item/radio/intercom{ + name = "Station Intercom"; + pixel_y = -24 + }, +/obj/structure/cable/white{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "gii" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -41410,18 +35568,22 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"gkP" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) "glC" = ( /turf/closed/wall/r_wall, /area/maintenance/starboard/aft) @@ -41429,7 +35591,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/turf/closed/wall/r_wall, +/obj/structure/sign/warning/radiation{ + pixel_x = -32 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -25 + }, +/turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) "guM" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, @@ -41437,17 +35606,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "gyV" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -41456,11 +35615,20 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"gBp" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) +"gBW" = ( +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/science/xenobiology) "gGq" = ( /obj/machinery/mass_driver{ dir = 4; @@ -41469,19 +35637,13 @@ /turf/open/floor/plating, /area/science/mixing) "gIT" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, /turf/open/floor/plasteel, /area/maintenance/port/aft) "gLD" = ( @@ -41527,16 +35689,6 @@ /area/engineering/atmos) "gPY" = ( /obj/machinery/vr_sleeper, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/bar/atrium) "gRe" = ( @@ -41547,71 +35699,65 @@ /area/command/gateway) "gSu" = ( /turf/open/floor/plasteel/yellowsiding{ - dir = 8; - icon_state = "yellowsiding" + dir = 8 }, /area/maintenance/starboard/aft) "gSv" = ( -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, /area/engineering/atmos) "gVX" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "gWt" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/light/broken{ - dir = 1; - icon_state = "tube-broken" + dir = 1 }, /turf/open/floor/carpet/green/airless, /area/maintenance/starboard/aft) +"gYv" = ( +/turf/open/floor/plasteel, +/area/commons/dorms) "gZk" = ( /obj/machinery/atmospherics/pipe/simple/dark/visible{ dir = 10 }, /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation) +"heH" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/service/bar/atrium) "heQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=8.3-AftSW"; location = "8.2-AftSE" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"hfm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall/rust, +/area/science/xenobiology) "hhM" = ( /turf/closed/mineral/random/labormineral, /area/science/test_area) @@ -41664,6 +35810,21 @@ }, /turf/closed/wall/r_wall/rust, /area/engineering/atmos) +"huj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/service/bar/atrium) +"hvC" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) "hyX" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 @@ -41682,6 +35843,7 @@ /obj/effect/turf_decal/tile/purple{ dir = 4 }, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel, /area/science/mixing) "hDi" = ( @@ -41717,14 +35879,20 @@ dir = 4 }, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating, /area/maintenance/port/aft) "hIF" = ( -/turf/closed/wall, -/area/space) +/obj/structure/sign/warning/vacuum/external{ + pixel_y = -32 + }, +/obj/structure/closet/emcloset/anchored, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engineering/atmos) "hNO" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 5 @@ -41751,12 +35919,6 @@ /obj/structure/cable/white{ icon_state = "1-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -41773,6 +35935,9 @@ /obj/structure/sign/warning/vacuum, /turf/closed/wall, /area/cargo/storage) +"hRi" = ( +/turf/open/floor/plasteel, +/area/service/bar/atrium) "hSE" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -41781,8 +35946,7 @@ dir = 4 }, /obj/effect/turf_decal/trimline/green/line{ - dir = 1; - icon_state = "trimline" + dir = 1 }, /turf/open/floor/plating{ icon_state = "panelscorched" @@ -41794,10 +35958,7 @@ name = "Robotics Lab"; req_access_txt = "29" }, -/obj/machinery/door/airlock/research/glass{ - name = "Robotics Lab"; - req_access_txt = "29" - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/science/robotics/lab) "hUG" = ( @@ -41857,17 +36018,10 @@ }, /obj/machinery/light, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "iey" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -41876,12 +36030,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -41903,15 +36051,16 @@ /obj/machinery/air_sensor/atmos/carbon_tank, /turf/open/floor/engine/co2, /area/engineering/atmos) +"irp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall/rust, +/area/science/mixing) "isT" = ( /turf/open/floor/wood{ icon_state = "wood-broken2" }, /area/maintenance/starboard/aft) "ixk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 5 }, @@ -41963,16 +36112,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "iOL" = ( @@ -41982,6 +36121,10 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"iQs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark/corner, +/area/service/hydroponics) "iSq" = ( /turf/open/floor/plating/asteroid/airless, /area/maintenance/starboard/aft) @@ -42001,6 +36144,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/button/door{ + id = "stationawaygate"; + name = "Gateway Access Shutter Control"; + pixel_x = -1; + pixel_y = -24; + req_access_txt = "31" + }, /turf/open/floor/plasteel, /area/command/gateway) "iUO" = ( @@ -42009,8 +36159,7 @@ /area/science/mixing) "iVs" = ( /obj/machinery/computer/gateway_control{ - dir = 4; - icon_state = "computer" + dir = 4 }, /obj/effect/turf_decal/delivery, /obj/machinery/camera{ @@ -42024,10 +36173,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "iVy" = ( @@ -42046,7 +36191,7 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, -/turf/open/floor/carpet/green/airless, +/turf/open/floor/carpet/green, /area/service/lawoffice) "iZQ" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/carbon_input, @@ -42070,9 +36215,6 @@ codes_txt = "patrol;next_patrol=3.1-AtriumNW"; location = "2.2-BridgeWest" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -42100,12 +36242,13 @@ req_access_txt = "55" }, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/science/xenobiology) "jeI" = ( /turf/open/floor/plasteel/yellowsiding{ - dir = 1; - icon_state = "yellowsiding" + dir = 1 }, /area/maintenance/starboard/aft) "jkc" = ( @@ -42121,6 +36264,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/engineering/atmos) +"jkQ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) "jlZ" = ( /obj/structure/closet/crate, /obj/item/stack/ore/silver, @@ -42158,31 +36310,33 @@ dir = 1 }, /area/engineering/atmos) +"jpG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/space/nearstation) "jqM" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "jrd" = ( -/obj/machinery/pool/drain, -/turf/open/pool, -/area/maintenance/starboard/aft) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "jsD" = ( -/obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior, /turf/open/floor/engine, /area/science/mixing) "jtZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/plasteel, @@ -42227,6 +36381,15 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"jzq" = ( +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/engineering/atmos) "jBh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -42251,29 +36414,18 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/purple, -/obj/effect/turf_decal/tile/purple{ - dir = 4 - }, /turf/open/floor/plasteel/white, /area/science/xenobiology) "jCi" = ( /obj/machinery/light, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 5 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "jDd" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -42308,6 +36460,15 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plating, /area/science/mixing) +"jJn" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/cryopod{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/commons/dorms) "jLF" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -42416,25 +36577,31 @@ /area/engineering/atmos) "kiw" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/power/terminal, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, /obj/effect/turf_decal/stripes/line{ - dir = 8 + dir = 10 }, /turf/open/floor/plasteel, /area/engineering/atmos) -"koL" = ( -/obj/effect/turf_decal/tile/neutral{ +"koJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/bed{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/airalarm{ + pixel_y = 22 }, +/turf/open/floor/plasteel/freezer, +/area/medical/virology) +"koL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -42453,14 +36620,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/mixing) "krX" = ( /obj/machinery/light/floor, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 4; - icon_state = "yellowcornersiding" + dir = 4 }, /area/maintenance/starboard/aft) "kwF" = ( @@ -42473,17 +36638,10 @@ }, /obj/machinery/light, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "kyS" = ( /obj/structure/chair/stool/bar, @@ -42504,31 +36662,25 @@ /turf/open/floor/plasteel, /area/science/mixing) "kCU" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/meter/atmos, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engineering/atmos) +"kFf" = ( +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel, +/area/science/mixing) "kHA" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, /obj/machinery/computer/atmos_control/tank/carbon_tank, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "kIL" = ( @@ -42587,12 +36739,27 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/engineering/atmos) "kUu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/maintenance/starboard/aft) +"kWQ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plasteel, +/area/science/mixing) +"kYh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/science/mixing) "lcW" = ( /turf/open/floor/wood, /area/maintenance/starboard/aft) @@ -42654,27 +36821,49 @@ /obj/structure/flora/ausbushes/ywflowers, /turf/open/floor/grass, /area/hallway/secondary/entry) +"lvb" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/port/aft) "lvw" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, /obj/machinery/meter/atmos, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, /area/engineering/atmos) +"lwu" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/exit) "lxq" = ( /obj/structure/cable/white{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"lxu" = ( +/obj/structure/bookcase/random/religion, +/turf/open/floor/plasteel/dark/side{ + dir = 10 + }, +/area/service/library) "lyp" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/tile/blue, @@ -42714,7 +36903,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "lFi" = ( @@ -42753,14 +36941,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) +"lSQ" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/maintenance/port/aft) "lTY" = ( /obj/structure/window/reinforced{ dir = 4 @@ -42776,18 +36964,11 @@ "lXk" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "lZR" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -42870,6 +37051,12 @@ }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) +"mrI" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall/r_wall/rust, +/area/science/xenobiology) "msl" = ( /turf/closed/wall/rust, /area/command/gateway) @@ -42879,12 +37066,12 @@ /area/science/mixing) "msJ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "mvB" = ( @@ -42907,22 +37094,19 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/port/fore) "mJP" = ( /obj/machinery/igniter{ id = "Incinerator" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/air_sensor/atmos/incinerator_tank{ pixel_x = -32; pixel_y = 32 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "mQi" = ( @@ -42945,7 +37129,7 @@ "mTT" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; - name = "Port to Fuel Pipe" + name = "Port to Incinerator" }, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -42957,9 +37141,6 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "mZm" = ( @@ -42992,9 +37173,12 @@ /turf/open/floor/plasteel, /area/maintenance/starboard) "ndg" = ( -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"nfH" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/service/bar/atrium) "nfS" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/plating, @@ -43029,16 +37213,27 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/machinery/airalarm{ + dir = 4; + name = "Inceinerator air alarm"; + pixel_x = 10 + }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) "nio" = ( /obj/structure/pool/ladder{ dir = 1; - icon_state = "ladder"; pixel_y = -24 }, /turf/open/pool, /area/maintenance/starboard/aft) +"nmv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/service/bar/atrium) "nqr" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -43085,6 +37280,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/effect/turf_decal/caution, /turf/open/floor/plating, /area/engineering/atmos) "nIf" = ( @@ -43092,25 +37288,19 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "nKi" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/starboard/aft) "nMh" = ( @@ -43126,12 +37316,14 @@ network = list("ss13","rd") }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/science/mixing) +"nPS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port/aft) "nTg" = ( /obj/item/assembly/timer{ pixel_x = 5; @@ -43149,14 +37341,19 @@ "nUk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/power/smes, +/obj/structure/cable{ + icon_state = "0-4" + }, /turf/open/floor/plasteel/dark/corner, -/area/engineering/atmos) +/area/maintenance/disposal/incinerator) +"nXb" = ( +/obj/machinery/pool/drain, +/turf/open/pool, +/area/maintenance/starboard/aft) "oaV" = ( /obj/structure/grille, /obj/machinery/meter, @@ -43196,11 +37393,11 @@ /turf/closed/wall, /area/asteroid/nearstation) "ooX" = ( -/obj/machinery/smartfridge/organ/preloaded{ - pixel_y = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 }, -/turf/closed/wall, -/area/medical/medbay/zone3) +/turf/closed/wall/r_wall, +/area/science/mixing) "oql" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plasteel, @@ -43211,18 +37408,11 @@ icon_state = "1-8" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/closet/radiation, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "orV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -43236,20 +37426,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/machinery/meter/atmos, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "oxb" = ( -/obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior, /turf/open/floor/engine, /area/science/mixing) @@ -43259,13 +37438,13 @@ dir = 4; luminosity = 2 }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ icon_state = "0-8" }, -/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "oys" = ( @@ -43285,18 +37464,11 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/closet/radiation, +/obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/closet/radiation, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "oGc" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -43307,8 +37479,7 @@ "oIA" = ( /obj/machinery/light/floor, /turf/open/floor/plasteel/yellowsiding/corner{ - dir = 1; - icon_state = "yellowcornersiding" + dir = 1 }, /area/maintenance/starboard/aft) "oIG" = ( @@ -43327,24 +37498,6 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/plasteel/white, /area/science/mixing) -"oKz" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/command/bridge) "oOk" = ( /turf/open/floor/engine/plasma, /area/engineering/atmos) @@ -43358,7 +37511,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "oXj" = ( @@ -43367,7 +37519,6 @@ }, /obj/machinery/door/window/westright, /obj/effect/decal/cleanable/egg_smudge, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) "oXz" = ( @@ -43395,16 +37546,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) "pcl" = ( @@ -43425,18 +37566,42 @@ }, /turf/open/floor/plasteel/dark, /area/command/gateway) +"pdQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, +/area/maintenance/port/aft) "pdX" = ( /obj/machinery/portable_atmospherics/canister, /obj/item/radio/intercom{ pixel_y = 25 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/science/mixing) +"pgH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall/r_wall, +/area/science/mixing) +"phb" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 5 + }, +/area/command/bridge) "pix" = ( /turf/open/floor/wood{ icon_state = "wood-broken7" @@ -43475,6 +37640,10 @@ pixel_y = 6; req_access_txt = "55" }, +/obj/machinery/shower{ + dir = 8; + name = "emergency shower" + }, /turf/open/floor/plasteel, /area/science/xenobiology) "pmx" = ( @@ -43511,34 +37680,24 @@ /obj/structure/sign/warning/vacuum{ pixel_y = -32 }, -/obj/structure/cable{ +/obj/structure/cable/yellow{ icon_state = "0-4" }, /turf/open/floor/engine/vacuum, /area/maintenance/disposal/incinerator) "psq" = ( -/obj/structure/sign/poster/random{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/camera{ + c_tag = "Gravity Generator Room"; + network = list("ss13","engine") }, /turf/open/floor/plasteel/dark, -/area/science/xenobiology) +/area/engineering/gravity_generator) "puc" = ( /obj/structure/bed, /turf/open/floor/wood, /area/maintenance/starboard/aft) "pvX" = ( /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 4 }, @@ -43555,7 +37714,13 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/checker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, +/turf/open/floor/plasteel/dark/corner{ + dir = 1 + }, /area/engineering/atmos) "pAN" = ( /obj/structure/table/reinforced, @@ -43578,9 +37743,6 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, @@ -43604,7 +37766,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/mixing) "pLb" = ( @@ -43638,7 +37799,6 @@ /obj/structure/sign/poster/official/no_erp{ pixel_x = 32 }, -/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) "pMQ" = ( @@ -43646,7 +37806,8 @@ icon_state = "1-4" }, /obj/item/reagent_containers/glass/bottle/nutrient/rh, -/turf/open/floor/plating/asteroid/airless, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/aft) "pNE" = ( /obj/structure/grille, @@ -43687,21 +37848,15 @@ /area/hallway/secondary/entry) "qcP" = ( /obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Toxins Launch Room Access"; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room Access"; + req_access_txt = "7" }, /turf/open/floor/plasteel, /area/science/mixing) @@ -43727,23 +37882,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "qdY" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, -/obj/item/broken_bottle, -/obj/item/pickaxe, -/turf/open/floor/plating, -/area/engineering/atmos) +/turf/open/floor/plasteel, +/area/engineering/gravity_generator) "qeO" = ( +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ name = "Gateway"; req_access_txt = "62" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/command/gateway) "qgg" = ( @@ -43754,7 +37900,8 @@ /obj/structure/cable/white{ icon_state = "0-2" }, -/turf/open/floor/plating/asteroid/airless, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/aft) "qgC" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ @@ -43786,13 +37933,8 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "qpG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/engineering/atmos) +/turf/open/floor/plasteel/dark, +/area/engineering/gravity_generator) "qsc" = ( /obj/machinery/air_sensor/atmos/air_tank, /turf/open/floor/engine/air, @@ -43841,16 +37983,6 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "qHx" = ( @@ -43867,6 +37999,12 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"qKS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/service/bar/atrium) "qMr" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -43875,8 +38013,21 @@ dir = 1 }, /obj/machinery/meter, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/engineering/atmos) +"qOl" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/blue, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/zone3) "qRz" = ( /obj/machinery/newscaster{ pixel_x = 32 @@ -43884,13 +38035,18 @@ /obj/machinery/photocopier, /turf/open/floor/wood, /area/service/lawoffice) -"qTa" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +"qSs" = ( +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, +/area/command/bridge) +"qTa" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "qUQ" = ( @@ -43945,10 +38101,6 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "rmZ" = ( @@ -43971,33 +38123,17 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "rCw" = ( -/obj/machinery/door/window/brigdoor{ - dir = 4; - name = "Creature Pen"; - req_access_txt = "47" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xeno4"; - name = "Creature Cell #4" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 1 }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "rEx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ @@ -44060,6 +38196,7 @@ /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/weather, /obj/effect/turf_decal/weather, +/obj/machinery/space_heater, /turf/open/floor/plasteel/dark, /area/maintenance/starboard/aft) "sdX" = ( @@ -44083,6 +38220,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/command/gateway) +"snF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/science/xenobiology) "soC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -44090,9 +38233,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "spw" = ( @@ -44110,16 +38250,6 @@ name = "CO2 to Pure" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "srR" = ( @@ -44152,12 +38282,6 @@ /turf/closed/wall/r_wall/rust, /area/command/bridge) "swy" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "swz" = ( @@ -44169,19 +38293,6 @@ "swG" = ( /turf/closed/wall/rust, /area/security/detectives_office) -"swJ" = ( -/obj/structure/cable/white{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/command/bridge) "swK" = ( /obj/structure/cable/white{ icon_state = "4-8" @@ -44189,12 +38300,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "swL" = ( @@ -44232,7 +38337,7 @@ name = "Lawyer RC"; pixel_y = -30 }, -/turf/open/floor/carpet/green/airless, +/turf/open/floor/carpet/green, /area/service/lawoffice) "syT" = ( /turf/closed/wall/r_wall/rust, @@ -44263,13 +38368,10 @@ /turf/closed/wall/rust, /area/service/theater) "sBx" = ( -/obj/effect/landmark/xeno_spawn, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/effect/turf_decal/caution, /turf/open/floor/plating, /area/maintenance/starboard) "sBy" = ( @@ -44289,7 +38391,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/maintenance/starboard) "sCr" = ( /obj/structure/cable/white{ @@ -44362,26 +38464,19 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "sEK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable/white{ - icon_state = "4-8" - }, /turf/open/floor/plating, /area/maintenance/starboard) "sEL" = ( @@ -44399,22 +38494,8 @@ name = "Technology Storage"; req_access_txt = "23" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sEQ" = ( /obj/structure/rack, /obj/item/radio, @@ -44439,38 +38520,25 @@ pixel_x = -3; pixel_y = -3 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFo" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFp" = ( /obj/effect/turf_decal/bot{ dir = 1 }, /obj/structure/closet/crate/solarpanel_small, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/light/small{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 5 }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFq" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ @@ -44482,14 +38550,8 @@ /obj/item/aicard, /obj/item/analyzer, /obj/item/assembly/flash/handheld, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFs" = ( /obj/structure/grille, /obj/structure/window/reinforced/fulltile, @@ -44530,33 +38592,20 @@ pixel_x = -4; pixel_y = -4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFS" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFU" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ @@ -44568,14 +38617,8 @@ /obj/item/electronics/apc, /obj/item/electronics/airlock, /obj/item/stock_parts/cell/high, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sFX" = ( /obj/machinery/light/small{ dir = 8 @@ -44597,27 +38640,13 @@ /area/hallway/secondary/exit) "sGy" = ( /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/airlock/engineering{ name = "Technology Storage"; req_access_txt = "23" }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, -/area/maintenance/starboard) +/area/engineering/storage/tech) "sGA" = ( /obj/structure/cable/white{ icon_state = "2-4" @@ -44712,16 +38741,12 @@ "sHz" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/starboard) "sHB" = ( -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner{ @@ -44735,10 +38760,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "sHV" = ( @@ -44772,10 +38793,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "sIe" = ( @@ -44801,7 +38818,7 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -44820,7 +38837,7 @@ c_tag = "Departures Hallway"; dir = 1 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/white/corner, @@ -44832,12 +38849,6 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -44848,10 +38859,10 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/brown{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "sIB" = ( @@ -44888,13 +38899,11 @@ /turf/closed/wall/rust, /area/maintenance/starboard) "sIP" = ( -/obj/machinery/vending/cola/random, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/machinery/vending/cola/random, +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/hallway/secondary/exit) "sIR" = ( /obj/structure/table, @@ -44949,9 +38958,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "sJc" = ( @@ -44966,22 +38972,16 @@ name = "Shuttle Bay Space Bridge Control"; pixel_y = 27 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Bridge Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Bridge Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/starboard) "sJe" = ( @@ -45003,22 +39003,16 @@ /turf/open/floor/plating, /area/maintenance/starboard) "sJj" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch"; + req_access_txt = "12" + }, /turf/open/floor/plating, /area/maintenance/starboard) "sJk" = ( @@ -45029,7 +39023,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/brown{ dir = 8 }, /turf/open/floor/plasteel/cafeteria, @@ -45041,13 +39035,9 @@ /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 6 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "sJq" = ( /obj/structure/sign/directions/engineering{ @@ -45064,11 +39054,9 @@ "sJA" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/central) "sJD" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -45083,24 +39071,12 @@ "sJJ" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/hallway/primary/port/aft) "sJK" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/hallway/primary/port/aft) "sJL" = ( /turf/closed/wall/r_wall, @@ -45112,20 +39088,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "sJP" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/tcommsat/server) "sJS" = ( @@ -45183,32 +39151,12 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "sKn" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark/telecomms, /area/tcommsat/server) "sKp" = ( @@ -45247,7 +39195,6 @@ /turf/closed/wall/r_wall/rust, /area/ai_monitored/turret_protected/ai) "sLx" = ( -/obj/structure/table, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line, /obj/machinery/camera{ @@ -45256,16 +39203,10 @@ network = list("rd") }, /obj/machinery/cell_charger, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLy" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, /obj/structure/cable{ icon_state = "0-4" }, @@ -45273,21 +39214,20 @@ /obj/machinery/light{ dir = 1 }, +/obj/machinery/power/smes{ + charge = 5e+006 + }, /turf/open/floor/circuit/green, /area/ai_monitored/turret_protected/ai) "sLz" = ( /obj/item/paper_bin, /obj/item/pen, -/obj/structure/table, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line, /obj/structure/cable{ icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLA" = ( @@ -45349,8 +39289,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/ai_monitored/turret_protected/ai) "sLL" = ( /obj/effect/spawner/structure/window/reinforced, @@ -45367,10 +39306,9 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLN" = ( /obj/effect/turf_decal/stripes/line{ @@ -45385,11 +39323,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLP" = ( /obj/machinery/turretid{ @@ -45414,16 +39350,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLQ" = ( @@ -45460,16 +39386,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLS" = ( @@ -45479,13 +39395,9 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLT" = ( /obj/machinery/firealarm{ @@ -45545,11 +39457,9 @@ dir = 8 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sLZ" = ( /obj/effect/turf_decal/stripes/line{ @@ -45559,13 +39469,9 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/side{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMa" = ( /obj/effect/turf_decal/stripes/line, @@ -45581,10 +39487,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMc" = ( /obj/machinery/airalarm{ @@ -45610,12 +39515,6 @@ /obj/machinery/light{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMe" = ( @@ -45638,10 +39537,9 @@ icon_state = "1-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 1 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMg" = ( /obj/effect/turf_decal/stripes/line, @@ -45663,16 +39561,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMm" = ( @@ -45700,43 +39588,25 @@ /obj/item/crowbar, /obj/item/wrench, /obj/item/mmi, -/obj/structure/table, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/table, +/turf/open/floor/plasteel/dark/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plasteel/dark/side{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMx" = ( /obj/item/folder/blue, /obj/item/assembly/flash/handheld, /obj/structure/table, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/ai) "sMD" = ( /turf/closed/wall, @@ -45745,19 +39615,14 @@ /turf/closed/wall/rust, /area/ai_monitored/turret_protected/aisat_interior) "sMG" = ( -/obj/machinery/teleport/hub, /obj/machinery/airalarm{ pixel_y = 23 }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/teleport/hub, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sMH" = ( -/obj/machinery/teleport/station, /obj/machinery/light{ dir = 1 }, @@ -45765,19 +39630,12 @@ pixel_y = 32 }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/teleport/station, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sMI" = ( -/obj/machinery/computer/teleporter, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/computer/teleporter, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sMK" = ( @@ -45787,10 +39645,6 @@ "sML" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/door/airlock/highsecurity{ - name = "MiniSat Chamber"; - req_access_txt = "16" - }, /obj/machinery/door/poddoor/shutters/preopen{ id = "aicoredoor"; name = "AI Core Access" @@ -45811,15 +39665,9 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/highsecurity{ + name = "MiniSat Chamber"; + req_access_txt = "16" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) @@ -45874,12 +39722,6 @@ dir = 1 }, /obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sMU" = ( @@ -45897,29 +39739,14 @@ network = list("minisat"); start_active = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/ai_monitored/turret_protected/aisat_interior) "sMW" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/ai_monitored/turret_protected/aisat_interior) "sMX" = ( /obj/effect/turf_decal/stripes/line{ @@ -45936,14 +39763,9 @@ pixel_x = 26; pixel_y = 26 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/corner{ + dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sMY" = ( /obj/structure/sign/warning/securearea, @@ -45957,16 +39779,7 @@ dir = 9 }, /obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/ai_monitored/turret_protected/aisat_interior) "sNa" = ( /obj/effect/turf_decal/bot, @@ -45981,13 +39794,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/side, /area/ai_monitored/turret_protected/aisat_interior) "sNb" = ( /obj/effect/turf_decal/stripes/line{ @@ -45997,14 +39804,9 @@ dir = 4 }, /obj/item/beacon, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/corner{ + dir = 8 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNc" = ( /obj/structure/sign/warning/securearea, @@ -46071,23 +39873,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNk" = ( -/obj/machinery/door/airlock/external{ - name = "MiniSat External Access"; - req_access_txt = "65" - }, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46095,15 +39883,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access"; + req_access_txt = "65" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) @@ -46114,13 +39896,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNm" = ( /obj/effect/turf_decal/bot, @@ -46142,32 +39920,20 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNo" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Antechamber"; - req_one_access_txt = "32;19" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber"; + req_one_access_txt = "32;19" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) @@ -46182,13 +39948,9 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNq" = ( /obj/machinery/ai_slipper{ @@ -46205,32 +39967,20 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNs" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Antechamber"; - req_one_access_txt = "32;19" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Antechamber"; + req_one_access_txt = "32;19" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) @@ -46245,13 +39995,9 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNu" = ( /obj/effect/turf_decal/bot, @@ -46259,16 +40005,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNv" = ( @@ -46285,35 +40021,23 @@ /obj/machinery/newscaster{ pixel_x = 32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/side{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNx" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall, /area/ai_monitored/turret_protected/aisat_interior) "sNy" = ( -/obj/machinery/door/airlock/external{ - name = "MiniSat External Access"; - req_access_txt = "65" - }, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/airlock/external{ + name = "MiniSat External Access"; + req_access_txt = "65" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) @@ -46332,14 +40056,9 @@ /obj/machinery/newscaster{ pixel_y = -32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/corner{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNB" = ( /obj/structure/transit_tube, @@ -46358,14 +40077,9 @@ name = "AI Satellite turret control"; pixel_x = 30 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/corner{ + dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNE" = ( /obj/effect/turf_decal/stripes/line{ @@ -46381,13 +40095,9 @@ network = list("minisat"); start_active = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/corner{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNF" = ( /obj/effect/turf_decal/stripes/corner, @@ -46397,17 +40107,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/circuit/green, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, /area/ai_monitored/turret_protected/aisat_interior) "sNG" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/turf/open/floor/plasteel/dark/corner{ + dir = 1 }, -/turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNI" = ( /obj/item/stack/sheet/metal/fifty, @@ -46428,10 +40138,6 @@ dir = 1 }, /obj/structure/table, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNJ" = ( @@ -46442,10 +40148,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNK" = ( @@ -46462,10 +40164,6 @@ dir = 1; pixel_y = -26 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNM" = ( @@ -46482,16 +40180,12 @@ /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/aisat_interior) "sNS" = ( -/obj/machinery/porta_turret/ai, /obj/effect/turf_decal/delivery, /obj/machinery/airalarm{ dir = 4; pixel_x = -22 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/porta_turret/ai, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNT" = ( @@ -46506,28 +40200,20 @@ pixel_x = -8; pixel_y = 4 }, -/obj/structure/table, /obj/machinery/status_display{ pixel_y = -32 }, /obj/machinery/light, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/table, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sNU" = ( -/obj/machinery/porta_turret/ai, /obj/effect/turf_decal/delivery, /obj/machinery/firealarm{ dir = 1; pixel_y = -26 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/machinery/porta_turret/ai, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat_interior) "sOb" = ( @@ -46554,12 +40240,6 @@ name = "MiniSat Access"; req_access_txt = "65" }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "sOt" = ( @@ -46569,10 +40249,6 @@ /obj/machinery/status_display/ai{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "sOu" = ( @@ -46585,10 +40261,6 @@ dir = 4 }, /obj/machinery/light/small, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/command/bridge) "sOw" = ( @@ -46649,7 +40321,6 @@ /obj/structure/cable/white{ icon_state = "1-4" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "sOJ" = ( @@ -46663,35 +40334,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, +/obj/machinery/door/firedoor, /obj/machinery/door/airlock{ name = "Primary Restroom" }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) "sOL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch"; req_access_txt = "12" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, /turf/open/floor/plating, /area/maintenance/starboard) "sOM" = ( @@ -46804,7 +40463,8 @@ "sTH" = ( /obj/machinery/hydroponics/soil, /obj/item/seeds/tower, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/aft) "sVt" = ( /turf/closed/wall/r_wall, @@ -46817,7 +40477,8 @@ /area/maintenance/starboard/aft) "sZH" = ( /obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand, +/turf/open/floor/plating, /area/maintenance/port/aft) "tac" = ( /obj/structure/grille, @@ -46827,12 +40488,12 @@ /area/engineering/atmos) "tdN" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "tfP" = ( @@ -46867,16 +40528,10 @@ /turf/open/floor/carpet/green/airless, /area/asteroid/nearstation) "tkH" = ( +/obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ name = "Courtroom" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/service/lawoffice) "ttp" = ( @@ -46887,13 +40542,9 @@ /obj/structure/cable/white{ icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "ttA" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/turf_decal/bot, /obj/machinery/space_heater, /obj/effect/decal/cleanable/dirt, @@ -46903,6 +40554,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -46921,8 +40573,7 @@ "twy" = ( /obj/structure/table/reinforced, /obj/machinery/chem_dispenser/drinks{ - dir = 1; - icon_state = "soda_dispenser" + dir = 1 }, /turf/open/floor/wood{ icon_state = "wood-broken6" @@ -46942,13 +40593,23 @@ /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "tPn" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/science/mixing) +"tSA" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner{ + dir = 1 + }, +/area/hallway/secondary/entry) "tWh" = ( /turf/closed/wall, /area/commons/lounge) @@ -46979,6 +40640,26 @@ }, /turf/open/floor/plasteel/dark, /area/service/library) +"uac" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/beakers{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/syringes, +/obj/item/extinguisher/mini, +/obj/machinery/airalarm/unlocked{ + dir = 4; + pixel_x = -23 + }, +/obj/machinery/newscaster{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "ucd" = ( /obj/machinery/door/airlock/research{ name = "Toxins Storage"; @@ -46987,11 +40668,31 @@ /turf/open/floor/plating, /area/science/mixing) "ucu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/closed/wall, -/area/science/mixing) +/turf/open/floor/plasteel, +/area/engineering/atmos) +"udG" = ( +/obj/structure/table/reinforced, +/obj/item/folder/white, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/reagent_containers/glass/beaker/large, +/obj/item/reagent_containers/glass/beaker, +/obj/item/reagent_containers/dropper, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "udT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/power/apc{ @@ -47004,9 +40705,6 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "ueC" = ( @@ -47018,9 +40716,6 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "ueG" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 6 - }, /obj/machinery/light{ dir = 8 }, @@ -47031,6 +40726,9 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -47057,7 +40755,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/aft) "uhz" = ( @@ -47074,6 +40771,15 @@ /obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrous_output, /turf/open/floor/engine/n2o, /area/engineering/atmos) +"ukp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/closed/wall/r_wall, +/area/medical/virology) "uok" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 8 @@ -47081,29 +40787,20 @@ /turf/closed/wall/r_wall, /area/engineering/atmos) "upN" = ( -/obj/machinery/door/airlock/research{ - name = "Toxins Launch Room"; - req_access_txt = "7" - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/door/airlock/research{ + name = "Toxins Launch Room"; + req_access_txt = "7" }, /turf/open/floor/plasteel, /area/science/mixing) "uqY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -47120,16 +40817,6 @@ }, /obj/effect/turf_decal/bot, /obj/structure/table/glass, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel, /area/service/hydroponics) "uuJ" = ( @@ -47150,9 +40837,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -47163,17 +40847,13 @@ /area/maintenance/disposal/incinerator) "uxJ" = ( /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Atrium" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/machinery/door/airlock/public/glass{ + name = "Atrium" + }, +/turf/open/floor/plasteel/dark, /area/service/bar/atrium) "uxM" = ( /obj/machinery/door/airlock/external{ @@ -47194,11 +40874,20 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "uBJ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 8 }, -/turf/open/floor/plating, -/area/engineering/atmos) +/turf/open/floor/plasteel, +/area/engineering/gravity_generator) +"uBW" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/turf_decal/box, +/obj/machinery/power/tracker, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/starboard/fore) "uCY" = ( /turf/open/pool, /area/maintenance/starboard/aft) @@ -47243,18 +40932,14 @@ /turf/open/floor/plasteel/dark, /area/command/gateway) "uMi" = ( -/obj/machinery/door/airlock/security{ - name = "Law Office"; - req_access_txt = "38" - }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/white{ icon_state = "1-2" }, +/obj/machinery/door/airlock{ + name = "Law Office"; + req_access_txt = "38" + }, /turf/open/floor/plasteel, /area/service/lawoffice) "uSs" = ( @@ -47263,18 +40948,27 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) +"uTb" = ( +/obj/machinery/computer/camera_advanced/xenobio{ + dir = 1 + }, +/obj/machinery/light, +/obj/machinery/requests_console{ + department = "Xenobiology Lab"; + name = "Xenobiology RC"; + pixel_y = -32; + receive_ore_updates = 1 + }, +/obj/structure/cable/white{ + icon_state = "1-4" + }, +/turf/open/floor/circuit/green, +/area/science/xenobiology) "uTF" = ( /obj/machinery/door/window/southleft{ name = "Mass Driver Door"; @@ -47313,16 +41007,6 @@ }, /obj/machinery/computer/atmos_control/tank/nitrous_tank, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "vjN" = ( @@ -47335,17 +41019,12 @@ "vkK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) "vlJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/science/mixing) "vmq" = ( @@ -47366,16 +41045,6 @@ }, /obj/machinery/computer/atmos_control/tank/toxin_tank, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "vmV" = ( @@ -47411,18 +41080,12 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "vsf" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line, +/obj/item/extinguisher/mini, +/turf/open/floor/plasteel/dark/side{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/science/xenobiology) "vsL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -47454,16 +41117,6 @@ name = "N2O to Pure" }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "vuN" = ( @@ -47472,6 +41125,26 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"vuZ" = ( +/obj/structure/disposaloutlet{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plating, +/area/space/nearstation) +"vvD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/warning/deathsposal{ + pixel_y = -32 + }, +/turf/open/floor/plasteel, +/area/medical/virology) "vxf" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -47517,7 +41190,6 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "vJt" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/turf_decal/bot, /obj/machinery/space_heater, /obj/machinery/light{ @@ -47531,6 +41203,7 @@ /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -47542,6 +41215,42 @@ "vMb" = ( /turf/open/floor/engine/n2o, /area/engineering/atmos) +"vMG" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 4 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/science/xenobiology) +"vPH" = ( +/obj/effect/turf_decal/box, +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port/aft) +"vPL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/service/bar/atrium) +"vPQ" = ( +/obj/structure/table/wood, +/obj/machinery/computer/libraryconsole, +/obj/structure/sign/poster/random{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/service/library) "vPZ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 @@ -47564,17 +41273,10 @@ /obj/structure/sign/warning/nosmoking{ pixel_y = -30 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "vVS" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input, @@ -47588,12 +41290,6 @@ dir = 4 }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/starboard/fore) "vZb" = ( @@ -47627,13 +41323,9 @@ icon_state = "4-8" }, /obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, /area/hallway/primary/aft) "wdK" = ( /obj/effect/turf_decal/stripes/line, @@ -47643,19 +41335,31 @@ }, /turf/open/floor/engine, /area/engineering/main) +"wep" = ( +/obj/structure/cable/white{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/command/bridge) "wiJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/engineering/atmos) +/turf/closed/wall/r_wall, +/area/engineering/gravity_generator) "wkn" = ( /obj/machinery/hydroponics/soil, /obj/item/shovel/spade, /obj/item/cultivator, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand, +/turf/open/floor/plating, /area/maintenance/port/aft) "wkG" = ( /obj/structure/lattice/catwalk, -/turf/open/floor/plating/airless, +/turf/open/space/basic, /area/space/nearstation) "wkO" = ( /obj/structure/cable/white{ @@ -47670,6 +41374,13 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"wle" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solars/starboard/fore) "wqL" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ dir = 4 @@ -47694,7 +41405,8 @@ /obj/structure/cable/white{ icon_state = "0-4" }, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/aft) "wwT" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -47702,24 +41414,30 @@ }, /turf/open/floor/plasteel, /area/science/mixing) -"wDb" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/engineering/gravity_generator) -"wOe" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/research{ - name = "Toxins Lab"; - req_access_txt = "7" +"wBp" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 }, /obj/structure/cable/white{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/turf/open/floor/plasteel, +/area/service/bar/atrium) +"wDb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/sign/warning/radiation{ + pixel_x = -32 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/engineering/gravity_generator) +"wOe" = ( +/obj/machinery/door/firedoor/heavy, +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research{ + name = "Toxins Lab"; + req_access_txt = "7" }, /turf/open/floor/plasteel, /area/science/mixing) @@ -47767,7 +41485,9 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 8 + }, /area/science/xenobiology) "wWj" = ( /obj/structure/window/reinforced{ @@ -47781,17 +41501,9 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "xdr" = ( /obj/effect/turf_decal/sand/plating, @@ -47825,13 +41537,39 @@ }, /turf/open/floor/plasteel, /area/science/mixing) +"xjj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Security Checkpoint"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/aft) +"xoR" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/machinery/status_display{ + pixel_y = -32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Xenobiology South"; + dir = 1; + network = list("ss13","rd") + }, +/turf/open/floor/plasteel, +/area/science/xenobiology) "xpX" = ( /obj/structure/toilet{ dir = 8 }, /obj/structure/window/spawner/north, /obj/machinery/door/window/westright, -/obj/effect/turf_decal/bot, /obj/effect/landmark/blobstart, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) @@ -47842,11 +41580,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -47859,6 +41597,9 @@ dir = 8; name = "Waste to Filter" }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engineering/atmos) "xtL" = ( @@ -47886,52 +41627,54 @@ id = "incineratorturbine" }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, /turf/open/floor/plasteel/checker, /area/maintenance/disposal/incinerator) "xwu" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engineering/break_room) +"xxx" = ( +/obj/structure/chair/stool/bar, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/service/bar/atrium) "xyo" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /obj/machinery/shower{ dir = 8; name = "emergency shower" }, /obj/effect/turf_decal/vg_decals/radiation, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/corner, /area/engineering/atmos) "xAj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/yellow{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/turf/open/floor/plasteel/dark/corner{ dir = 8 }, -/turf/open/floor/plasteel/dark, /area/engineering/atmos) "xEl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -47944,7 +41687,6 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "xEQ" = ( @@ -47952,16 +41694,6 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) "xFw" = ( @@ -47975,12 +41707,36 @@ /turf/closed/wall/r_wall, /area/engineering/atmos) "xKp" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Engineering Maintenance"; - req_access_txt = "10" +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Creature Pen"; + req_access_txt = "47" }, -/turf/open/floor/plating, -/area/engineering/gravity_generator) +/obj/machinery/door/poddoor/preopen{ + id = "xeno4"; + name = "Creature Cell #4" + }, +/obj/structure/cable/white{ + icon_state = "1-8" + }, +/obj/structure/cable/white{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/science/xenobiology) "xMv" = ( /obj/structure/lattice, /obj/structure/fluff/broken_flooring{ @@ -47993,9 +41749,6 @@ /turf/closed/wall, /area/command/gateway) "xPz" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 9 }, @@ -48031,6 +41784,22 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"xZz" = ( +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/service/bar/atrium) "xZO" = ( /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/public/glass{ @@ -48041,9 +41810,6 @@ name = "Incinerator Interior Airlock"; req_access_txt = "12" }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -48059,6 +41825,9 @@ sanitize_external = 1; sensor_tag = "incinerator_airlock_sensor" }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "yba" = ( @@ -48076,36 +41845,17 @@ /turf/open/floor/plasteel, /area/science/mixing) "yeE" = ( -/obj/machinery/door/window/brigdoor{ - dir = 4; - name = "Creature Pen"; - req_access_txt = "47" - }, -/obj/machinery/door/poddoor/preopen{ - id = "xeno5"; - name = "Creature Cell #5" - }, -/obj/structure/cable/white{ - icon_state = "1-8" - }, -/obj/structure/cable/white{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/purple{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/tile/purple, +/obj/structure/cable/white{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/science/xenobiology) "yeO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -48117,49 +41867,37 @@ /turf/open/floor/plasteel, /area/hallway/primary/port/aft) "ygB" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch"; - req_access_txt = "12" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable/white{ icon_state = "4-8" }, +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Gateway Maintenance Hatch"; + req_access_txt = "62" + }, /turf/open/floor/plating, /area/maintenance/starboard) "ygE" = ( /obj/structure/cable/white{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/service/bar/atrium) "yhg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/engineering/atmos) +/area/asteroid/nearstation) "yin" = ( /obj/structure/cable/white{ icon_state = "4-8" }, -/turf/open/floor/plating/asteroid, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/aft) "ykL" = ( /obj/structure/chair/stool/bar, @@ -48181,16 +41919,6 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) @@ -70936,7 +64664,7 @@ jFP jFP jFP jFP -jFP +eDE jFP jFP jFP @@ -71448,23 +65176,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -71705,23 +65433,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -71962,23 +65690,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -72219,23 +65947,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +fMP +sdX +aLL +aLL +aLL +sdX +vPH +sdX +aLL +aLL +aLL +sdX +aLL +aaa +aaa jFP jFP jFP @@ -72468,23 +66196,6 @@ aaa aaa aaa aaa -cpn -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP jFP jFP jFP @@ -72493,6 +66204,23 @@ jFP jFP jFP jFP +aaa +aaa +fMP +aaa +aaa +aaa +aaa +aaa +aMH +aaa +aaa +aaa +aaa +aaa +aLL +aaa +aaa jFP jFP jFP @@ -72725,7 +66453,7 @@ aaa aaa aaa aaa -hIF +aaa aaa jFP jFP @@ -72733,21 +66461,21 @@ jFP jFP jFP jFP -jFP -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa +fMP aaa +aKr +aKr +aKr +aKr +aMI +aKr +aKr +aKr +aKr aaa +aLL aaa aaa jFP @@ -72982,7 +66710,7 @@ aaa aaa aaa aaa -hIF +aaa aaa jFP jFP @@ -72990,21 +66718,21 @@ jFP jFP jFP jFP -jFP -aaa -aaa -aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa +sdX +sdX +aKB +aLz +aLz +aLz +aMQ +bar +bar +bar +bbS +sdX +sdX aaa aaa jFP @@ -73239,7 +66967,6 @@ aaa aaa aaa aaa -hIF aaa aaa aaa @@ -73249,19 +66976,20 @@ aaa aaa aaa aaa -pZU -sdX -pZU -pZU -pZU -sdX +aaa aLL -sdX -pZU -pZU -pZU -sdX -pZU +aaa +aKF +aKF +aKF +aKF +aMH +aKF +aKF +aKF +aKF +aaa +bcJ aaa aaa jFP @@ -73506,13 +67234,13 @@ aaa aaa aaa aaa -pZU +aLL aaa aaa aaa aaa aaa -aMH +aZS aaa aaa aaa @@ -74778,7 +68506,7 @@ dMl uhz gNH kas -aad +kas aad aad aad @@ -75034,13 +68762,13 @@ gSv xtL uhz nHD +hIF kas aad aad aad aad aad -aad bxd aad aac @@ -75282,7 +69010,7 @@ aCF qTa oJp hUG -yhg +hUG hUG hUG ueC @@ -75291,13 +69019,13 @@ kiw nUk ezP xPz -kas -aad -aad -aad -aad -aad -aad +aGe +aGe +aGe +aGe +aGe +aGe +aGe bxd aad aad @@ -75539,7 +69267,7 @@ jpv msJ rjQ rjQ -jtZ +rjQ rjQ bGL vuN @@ -75551,8 +69279,8 @@ twh wiJ wDb fTp -wDb -wDb +uBJ +fTp gre sIu bwY @@ -75805,10 +69533,10 @@ dgV fYx iIj ajX -qpG -sIu +aGe +psq aHe -aIb +aId aJh aKp aLD @@ -76062,8 +69790,8 @@ orI xyo hNO bOy -uBJ -xKp +aGe +qdY aId aIc aJi @@ -76083,7 +69811,7 @@ aad aad aLC bae -aLC +nPS aLC sdX sdX @@ -76319,9 +70047,9 @@ anx anx uok akM -qdY aGe -aHg +qpG +aJh aId aHe pbT @@ -76575,8 +70303,8 @@ xIm rVj aAg akN +cpn alI -anu aGe aGe sIu @@ -76599,8 +70327,8 @@ aMJ bak aLC aLC -aLC -aLC +nPS +nPS aaa pZU aaa @@ -76857,7 +70585,7 @@ bal aLC bbf bbo -aLC +nPS aaa pZU aaa @@ -77108,13 +70836,13 @@ aTY aUP buL buP -buS +sKn aMJ bam bav bdC bgk -aLC +nPS sdX sdX aaa @@ -77848,7 +71576,7 @@ anx anx anx awC -bKQ +jzq fFw fEt mnD @@ -78105,7 +71833,7 @@ vMb srR tac arr -bKQ +anu fFw auq qEl @@ -78133,7 +71861,7 @@ bwV aRF aSP aEt -bvo +yhg aad bvo aad @@ -78362,7 +72090,7 @@ gap fnp aqA viy -bKQ +anu qIp mae eOs @@ -79390,7 +73118,7 @@ aor apv aqA arw -oiL +bhS jxc mae hqX @@ -79416,14 +73144,14 @@ aMT aPK aQN aRK -aSU +aSW aPL aUS aUU aWz aVL ylr -aSG +lvb jXc aME aLv @@ -80155,7 +73883,7 @@ azg aro aro aro -asm +azg bko cWv cWv @@ -80168,7 +73896,7 @@ qui awJ axo ayi -diG +jtZ oGc awF aCA @@ -80407,11 +74135,11 @@ aad aro ars ars -ars +asI ars ars arp -ars +asI ars asu asA @@ -80453,7 +74181,7 @@ aVL bvo aqo aKm -bbj +bbm aKm aKm aMG @@ -80466,9 +74194,9 @@ aSe aSJ aTm aLw -aaa -aaa -aaa +vuZ +aad +aad aaa aaa aaa @@ -80669,7 +74397,7 @@ ayd ayy arq azh -ars +aDm asy ars ars @@ -80682,7 +74410,7 @@ aqz aqz axq cBf -diG +ucu aAr aBy aCD @@ -80722,6 +74450,8 @@ aKV aTk aSK aYE +cLO +hvC aKV aad aaa @@ -80739,8 +74469,6 @@ aaa aaa aaa aaa -aaa -aaa jFP jFP jFP @@ -80919,7 +74647,7 @@ acH acH acH acH -ars +aDm agF agF agF @@ -80930,7 +74658,7 @@ agF agF agF ars -asE +azg ars asI atK @@ -80978,10 +74706,10 @@ aVG aKV aTl aXD -aKV -aKV -aKV -aKV +vvD +ukp +koJ +aLw aaa aaa aaa @@ -81224,7 +74952,7 @@ bvo bvo aqo aMw -bbk +pdQ aON aPT aRd @@ -81946,7 +75674,7 @@ aep azo aAo acH -ars +afH ars agF aio @@ -82243,7 +75971,7 @@ atE aMG aQW aRT -aRU +fHF aUc aUV aVN @@ -82499,7 +76227,7 @@ sHV avB axl sJI -aSc +vPQ aTc aUd sKd @@ -82721,7 +76449,7 @@ ahz aBw aCp air -aiW +aVV ajW akX alM @@ -83035,7 +76763,7 @@ aKm aKm aKm aZC -aRm +lSQ aRm aZo aZp @@ -83267,14 +76995,14 @@ aKO aMd aNg aEt -awG +bbm aKm aQW aRX aTf axj aCB -aDm +aDo aDn aDo aKn @@ -83532,7 +77260,7 @@ aTg sJX bxS aVS -aWE +eIk aXh ajG ajG @@ -83765,12 +77493,12 @@ auO avT awO axB -ayt -ayt -ayt +cXu +cXu +cXu aBK aCL -ayt +cXu aEI aFK aGw @@ -84021,9 +77749,9 @@ agF auP avU anH -axC -axC -axC +geZ +geZ +geZ aAC aBL geZ @@ -84046,7 +77774,7 @@ aSa aUg sKe aVU -aWE +lxu aXj ajG aOb @@ -84276,7 +78004,7 @@ arO ajc agF auQ -avV +ccy awP awQ ayu @@ -84302,7 +78030,7 @@ aSb sJS aBn aDf -aVV +aWE aVQ aXg ajG @@ -84536,12 +78264,12 @@ auR avW awQ axD -ayv -ayv +aDD +gYv aAE aBN -ayv -ayv +gYv +aDD aEK awQ aGy @@ -84824,7 +78552,7 @@ aOg aGC nhL aPA -aJx +aQI aQD aQI aHi @@ -85307,11 +79035,11 @@ auT avY awQ axG -axG +jJn bxJ -aAH +aDD aBQ -azC +aDD aDF aEN awQ @@ -85566,7 +79294,7 @@ awQ awQ awQ sDl -aAH +aDD bxK awQ awQ @@ -85823,7 +79551,7 @@ sDl axH ayz azD -aAH +aDD aBQ aVF aDG @@ -86112,7 +79840,7 @@ aSh bcf bcW bfF -ooX +aSh hSE bfA bfX @@ -86594,8 +80322,8 @@ awQ axJ ayB aPU -aAH -aBS +aDD +aDD aVH ayz aEQ @@ -87138,7 +80866,7 @@ ajN baA bbq bbq -bbq +qOl bdV aUM aVf @@ -87891,7 +81619,7 @@ aIL aJR aLa aMp -aNt +iQs aOi aPe aQg @@ -87926,14 +81654,14 @@ bjV bjC bjC bkl -blx bjC bjC bjC bjC bjC bjC -bly +bjC +bjC bkS bkX blc @@ -89138,7 +82866,7 @@ aba abm abB acg -swJ +swK adO aez afq @@ -89157,7 +82885,7 @@ apS ara asd ati -asi +xZz asg asg asg @@ -89391,8 +83119,8 @@ aak aar aaD aaQ -acX -abo +swK +swy abC ach acY @@ -89415,22 +83143,22 @@ arb ase hpr asg -asg -asg +hRi +hRi bxG -asg -avi -awn -axP -asg -avi -aAR -asg +hRi +qKS +apV +aoP +hRi +qKS +huj +hRi awT -aAR -avi +huj +qKS bxL -asg +hRi aLf aMt arb @@ -89445,7 +83173,7 @@ aVp aUx aWP uuU -aYc +ugK iey byo byo @@ -89670,8 +83398,8 @@ aoO apU arc asf -asf -asf +nmv +nmv avf awk awU @@ -89679,14 +83407,14 @@ axO ayJ azJ aAO -asf +nmv ayJ aDO aEW awU aGN aHS -asf +nmv aJW ygE aMu @@ -89702,7 +83430,7 @@ aUy aUy aWQ tWh -aYc +ugK iey sKB baI @@ -89904,7 +83632,7 @@ aaa aal aat aaF -aaR +wep abd abp abE @@ -89921,23 +83649,23 @@ ajt akw alp qdD -anb +ndg anS aoP apV uxJ asg -asg +hRi auc avg awl awV -axP -avi +aoP +qKS azK aAP aBZ -avi +qKS aDP aEX aFO @@ -89945,7 +83673,7 @@ aGO aHT gPY dQC -asg +hRi axP ard aOo @@ -89960,7 +83688,7 @@ sNz aWR tWh aYd -bls +iey byq baJ bbz @@ -89970,10 +83698,10 @@ bed beI bff bfL -aYc +ugK bgU bhI -blv +biw bgU aaa aaa @@ -90161,9 +83889,9 @@ aaa aal aau aaG -aaR +phb abc -ggq +qSs abD aci adb @@ -90177,14 +83905,14 @@ aiB aju akx alq -amj +anc anc anT aoQ apW are ash -ash +nfH aud avh awm @@ -90192,17 +83920,17 @@ awW axQ ayK awW -aAQ -ash +wBp +nfH ayK awW -ash +nfH aFP aGP aud -ash +nfH ayK -ash +nfH aAQ aNz aOp @@ -90230,7 +83958,7 @@ bfK ugK bgU bhH -bix +tSA bgU aaa aaa @@ -90419,7 +84147,7 @@ aak aav aaH aaQ -oKz +swK swy abF ack @@ -90443,19 +84171,19 @@ arf asi bvV asg -avi -awn -asg -axP -ayL -asg -aAR +qKS +apV +hRi +aoP +vPL +hRi +huj bxL -avi -asg -asg -asg -asg +qKS +hRi +hRi +hRi +hRi asg asg ayL @@ -90473,7 +84201,7 @@ aVr aUz aWT fgG -aYc +xjj aYW bys byo @@ -90486,7 +84214,7 @@ byo bfK ugK bgV -bhG +jkQ biw bgU aaa @@ -90699,7 +84427,7 @@ ayP ara asj atj -aue +xxx avj awo aue @@ -90726,7 +84454,7 @@ aCM eUz aTD aTD -aVs +lEr aTD aTD aTD @@ -91218,7 +84946,7 @@ avl awq awY axS -awX +heH aue aAR aCc @@ -91266,10 +84994,10 @@ aae aaa aaa aaa -aaa -aaa -aaa -aaa +aac +aac +aac +aac aaa aaa aaa @@ -91525,9 +85253,9 @@ bjc bfP bfP aad -aaa -aaa -aaa +fji +aac +aac aaa aaa aaa @@ -91782,8 +85510,8 @@ bgY bgm bfP aad -aac -aac +jpG +aKo aad aad aaa @@ -92035,11 +85763,11 @@ bgZ bhM ibv bgm -bgZ +bhg bhM sKZ aad -aac +cfq aad aad aad @@ -92296,7 +86024,7 @@ exb bhN bfP bfP -aad +hfm aad aad aad @@ -92552,8 +86280,8 @@ jdD bhb bhO bgd -bfP -aad +uac +snF aad aad aad @@ -92809,8 +86537,8 @@ bhP bjq bjD bgg -bfP -aad +xoR +snF aad aad aad @@ -93066,8 +86794,8 @@ biY bjr bjE bjR -bfP -aad +uTb +snF aad aad aad @@ -93311,20 +87039,20 @@ baa aZl dfP bfP -bgo +vsf rCw -bhN +vMG ibv -bgo +dZL yeE -bhN +gkP nTi biZ bjs bjF bjS -bfP -aad +udG +snF aad aad aad @@ -93498,8 +87226,8 @@ aad aad aaa aaa -bbT -bbT +aaa +bcF bbT bbT bcF @@ -93568,20 +87296,20 @@ bem beO sOV bfP -bgm -bgm -bhS +bgo +xKp +bhN ibv -bgm -bgm -bhS +bgo +cCv +bhN ibv bja bjt bjG bjT -bfP -aad +gia +snF aad aad aad @@ -93754,8 +87482,8 @@ sMq aad aad aaa -adm -bbT +aaa +aaa bbX bbZ bcc @@ -93793,11 +87521,11 @@ sEJ aBa aBa anl -aDZ +tLt mXV aFY bsz -aDZ +tLt aIY fff sJa @@ -93825,20 +87553,20 @@ ben beP bfn bfP -vsf -bhg bgm +bgm +bnS ibv -psq -bgZ bgm +bgm +bnS xFw bjb bju bjH -bfP -sKZ -aad +dxC +bRW +mrI aad aad aad @@ -94012,8 +87740,8 @@ aad aad aaa aad -bbU -bbT +aaa +bbX bca bbT bcH @@ -94039,7 +87767,7 @@ apb nwY sOF sOG -atq +sEK oyD oyD sOK @@ -94086,15 +87814,15 @@ bgm bhg bgm ibv -bgm -bhg +gBW +bgZ bgm bfP bjc bjv bjc bfP -aad +bfP aad aad aad @@ -94786,7 +88514,7 @@ bbW bcQ adq aad -bbT +bbX bcK bdE adu @@ -94817,10 +88545,10 @@ xpX pML oyD bfp -aSD -aRz -aRz -aRz +adm +bls +bls +bls saI aRz sIb @@ -95043,7 +88771,7 @@ aef aaa aaa aaa -bbT +bbX bcL bcR adu @@ -95074,10 +88802,10 @@ oyD oyD oyD sGY -aRz +bls sFn sFR -sJN +blv sGY aRz bmb @@ -95300,8 +89028,8 @@ adq sdX sdX sdX -bbT -bbT +bbX +bbX bbU adu adu @@ -95334,7 +89062,7 @@ sEn sEN sFo sFS -aSH +blx sGY aRz sIc @@ -95566,7 +89294,7 @@ aad adn aee aeU -afH +aeU agA aho aif @@ -95588,7 +89316,7 @@ eOg sDq aRz bfp -aRz +bls sFp sFT sGy @@ -95618,7 +89346,7 @@ hXc abP jLF aAY -hVE +kFf bdA aRy aRy @@ -95845,10 +89573,10 @@ xMZ bRf xMZ ygB -aRz +bls sFq sFU -aRz +bls sGY sJN blM @@ -96141,8 +89869,8 @@ lMu aRy bhm bhX -jrd uCY +nXb nio jeI juY @@ -96575,7 +90303,7 @@ aaa aaa aaa aaa -pZU +sdX aaa aaa aaa @@ -96587,7 +90315,7 @@ aaa aaa aaa aaa -pZU +sdX aaa aaa aaa @@ -96619,7 +90347,7 @@ xWb sEQ bRf aRz -atq +sEK aRz aRz bmh @@ -96832,7 +90560,7 @@ aaa aaa aaa aaa -sdX +aLL aaa abL abL @@ -96844,7 +90572,7 @@ abL abL abL aaa -sdX +pZU aaa aaa aaa @@ -97089,7 +90817,7 @@ jFP aaa aaa aaa -pZU +aLL sdX abM bbQ @@ -97138,9 +90866,9 @@ bsS sHC sId bsM -bsS +lwu sIR -bsS +lwu bsY axW aae @@ -97346,13 +91074,13 @@ jFP aaa aaa aaa -pZU +aLL aaa acu acu acu acu -aef +wle acu acu acu @@ -97603,19 +91331,19 @@ jFP aaa aaa aaa -pZU +sdX aaa aaa aaa aaa aaa -adt +aef aaa aaa aaa aaa aaa -pZU +sdX aaa aaa aaa @@ -97860,19 +91588,19 @@ jFP aaa aaa aaa -sdX -sdX -pZU -pZU -pZU -sdX bcJ -sdX +aaa +abL +abL +abL +abL +adt +abL +abL +abL +abL +aaa pZU -pZU -pZU -sdX -sdX aaa aaa aaa @@ -97931,12 +91659,12 @@ xiZ wvy bfz bfB -mvB -mvB +hVE +hVE kqH vlJ pHH -ucu +kPi aad aad aad @@ -98117,19 +91845,19 @@ jFP aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aLL +sdX +abM +bbQ +bbQ +bbQ +adM +bbV +bbV +bbV +bcD +sdX +pZU aaa aaa aaa @@ -98184,7 +91912,7 @@ bdI bdM bft ajP -mhf +kWQ kCG ybw vGQ @@ -98193,7 +91921,7 @@ eZs vPZ jde pmK -iio +kPi aad aad aad @@ -98374,19 +92102,19 @@ jFP aaa aaa aaa +pZU aaa +acu +acu +acu +acu +aef +acu +acu +acu +acu aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU aaa aaa aaa @@ -98445,12 +92173,12 @@ sVt sVt sVt qcP -sVt -meo -meo -sVt -sVt -sVt +pgH +irp +irp +pgH +pgH +kYh iio aad aad @@ -98631,19 +92359,19 @@ jFP aaa aaa aaa +pZU aaa aaa aaa aaa aaa +adt aaa aaa aaa aaa aaa -aaa -aaa -aaa +pZU aaa aaa aaa @@ -98696,7 +92424,7 @@ aJO aJO bdK bew -ajP +bly ajP sVt meo @@ -98888,19 +92616,19 @@ jFP aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pZU +sdX +pZU +pZU +pZU +sdX +uBW +sdX +pZU +pZU +pZU +sdX +pZU aaa aaa aaa @@ -98953,7 +92681,7 @@ aaa aJO aJO aJO -ajP +bly dfK dfK sVt @@ -99210,7 +92938,7 @@ aaa aaa aad aad -meo +buS dfK qnA ucd @@ -99400,23 +93128,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -99467,11 +93195,11 @@ aaa aaa aac aad -sVt +jrd lmq nfS -sVt -iio +gBp +gfr upN iio iio @@ -99657,23 +93385,23 @@ jFP jFP jFP jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP -jFP +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa jFP jFP jFP @@ -99724,10 +93452,10 @@ aaa aaa aac aad -sVt -sVt -sVt -sVt +ooX +gcw +gcw +eDk gLD lFm uTF diff --git a/auxmos.dll b/auxmos.dll index a5fc480d10..eb7e3b71fc 100644 Binary files a/auxmos.dll and b/auxmos.dll differ diff --git a/auxmos.pdb b/auxmos.pdb index 12fb921360..5d005d3689 100644 Binary files a/auxmos.pdb and b/auxmos.pdb differ diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index cf98755a36..a5b5cf6dc0 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -182,7 +182,7 @@ ////organ defines #define STANDARD_ORGAN_THRESHOLD 100 -#define STANDARD_ORGAN_HEALING (1/(15 MINUTES / (2 SECONDS))) +#define STANDARD_ORGAN_HEALING (1/(15 MINUTES / (2 SECONDS))) / 3 //Base organ healing can be amped by a factor of up to x5 via satiety. This assumes it to be somewhat in the upper center of positive satiety as base. #define STANDARD_ORGAN_DECAY (1/(15 MINUTES / (2 SECONDS))) //designed to fail organs when left to decay for ~15 minutes. 2 SECOND is SSmobs tickrate. diff --git a/code/__DEFINES/_flags/_flags.dm b/code/__DEFINES/_flags/_flags.dm index 5f591b429b..a73841eff5 100644 --- a/code/__DEFINES/_flags/_flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -37,6 +37,8 @@ GLOBAL_LIST_INIT(bitflags, list( #define OVERLAY_QUEUED_1 (1<<8) ///Item has priority to check when entering or leaving. #define ON_BORDER_1 (1<<9) +///Whether or not this atom shows screentips when hovered over +#define NO_SCREENTIPS_1 (1<<10) ///Prevent clicking things below it on the same turf eg. doors/ fulltile windows. #define PREVENT_CLICK_UNDER_1 (1<<11) #define HOLOGRAM_1 (1<<12) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index b485a5fa29..c58e111f26 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -57,6 +57,10 @@ #define ADMIN_SET_SD_CODE "(SETCODE)" #define ADMIN_FULLMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_PP(user)] [ADMIN_VV(user)] [ADMIN_SM(user)] [ADMIN_FLW(user)] [ADMIN_TP(user)] [ADMIN_INDIVIDUALLOG(user)] [ADMIN_SMITE(user)]" #define ADMIN_FULLMONTY(user) "[key_name_admin(user)] [ADMIN_FULLMONTY_NONAME(user)]" +//ambition start +#define ADMIN_TPMONTY_NONAME(user) "[ADMIN_QUE(user)] [ADMIN_JMP(user)] [ADMIN_FLW(user)]" +#define ADMIN_TPMONTY(user) "[key_name_admin(user)] [ADMIN_TPMONTY_NONAME(user)]" +//ambition end #define ADMIN_JMP(src) "(JMP)" #define COORD(src) "[src ? "([src.x],[src.y],[src.z])" : "nonexistent location"]" #define AREACOORD(src) "[src ? "[get_area_name(src, TRUE)] ([src.x], [src.y], [src.z])" : "nonexistent location"]" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 20b4f03d71..00751f2cab 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -123,3 +123,9 @@ GLOBAL_LIST_EMPTY(living_heart_cache) //A list of all living hearts in existance /// The dimensions of the antagonist preview icon. Will be scaled to this size. #define ANTAGONIST_PREVIEW_ICON_SIZE 96 + +//Objectives-Ambitions Panel +#define REQUEST_NEW_OBJECTIVE "new_objective" +#define REQUEST_DEL_OBJECTIVE "del_objective" +#define REQUEST_WIN_OBJECTIVE "win_objective" +#define REQUEST_LOSE_OBJECTIVE "lose_objective" diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 2ead5ea068..35de475d35 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -116,6 +116,7 @@ #define GLOVES_MAX_TEMP_PROTECT 1500 //For some gloves #define SHOES_MIN_TEMP_PROTECT 2.0 //For gloves #define SHOES_MAX_TEMP_PROTECT 1500 //For gloves +#define COAT_MAX_TEMP_PROTECT 330 //For winter coats (if they can stop you from getting cold why can't they do it the other way to a lesser extent) #define PRESSURE_DAMAGE_COEFFICIENT 4 //The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE #define MAX_HIGH_PRESSURE_DAMAGE 16 // CITADEL CHANGES Max to 16, low to 8. diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index 92231d3998..b783678c86 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -27,6 +27,9 @@ //INDEXES #define COOLDOWN_EMPLOYMENT_CABINET "employment cabinet" +#define COOLDOWN_AMBITION "ambition" +#define COOLDOWN_OBJECTIVES "objectives" +#define COOLDOWN_OBJ_ADMIN_PING "obj_admin_ping" //car cooldowns #define COOLDOWN_CAR_HONK "car_honk" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index fdded58308..dad0f49832 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -359,6 +359,9 @@ #define COMSIG_LIVING_RUN_BLOCK "living_do_run_block" //from base of mob/living/do_run_block(): (real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone) #define COMSIG_LIVING_GET_BLOCKING_ITEMS "get_blocking_items" //from base of mob/living/get_blocking_items(): (list/items) +#define COMSIG_LIVING_RESTING "living_on_resting" //from mob/living/set_resting +#define COMSIG_LIVING_STOPPED_PULLING "living_on_stop_pulling" //from mob/living/stop_pulling + #define COMSIG_LIVING_ACTIVE_BLOCK_START "active_block_start" //from base of mob/living/keybind_start_active_blocking(): (obj/item/blocking_item, list/backup_items) #define COMPONENT_PREVENT_BLOCK_START 1 #define COMSIG_LIVING_ACTIVE_PARRY_START "active_parry_start" //from base of mob/living/initiate_parry_sequence(): (parrying_method, datum/parrying_item_mob_or_art, list/backup_items, list/override) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 7b727fcc5a..6c83a46514 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -6,87 +6,52 @@ #define STORAGE_VIEW_DEPTH 2 //ITEM INVENTORY SLOT BITMASKS -#define ITEM_SLOT_OCLOTHING (1<<0) -#define ITEM_SLOT_ICLOTHING (1<<1) -#define ITEM_SLOT_GLOVES (1<<2) -#define ITEM_SLOT_EYES (1<<3) -#define ITEM_SLOT_EARS (1<<4) -#define ITEM_SLOT_MASK (1<<5) -#define ITEM_SLOT_HEAD (1<<6) -#define ITEM_SLOT_FEET (1<<7) -#define ITEM_SLOT_ID (1<<8) -#define ITEM_SLOT_BELT (1<<9) -#define ITEM_SLOT_BACK (1<<10) -#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. -#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. -#define ITEM_SLOT_NECK (1<<13) -#define ITEM_SLOT_HANDS (1<<14) -#define ITEM_SLOT_BACKPACK (1<<15) -#define ITEM_SLOT_SUITSTORE (1<<16) +/// Suit slot (armors, costumes, space suits, etc.) +#define ITEM_SLOT_OCLOTHING (1<<0) +/// Jumpsuit slot +#define ITEM_SLOT_ICLOTHING (1<<1) +/// Glove slot +#define ITEM_SLOT_GLOVES (1<<2) +/// Glasses slot +#define ITEM_SLOT_EYES (1<<3) +/// Ear slot (radios, earmuffs) +#define ITEM_SLOT_EARS (1<<4) +/// Mask slot +#define ITEM_SLOT_MASK (1<<5) +/// Head slot (helmets, hats, etc.) +#define ITEM_SLOT_HEAD (1<<6) +/// Shoe slot +#define ITEM_SLOT_FEET (1<<7) +/// ID slot +#define ITEM_SLOT_ID (1<<8) +/// Belt slot +#define ITEM_SLOT_BELT (1<<9) +/// Back slot +#define ITEM_SLOT_BACK (1<<10) +/// Dextrous simplemob "hands" (used for Drones and Dextrous Guardians) +#define ITEM_SLOT_DEX_STORAGE (1<<11) +/// Neck slot (ties, bedsheets, scarves) +#define ITEM_SLOT_NECK (1<<12) +/// A character's hand slots +#define ITEM_SLOT_HANDS (1<<13) +/// Inside of a character's backpack +#define ITEM_SLOT_BACKPACK (1<<14) +/// Suit Storage slot +#define ITEM_SLOT_SUITSTORE (1<<15) +/// Left Pocket slot +#define ITEM_SLOT_LPOCKET (1<<16) +/// Right Pocket slot +#define ITEM_SLOT_RPOCKET (1<<17) +/// Handcuff slot +#define ITEM_SLOT_HANDCUFFED (1<<18) +/// Legcuff slot (bolas, beartraps) +#define ITEM_SLOT_LEGCUFFED (1<<19) -//SLOTS -#define SLOT_BACK 1 -#define SLOT_WEAR_MASK 2 -#define SLOT_HANDCUFFED 3 -#define SLOT_HANDS 4 //wherever you provide a slot for hands you provide SLOT_HANDS - //SLOT_HANDS as a slot will pick ANY available hand -#define SLOT_BELT 5 -#define SLOT_WEAR_ID 6 -#define SLOT_EARS 7 -#define SLOT_GLASSES 8 -#define SLOT_GLOVES 9 -#define SLOT_NECK 10 -#define SLOT_HEAD 11 -#define SLOT_SHOES 12 -#define SLOT_WEAR_SUIT 13 -#define SLOT_W_UNIFORM 14 -#define SLOT_L_STORE 15 -#define SLOT_R_STORE 16 -#define SLOT_S_STORE 17 -#define SLOT_IN_BACKPACK 18 -#define SLOT_LEGCUFFED 19 -#define SLOT_GENERC_DEXTROUS_STORAGE 20 - - -#define SLOTS_AMT 20 // Keep this up to date! - -//I hate that this has to exist -/proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above) - . = 0 - switch(slotdefine) - if(SLOT_BACK) - . = ITEM_SLOT_BACK - if(SLOT_WEAR_MASK) - . = ITEM_SLOT_MASK - if(SLOT_NECK) - . = ITEM_SLOT_NECK - if(SLOT_BELT) - . = ITEM_SLOT_BELT - if(SLOT_WEAR_ID) - . = ITEM_SLOT_ID - if(SLOT_EARS) - . = ITEM_SLOT_EARS - if(SLOT_GLASSES) - . = ITEM_SLOT_EYES - if(SLOT_GLOVES) - . = ITEM_SLOT_GLOVES - if(SLOT_HEAD) - . = ITEM_SLOT_HEAD - if(SLOT_SHOES) - . = ITEM_SLOT_FEET - if(SLOT_WEAR_SUIT) - . = ITEM_SLOT_OCLOTHING - if(SLOT_W_UNIFORM) - . = ITEM_SLOT_ICLOTHING - if(SLOT_L_STORE, SLOT_R_STORE) - . = ITEM_SLOT_POCKET - if(SLOT_HANDS) - . = ITEM_SLOT_HANDS - if(SLOT_IN_BACKPACK) - . = ITEM_SLOT_BACKPACK - if(SLOT_S_STORE) - . = ITEM_SLOT_SUITSTORE +/// Total amount of slots +#define SLOTS_AMT 20 // Keep this up to date! +//SLOT GROUP HELPERS +#define ITEM_SLOT_POCKETS (ITEM_SLOT_LPOCKET|ITEM_SLOT_RPOCKET) //Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. #define HIDEGLOVES (1<<0) @@ -245,4 +210,4 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list( #define GET_INTERNAL_SLOTS(C) list(C.head, C.wear_mask) //Slots that won't trigger humans' update_genitals() on equip(). -GLOBAL_LIST_INIT(no_genitals_update_slots, list(SLOT_L_STORE, SLOT_R_STORE, SLOT_S_STORE, SLOT_IN_BACKPACK, SLOT_LEGCUFFED, SLOT_HANDCUFFED, SLOT_HANDS, SLOT_GENERC_DEXTROUS_STORAGE)) +GLOBAL_LIST_INIT(no_genitals_update_slots, list(ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_BACKPACK, ITEM_SLOT_LEGCUFFED, ITEM_SLOT_HANDCUFFED, ITEM_SLOT_HANDS, ITEM_SLOT_DEX_STORAGE)) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 0609b9dabe..f893ab3dfe 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -76,7 +76,6 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isvampire(A) (is_species(A,/datum/species/vampire)) #define isdullahan(A) (is_species(A, /datum/species/dullahan)) -#define isangel(A) (is_species(A, /datum/species/angel)) #define ismush(A) (is_species(A, /datum/species/mush)) #define isshadow(A) (is_species(A, /datum/species/shadow)) #define isrobotic(A) (is_species(A, /datum/species/ipc) || is_species(A, /datum/species/synthliz) || is_species(A, /datum/species/mammal/synthetic)) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index f56cd76a71..60d02c1e49 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -105,6 +105,9 @@ #define TORADIANS(degrees) ((degrees) * 0.0174532925) +/// Gets shift x that would be required the bitflag (1< maxnodes) - return 0 - maxnodedepth = maxnodes //no need to consider path longer than maxnodes - var/datum/Heap/open = new /datum/Heap(/proc/HeapPathWeightCompare) //the open list - var/list/openc = new() //open list for node check - var/list/path = null //the returned path, if any - //initialization - var/datum/PathNode/cur = new /datum/PathNode(start,null,0,call(start,dist)(end),0,15,1)//current processed turf - open.Insert(cur) - openc[start] = cur - //then run the main loop - while(!open.IsEmpty() && !path) - cur = open.Pop() //get the lower f turf in the open list - //get the lower f node on the open list - //if we only want to get near the target, check if we're close enough - var/closeenough - if(mintargetdist) - closeenough = call(cur.source,dist)(end) <= mintargetdist - - - //found the target turf (or close enough), let's create the path to it - if(cur.source == end || closeenough) - path = new() - path.Add(cur.source) - while(cur.prevNode) - cur = cur.prevNode - path.Add(cur.source) - break - //get adjacents turfs using the adjacent proc, checking for access with id - if((!maxnodedepth)||(cur.nt <= maxnodedepth))//if too many steps, don't process that path - for(var/i = 0 to 3) - var/f= 1<>1) //getting reverse direction throught swapping even and odd bits.((f & 01010101)<<1)|((f & 10101010)>>1) - var/newg = cur.g + call(cur.source,dist)(T) - if(CN) - //is already in open list, check if it's a better way from the current turf - CN.bf &= 15^r //we have no closed, so just cut off exceed dir.00001111 ^ reverse_dir.We don't need to expand to checked turf. - if((newg < CN.g) ) - if(call(cur.source,adjacent)(caller, T, id, simulated_only)) - CN.setp(cur,newg,CN.h,cur.nt+1) - open.ReSort(CN)//reorder the changed element in the list - else - //is not already in open list, so add it - if(call(cur.source,adjacent)(caller, T, id, simulated_only)) - CN = new(T,cur,newg,call(T,dist)(end),cur.nt+1,15^r) - open.Insert(CN) - openc[T] = CN - cur.bf = 0 - CHECK_TICK - //reverse the path to get it from start to finish - if(path) - for(var/i = 1 to round(0.5*path.len)) - path.Swap(i,path.len-i+1) - openc = null - //cleaning after us - return path - -//Returns adjacent turfs in cardinal directions that are reachable -//simulated_only controls whether only simulated turfs are considered or not - -/turf/proc/reachableAdjacentTurfs(caller, ID, simulated_only) - var/list/L = new() - var/turf/T - var/static/space_type_cache = typecacheof(/turf/open/space) - - for(var/k in 1 to GLOB.cardinals.len) - T = get_step(src,GLOB.cardinals[k]) - if(!T || (simulated_only && space_type_cache[T.type])) - continue - if(!T.density && !LinkBlockedWithAccess(T,caller, ID)) - L.Add(T) - return L - -/turf/proc/reachableTurftest(caller, var/turf/T, ID, simulated_only) - if(T && !T.density && !(simulated_only && SSpathfinder.space_type_cache[T.type]) && !LinkBlockedWithAccess(T,caller, ID)) - return TRUE - -//Returns adjacent turfs in cardinal directions that are reachable via atmos -/turf/proc/reachableAdjacentAtmosTurfs() - return atmos_adjacent_turfs - -/turf/proc/LinkBlockedWithAccess(turf/T, caller, ID) - var/adir = get_dir(src, T) - var/rdir = ((adir & MASK_ODD)<<1)|((adir & MASK_EVEN)>>1) - for(var/obj/structure/window/W in src) - if(!W.CanAStarPass(ID, adir)) - return 1 - for(var/obj/machinery/door/window/W in src) - if(!W.CanAStarPass(ID, adir)) - return 1 - for(var/obj/O in T) - if(!O.CanAStarPass(ID, rdir, caller)) - return 1 - - return 0 diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 2a50ab3a39..c4252ad542 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -14,6 +14,9 @@ ///Like LAZYCOPY - copies an input list if the list has entries, If it doesn't the assigned list is nulled #define LAZYLISTDUPLICATE(L) (L ? L.Copy() : null ) #define LAZYREMOVE(L, I) if(L) { L -= I; if(!length(L)) { L = null; } } +//ambition start +#define LAZYCUT(L, S, E) if((length(L) >= S) && (E == 0 || length(L) >= (E - 1))) { L.Cut(S, E); if(!length(L)) { L = null; } } +//ambition end #define LAZYADD(L, I) if(!L) { L = list(); } L += I; #define LAZYOR(L, I) if(!L) { L = list(); } L |= I; #define LAZYFIND(L, V) (L ? L.Find(V) : 0) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 4bc9ccaacd..25b5334a2b 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -109,6 +109,10 @@ if (CONFIG_GET(flag/log_attack)) WRITE_LOG(GLOB.world_attack_log, "ATTACK: [text]") +/proc/log_victim(text) + if (CONFIG_GET(flag/log_victim)) + WRITE_LOG(GLOB.world_victim_log, "VICTIM: [text]") + /proc/log_manifest(ckey, datum/mind/mind,mob/body, latejoin = FALSE) if (CONFIG_GET(flag/log_manifest)) WRITE_LOG(GLOB.world_manifest_log, "[ckey] \\ [body.real_name] \\ [mind.assigned_role] \\ [mind.special_role ? mind.special_role : "NONE"] \\ [latejoin ? "LATEJOIN":"ROUNDSTART"]") diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 4ee622961a..2fbf087288 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -140,3 +140,6 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_typepaths_asc(A, B) return sorttext("[B]","[A]") + +/proc/cmp_playtime(list/A, list/B) + return A["playtime"] - B["playtime"] diff --git a/code/__HELPERS/custom_holoforms.dm b/code/__HELPERS/custom_holoforms.dm index 2733a97e14..8aa8d279ec 100644 --- a/code/__HELPERS/custom_holoforms.dm +++ b/code/__HELPERS/custom_holoforms.dm @@ -18,7 +18,7 @@ if(length(inhand_equipment)) for(var/path in inhand_equipment) var/obj/item/I = new path - mannequin.equip_to_slot_if_possible(I, SLOT_HANDS, TRUE, TRUE, TRUE, TRUE) + mannequin.equip_to_slot_if_possible(I, ITEM_SLOT_HANDS, TRUE, TRUE, TRUE, TRUE) var/icon/combined = new diff --git a/code/__HELPERS/heap.dm b/code/__HELPERS/heap.dm index 916e7fc05c..eabcb0e0dc 100644 --- a/code/__HELPERS/heap.dm +++ b/code/__HELPERS/heap.dm @@ -1,39 +1,45 @@ - ////////////////////// -//datum/Heap object +//datum/heap object ////////////////////// -/datum/Heap +/datum/heap var/list/L var/cmp -/datum/Heap/New(compare) +/datum/heap/New(compare) L = new() cmp = compare -/datum/Heap/proc/IsEmpty() - return !L.len +/datum/heap/Destroy(force, ...) + for(var/i in L) // because this is before the list helpers are loaded + qdel(i) + L = null + return ..() -//Insert and place at its position a new node in the heap -/datum/Heap/proc/Insert(atom/A) +/datum/heap/proc/is_empty() + return !length(L) + +//insert and place at its position a new node in the heap +/datum/heap/proc/insert(atom/A) L.Add(A) - Swim(L.len) + swim(length(L)) //removes and returns the first element of the heap //(i.e the max or the min dependant on the comparison function) -/datum/Heap/proc/Pop() - if(!L.len) +/datum/heap/proc/pop() + if(!length(L)) return 0 . = L[1] - L[1] = L[L.len] - L.Cut(L.len) - if(L.len) - Sink(1) + L[1] = L[length(L)] + L.Cut(length(L)) + if(length(L)) + sink(1) + //Get a node up to its right position in the heap -/datum/Heap/proc/Swim(var/index) +/datum/heap/proc/swim(index) var/parent = round(index * 0.5) while(parent > 0 && (call(cmp)(L[index],L[parent]) > 0)) @@ -42,21 +48,21 @@ parent = round(index * 0.5) //Get a node down to its right position in the heap -/datum/Heap/proc/Sink(var/index) - var/g_child = GetGreaterChild(index) +/datum/heap/proc/sink(index) + var/g_child = get_greater_child(index) while(g_child > 0 && (call(cmp)(L[index],L[g_child]) < 0)) L.Swap(index,g_child) index = g_child - g_child = GetGreaterChild(index) + g_child = get_greater_child(index) //Returns the greater (relative to the comparison proc) of a node children //or 0 if there's no child -/datum/Heap/proc/GetGreaterChild(var/index) - if(index * 2 > L.len) +/datum/heap/proc/get_greater_child(index) + if(index * 2 > length(L)) return 0 - if(index * 2 + 1 > L.len) + if(index * 2 + 1 > length(L)) return index * 2 if(call(cmp)(L[index * 2],L[index * 2 + 1]) < 0) @@ -65,12 +71,11 @@ return index * 2 //Replaces a given node so it verify the heap condition -/datum/Heap/proc/ReSort(atom/A) +/datum/heap/proc/resort(atom/A) var/index = L.Find(A) - Swim(index) - Sink(index) + swim(index) + sink(index) -/datum/Heap/proc/List() +/datum/heap/proc/List() . = L.Copy() - diff --git a/code/__HELPERS/path.dm b/code/__HELPERS/path.dm new file mode 100644 index 0000000000..7ae72c3fa2 --- /dev/null +++ b/code/__HELPERS/path.dm @@ -0,0 +1,359 @@ +/** + * This file contains the stuff you need for using JPS (Jump Point Search) pathing, an alternative to A* that skips + * over large numbers of uninteresting tiles resulting in much quicker pathfinding solutions. Mind that diagonals + * cost the same as cardinal moves currently, so paths may look a bit strange, but should still be optimal. + */ + +/** + * This is the proc you use whenever you want to have pathfinding more complex than "try stepping towards the thing". + * If no path was found, returns an empty list, which is important for bots like medibots who expect an empty list rather than nothing. + * + * Arguments: + * * caller: The movable atom that's trying to find the path + * * end: What we're trying to path to. It doesn't matter if this is a turf or some other atom, we're gonna just path to the turf it's on anyway + * * max_distance: The maximum number of steps we can take in a given path to search (default: 30, 0 = infinite) + * * mintargetdistance: Minimum distance to the target before path returns, could be used to get near a target, but not right to it - for an AI mob with a gun, for example. + * * id: An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant + * * simulated_only: Whether we consider turfs without atmos simulation (AKA do we want to ignore space) + * * exclude: If we want to avoid a specific turf, like if we're a mulebot who already got blocked by some turf + * * skip_first: Whether or not to delete the first item in the path. This would be done because the first item is the starting tile, which can break movement for some creatures. + */ +/proc/get_path_to(caller, end, max_distance = 30, mintargetdist, id=null, simulated_only = TRUE, turf/exclude, skip_first=TRUE) + if(!caller || !get_turf(end)) + return + + var/l = SSpathfinder.mobs.getfree(caller) + while(!l) + stoplag(3) + l = SSpathfinder.mobs.getfree(caller) + + var/list/path + var/datum/pathfind/pathfind_datum = new(caller, end, id, max_distance, mintargetdist, simulated_only, exclude) + path = pathfind_datum.search() + qdel(pathfind_datum) + + SSpathfinder.mobs.found(l) + if(!path) + path = list() + if(length(path) > 0 && skip_first) + path.Cut(1,2) + return path + +/** + * A helper macro to see if it's possible to step from the first turf into the second one, minding things like door access and directional windows. + * Note that this can only be used inside the [datum/pathfind][pathfind datum] since it uses variables from said datum. + * If you really want to optimize things, optimize this, cuz this gets called a lot. + */ +#define CAN_STEP(cur_turf, next) (next && !next.density && cur_turf.Adjacent(next) && !(simulated_only && SSpathfinder.space_type_cache[next.type]) && !cur_turf.LinkBlockedWithAccess(next,caller, id) && (next != avoid)) +/// Another helper macro for JPS, for telling when a node has forced neighbors that need expanding +#define STEP_NOT_HERE_BUT_THERE(cur_turf, dirA, dirB) ((!CAN_STEP(cur_turf, get_step(cur_turf, dirA)) && CAN_STEP(cur_turf, get_step(cur_turf, dirB)))) + +/// The JPS Node datum represents a turf that we find interesting enough to add to the open list and possibly search for new tiles from +/datum/jps_node + /// The turf associated with this node + var/turf/tile + /// The node we just came from + var/datum/jps_node/previous_node + /// The A* node weight (f_value = number_of_tiles + heuristic) + var/f_value + /// The A* node heuristic (a rough estimate of how far we are from the goal) + var/heuristic + /// How many steps it's taken to get here from the start (currently pulling double duty as steps taken & cost to get here, since all moves incl diagonals cost 1 rn) + var/number_tiles + /// How many steps it took to get here from the last node + var/jumps + /// Nodes store the endgoal so they can process their heuristic without a reference to the pathfind datum + var/turf/node_goal + +/datum/jps_node/New(turf/our_tile, datum/jps_node/incoming_previous_node, jumps_taken, turf/incoming_goal) + tile = our_tile + jumps = jumps_taken + if(incoming_goal) // if we have the goal argument, this must be the first/starting node + node_goal = incoming_goal + else if(incoming_previous_node) // if we have the parent, this is from a direct lateral/diagonal scan, we can fill it all out now + previous_node = incoming_previous_node + number_tiles = previous_node.number_tiles + jumps + node_goal = previous_node.node_goal + heuristic = get_dist(tile, node_goal) + f_value = number_tiles + heuristic + // otherwise, no parent node means this is from a subscan lateral scan, so we just need the tile for now until we call [datum/jps/proc/update_parent] on it + +/datum/jps_node/Destroy(force, ...) + previous_node = null + return ..() + +/datum/jps_node/proc/update_parent(datum/jps_node/new_parent) + previous_node = new_parent + node_goal = previous_node.node_goal + jumps = get_dist(tile, previous_node.tile) + number_tiles = previous_node.number_tiles + jumps + heuristic = get_dist(tile, node_goal) + f_value = number_tiles + heuristic + +/// TODO: Macro this to reduce proc overhead +/proc/HeapPathWeightCompare(datum/jps_node/a, datum/jps_node/b) + return b.f_value - a.f_value + +/// The datum used to handle the JPS pathfinding, completely self-contained +/datum/pathfind + /// The thing that we're actually trying to path for + var/atom/movable/caller + /// The turf where we started at + var/turf/start + /// The turf we're trying to path to (note that this won't track a moving target) + var/turf/end + /// The open list/stack we pop nodes out from (TODO: make this a normal list and macro-ize the heap operations to reduce proc overhead) + var/datum/heap/open + ///An assoc list that serves as the closed list & tracks what turfs came from where. Key is the turf, and the value is what turf it came from + var/list/sources + /// The list we compile at the end if successful to pass back + var/list/path + + // general pathfinding vars/args + /// An ID card representing what access we have and what doors we can open. Its location relative to the pathing atom is irrelevant + var/obj/item/card/id/id + /// How far away we have to get to the end target before we can call it quits + var/mintargetdist = 0 + /// I don't know what this does vs , but they limit how far we can search before giving up on a path + var/max_distance = 30 + /// Space is big and empty, if this is TRUE then we ignore pathing through unsimulated tiles + var/simulated_only + /// A specific turf we're avoiding, like if a mulebot is being blocked by someone t-posing in a doorway we're trying to get through + var/turf/avoid + +/datum/pathfind/New(atom/movable/caller, atom/goal, id, max_distance, mintargetdist, simulated_only, avoid) + src.caller = caller + end = get_turf(goal) + open = new /datum/heap(/proc/HeapPathWeightCompare) + sources = new() + src.id = id + src.max_distance = max_distance + src.mintargetdist = mintargetdist + src.simulated_only = simulated_only + src.avoid = avoid + +/** + * search() is the proc you call to kick off and handle the actual pathfinding, and kills the pathfind datum instance when it's done. + * + * If a valid path was found, it's returned as a list. If invalid or cross-z-level params are entered, or if there's no valid path found, we + * return null, which [/proc/get_path_to] translates to an empty list (notable for simple bots, who need empty lists) + */ +/datum/pathfind/proc/search() + start = get_turf(caller) + if(!start || !end) + stack_trace("Invalid A* start or destination") + return + if(start.z != end.z || start == end ) //no pathfinding between z levels + return + if(max_distance && (max_distance < get_dist(start, end))) //if start turf is farther than max_distance from end turf, no need to do anything + return + + //initialization + var/datum/jps_node/current_processed_node = new (start, -1, 0, end) + open.insert(current_processed_node) + sources[start] = start // i'm sure this is fine + + //then run the main loop + while(!open.is_empty() && !path) + if(!caller) + return + current_processed_node = open.pop() //get the lower f_value turf in the open list + if(max_distance && (current_processed_node.number_tiles > max_distance))//if too many steps, don't process that path + continue + + var/turf/current_turf = current_processed_node.tile + for(var/scan_direction in list(EAST, WEST, NORTH, SOUTH)) + lateral_scan_spec(current_turf, scan_direction, current_processed_node) + + for(var/scan_direction in list(NORTHEAST, SOUTHEAST, NORTHWEST, SOUTHWEST)) + diag_scan_spec(current_turf, scan_direction, current_processed_node) + + CHECK_TICK + + //we're done! reverse the path to get it from start to finish + if(path) + for(var/i = 1 to round(0.5 * length(path))) + path.Swap(i, length(path) - i + 1) + + sources = null + qdel(open) + return path + +/// Called when we've hit the goal with the node that represents the last tile, then sets the path var to that path so it can be returned by [datum/pathfind/proc/search] +/datum/pathfind/proc/unwind_path(datum/jps_node/unwind_node) + path = new() + var/turf/iter_turf = unwind_node.tile + path.Add(iter_turf) + + while(unwind_node.previous_node) + var/dir_goal = get_dir(iter_turf, unwind_node.previous_node.tile) + for(var/i = 1 to unwind_node.jumps) + iter_turf = get_step(iter_turf,dir_goal) + path.Add(iter_turf) + unwind_node = unwind_node.previous_node + +/** + * For performing lateral scans from a given starting turf. + * + * These scans are called from both the main search loop, as well as subscans for diagonal scans, and they treat finding interesting turfs slightly differently. + * If we're doing a normal lateral scan, we already have a parent node supplied, so we just create the new node and immediately insert it into the heap, ezpz. + * If we're part of a subscan, we still need for the diagonal scan to generate a parent node, so we return a node datum with just the turf and let the diag scan + * proc handle transferring the values and inserting them into the heap. + * + * Arguments: + * * original_turf: What turf did we start this scan at? + * * heading: What direction are we going in? Obviously, should be cardinal + * * parent_node: Only given for normal lateral scans, if we don't have one, we're a diagonal subscan. +*/ +/datum/pathfind/proc/lateral_scan_spec(turf/original_turf, heading, datum/jps_node/parent_node) + var/steps_taken = 0 + + var/turf/current_turf = original_turf + var/turf/lag_turf = original_turf + + while(TRUE) + if(path) + return + lag_turf = current_turf + current_turf = get_step(current_turf, heading) + steps_taken++ + if(!CAN_STEP(lag_turf, current_turf)) + return + + if(current_turf == end || (mintargetdist && (get_dist(current_turf, end) <= mintargetdist))) + var/datum/jps_node/final_node = new(current_turf, parent_node, steps_taken) + sources[current_turf] = original_turf + if(parent_node) // if this is a direct lateral scan we can wrap up, if it's a subscan from a diag, we need to let the diag make their node first, then finish + unwind_path(final_node) + return final_node + else if(sources[current_turf]) // already visited, essentially in the closed list + return + else + sources[current_turf] = original_turf + + if(parent_node && parent_node.number_tiles + steps_taken > max_distance) + return + + var/interesting = FALSE // have we found a forced neighbor that would make us add this turf to the open list? + + switch(heading) + if(NORTH) + if(STEP_NOT_HERE_BUT_THERE(current_turf, WEST, NORTHWEST) || STEP_NOT_HERE_BUT_THERE(current_turf, EAST, NORTHEAST)) + interesting = TRUE + if(SOUTH) + if(STEP_NOT_HERE_BUT_THERE(current_turf, WEST, SOUTHWEST) || STEP_NOT_HERE_BUT_THERE(current_turf, EAST, SOUTHEAST)) + interesting = TRUE + if(EAST) + if(STEP_NOT_HERE_BUT_THERE(current_turf, NORTH, NORTHEAST) || STEP_NOT_HERE_BUT_THERE(current_turf, SOUTH, SOUTHEAST)) + interesting = TRUE + if(WEST) + if(STEP_NOT_HERE_BUT_THERE(current_turf, NORTH, NORTHWEST) || STEP_NOT_HERE_BUT_THERE(current_turf, SOUTH, SOUTHWEST)) + interesting = TRUE + + if(interesting) + var/datum/jps_node/newnode = new(current_turf, parent_node, steps_taken) + if(parent_node) // if we're a diagonal subscan, we'll handle adding ourselves to the heap in the diag + open.insert(newnode) + return newnode + +/** + * For performing diagonal scans from a given starting turf. + * + * Unlike lateral scans, these only are called from the main search loop, so we don't need to worry about returning anything, + * though we do need to handle the return values of our lateral subscans of course. + * + * Arguments: + * * original_turf: What turf did we start this scan at? + * * heading: What direction are we going in? Obviously, should be diagonal + * * parent_node: We should always have a parent node for diagonals +*/ +/datum/pathfind/proc/diag_scan_spec(turf/original_turf, heading, datum/jps_node/parent_node) + var/steps_taken = 0 + var/turf/current_turf = original_turf + var/turf/lag_turf = original_turf + + while(TRUE) + if(path) + return + lag_turf = current_turf + current_turf = get_step(current_turf, heading) + steps_taken++ + if(!CAN_STEP(lag_turf, current_turf)) + return + + if(current_turf == end || (mintargetdist && (get_dist(current_turf, end) <= mintargetdist))) + var/datum/jps_node/final_node = new(current_turf, parent_node, steps_taken) + sources[current_turf] = original_turf + unwind_path(final_node) + return + else if(sources[current_turf]) // already visited, essentially in the closed list + return + else + sources[current_turf] = original_turf + + if(parent_node.number_tiles + steps_taken > max_distance) + return + + var/interesting = FALSE // have we found a forced neighbor that would make us add this turf to the open list? + var/datum/jps_node/possible_child_node // otherwise, did one of our lateral subscans turn up something? + + switch(heading) + if(NORTHWEST) + if(STEP_NOT_HERE_BUT_THERE(current_turf, EAST, NORTHEAST) || STEP_NOT_HERE_BUT_THERE(current_turf, SOUTH, SOUTHWEST)) + interesting = TRUE + else + possible_child_node = (lateral_scan_spec(current_turf, WEST) || lateral_scan_spec(current_turf, NORTH)) + if(NORTHEAST) + if(STEP_NOT_HERE_BUT_THERE(current_turf, WEST, NORTHWEST) || STEP_NOT_HERE_BUT_THERE(current_turf, SOUTH, SOUTHEAST)) + interesting = TRUE + else + possible_child_node = (lateral_scan_spec(current_turf, EAST) || lateral_scan_spec(current_turf, NORTH)) + if(SOUTHWEST) + if(STEP_NOT_HERE_BUT_THERE(current_turf, EAST, SOUTHEAST) || STEP_NOT_HERE_BUT_THERE(current_turf, NORTH, NORTHWEST)) + interesting = TRUE + else + possible_child_node = (lateral_scan_spec(current_turf, SOUTH) || lateral_scan_spec(current_turf, WEST)) + if(SOUTHEAST) + if(STEP_NOT_HERE_BUT_THERE(current_turf, WEST, SOUTHWEST) || STEP_NOT_HERE_BUT_THERE(current_turf, NORTH, NORTHEAST)) + interesting = TRUE + else + possible_child_node = (lateral_scan_spec(current_turf, SOUTH) || lateral_scan_spec(current_turf, EAST)) + + if(interesting || possible_child_node) + var/datum/jps_node/newnode = new(current_turf, parent_node, steps_taken) + open.insert(newnode) + if(possible_child_node) + possible_child_node.update_parent(newnode) + open.insert(possible_child_node) + if(possible_child_node.tile == end || (mintargetdist && (get_dist(possible_child_node.tile, end) <= mintargetdist))) + unwind_path(possible_child_node) + return + +/** + * For seeing if we can actually move between 2 given turfs while accounting for our access and the caller's pass_flags + * + * Arguments: + * * caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach + * * ID: An ID card that decides if we can gain access to doors that would otherwise block a turf + * * simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space? +*/ +/turf/proc/LinkBlockedWithAccess(turf/destination_turf, caller, ID) + var/actual_dir = get_dir(src, destination_turf) + + for(var/obj/structure/window/iter_window in src) + if(!iter_window.CanAStarPass(ID, actual_dir)) + return TRUE + + for(var/obj/machinery/door/window/iter_windoor in src) + if(!iter_windoor.CanAStarPass(ID, actual_dir)) + return TRUE + + var/reverse_dir = get_dir(destination_turf, src) + for(var/obj/iter_object in destination_turf) + if(!iter_object.CanAStarPass(ID, reverse_dir, caller)) + return TRUE + + return FALSE + +#undef CAN_STEP +#undef STEP_NOT_HERE_BUT_THERE diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index bab286bafe..bfe09ba370 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -203,62 +203,62 @@ /mob/living/carbon/human/p_they(capitalized, temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_their(capitalized, temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_them(capitalized, temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_have(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_are(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_were(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_do(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_s(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_es(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((SLOT_W_UNIFORM in obscured) && skipface) + if((ITEM_SLOT_ICLOTHING in obscured) && skipface) temp_gender = PLURAL return ..() diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index b0719bfdfa..2f7dd7a64f 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -624,6 +624,10 @@ currrent_category = A.roundend_category previous_category = A result += A.roundend_report() +//ambition start + for(var/count in 1 to LAZYLEN(A.owner.ambitions)) + result += "
Ambition #[count]: [A.owner.ambitions[count]]" +//ambition end result += "

" CHECK_TICK diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 36de9d281b..3939fb94cc 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -412,25 +412,25 @@ /proc/slot2body_zone(slot) switch(slot) - if(SLOT_BACK, SLOT_WEAR_SUIT, SLOT_W_UNIFORM, SLOT_BELT, SLOT_WEAR_ID) + if(ITEM_SLOT_BACK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_ICLOTHING, ITEM_SLOT_BELT, ITEM_SLOT_ID) return BODY_ZONE_CHEST - if(SLOT_GLOVES, SLOT_HANDS, SLOT_HANDCUFFED) + if(ITEM_SLOT_GLOVES, ITEM_SLOT_HANDS, ITEM_SLOT_HANDCUFFED) return pick(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND) - if(SLOT_HEAD, SLOT_NECK, SLOT_NECK, SLOT_EARS) + if(ITEM_SLOT_HEAD, ITEM_SLOT_NECK, ITEM_SLOT_NECK, ITEM_SLOT_EARS) return BODY_ZONE_HEAD - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) return BODY_ZONE_PRECISE_MOUTH - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) return BODY_ZONE_PRECISE_EYES - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) return pick(BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT) - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) return pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) //adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/ @@ -652,31 +652,31 @@ /proc/slot_to_string(slot) switch(slot) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) return "Backpack" - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) return "Mask" - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) return "Hands" - if(SLOT_BELT) + if(ITEM_SLOT_BELT) return "Belt" - if(SLOT_EARS) + if(ITEM_SLOT_EARS) return "Ears" - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) return "Glasses" - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) return "Gloves" - if(SLOT_NECK) + if(ITEM_SLOT_NECK) return "Neck" - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return "Head" - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) return "Shoes" - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) return "Suit" - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) return "Uniform" - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) return "In backpack" /proc/tg_ui_icon_to_cit_ui(ui_style) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 1a8852a721..f931dc5e5c 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1600,7 +1600,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) if(!iscarbon(target)) return TRUE if(check_neck) - if(istype(target.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(istype(target.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) return FALSE if(check_blood) if(target.reagents.has_reagent(/datum/reagent/consumable/garlic)) diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index df3b6e5334..2dc77d3bcb 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -160,6 +160,7 @@ GLOBAL_LIST_INIT(bitfields, list( "HOLOGRAM_1" = HOLOGRAM_1, "SHOCKED_1" = SHOCKED_1, "INITIALIZED_1" = INITIALIZED_1, + "NO_SCREENTIPS_1" = NO_SCREENTIPS_1, "ADMIN_SPAWNED_1" = ADMIN_SPAWNED_1, "BLOCK_FACE_ATOM_1" = BLOCK_FACE_ATOM_1, "PREVENT_CONTENTS_EXPLOSION_1" = PREVENT_CONTENTS_EXPLOSION_1 diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 14969e6c92..921b512d32 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -16,6 +16,8 @@ GLOBAL_LIST_EMPTY(singularities) //list of all singularities on the stati GLOBAL_LIST_EMPTY(grounding_rods) //list of all grounding rods on the station GLOBAL_LIST(chemical_reactions_list) //list of all /datum/chemical_reaction datums. Used during chemical reactions +GLOBAL_LIST(drink_reactions_list) //list of all /datum/chemical_reaction datums where the output is of type /datum/reagent/consumable for bartender PDA +GLOBAL_LIST(normalized_chemical_reactions_list) //list of all /datum/chemical_reaction datums with actual sane indexing for chemistry PDA GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id. GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path. diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index 843eab6fb0..f445843364 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -11,6 +11,8 @@ GLOBAL_VAR(world_qdel_log) GLOBAL_PROTECT(world_qdel_log) GLOBAL_VAR(world_attack_log) GLOBAL_PROTECT(world_attack_log) +GLOBAL_VAR(world_victim_log) +GLOBAL_PROTECT(world_victim_log) // GLOBAL_VAR(world_econ_log) // GLOBAL_PROTECT(world_econ_log) GLOBAL_VAR(world_href_log) diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index bf7969a6ba..8a494a05b9 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -117,7 +117,7 @@ for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src - inv_slots[inv.slot_id] = inv + inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv inv.update_icon() /datum/hud/alien/persistent_inventory_update() diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm index 849936d4ed..a2cae89864 100644 --- a/code/_onclick/hud/drones.dm +++ b/code/_onclick/hud/drones.dm @@ -8,7 +8,7 @@ inv_box.icon_state = "suit_storage" // inv_box.icon_full = "template" inv_box.screen_loc = ui_drone_storage - inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE + inv_box.slot_id = ITEM_SLOT_DEX_STORAGE static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -17,13 +17,13 @@ inv_box.icon_state = "mask" // inv_box.icon_full = "template" inv_box.screen_loc = ui_drone_head - inv_box.slot_id = SLOT_HEAD + inv_box.slot_id = ITEM_SLOT_HEAD static_inventory += inv_box for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src - inv_slots[inv.slot_id] = inv + inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv inv.update_icon() diff --git a/code/_onclick/hud/generic_dextrous.dm b/code/_onclick/hud/generic_dextrous.dm index 88407bb04c..1762bee1fc 100644 --- a/code/_onclick/hud/generic_dextrous.dm +++ b/code/_onclick/hud/generic_dextrous.dm @@ -60,7 +60,7 @@ for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src - inv_slots[inv.slot_id] = inv + inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv inv.update_icon() /datum/hud/dextrous/persistent_inventory_update() diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm index 7f360b48dc..2af02d8437 100644 --- a/code/_onclick/hud/guardian.dm +++ b/code/_onclick/hud/guardian.dm @@ -43,7 +43,7 @@ inv_box.icon = ui_style inv_box.icon_state = "suit_storage" inv_box.screen_loc = ui_id - inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE + inv_box.slot_id = ITEM_SLOT_DEX_STORAGE static_inventory += inv_box using = new /atom/movable/screen/guardian/Communicate() diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index a5fe8f4ba8..fbd62f0565 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -53,6 +53,22 @@ GLOBAL_LIST_INIT(available_ui_styles, list( var/list/hand_slots // /atom/movable/screen/inventory/hand objects, assoc list of "[held_index]" = object var/list/atom/movable/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object + + ///UI for screentips that appear when you mouse over things + var/atom/movable/screen/screentip/screentip_text + + /// Whether or not screentips are enabled. + /// This is updated by the preference for cheaper reads than would be + /// had with a proc call, especially on one of the hottest procs in the + /// game (MouseEntered). + var/screentips_enabled = TRUE + + /// The color to use for the screentips. + /// This is updated by the preference for cheaper reads than would be + /// had with a proc call, especially on one of the hottest procs in the + /// game (MouseEntered). + var/screentip_color + var/atom/movable/screen/movable/action_button/hide_toggle/hide_actions_toggle var/action_buttons_hidden = FALSE @@ -83,6 +99,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list( plane_masters["[instance.plane]"] = instance instance.backdrop(mymob) + screentip_text = new(null, src) + static_inventory += screentip_text /datum/hud/Destroy() if(mymob.hud_used == src) @@ -117,6 +135,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list( QDEL_LIST(screenoverlays) mymob = null + QDEL_NULL(screentip_text) + return ..() diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 4fa2dd538a..5ed20f69e6 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -233,7 +233,7 @@ inv_box = new /atom/movable/screen/inventory() inv_box.name = "i_clothing" inv_box.icon = ui_style - inv_box.slot_id = SLOT_W_UNIFORM + inv_box.slot_id = ITEM_SLOT_ICLOTHING inv_box.icon_state = "uniform" inv_box.screen_loc = ui_iclothing toggleable_inventory += inv_box @@ -241,7 +241,7 @@ inv_box = new /atom/movable/screen/inventory() inv_box.name = "o_clothing" inv_box.icon = ui_style - inv_box.slot_id = SLOT_WEAR_SUIT + inv_box.slot_id = ITEM_SLOT_OCLOTHING inv_box.icon_state = "suit" inv_box.screen_loc = ui_oclothing toggleable_inventory += inv_box @@ -267,7 +267,7 @@ inv_box.icon = ui_style inv_box.icon_state = "id" inv_box.screen_loc = ui_id - inv_box.slot_id = SLOT_WEAR_ID + inv_box.slot_id = ITEM_SLOT_ID static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -275,7 +275,7 @@ inv_box.icon = ui_style inv_box.icon_state = "mask" inv_box.screen_loc = ui_mask - inv_box.slot_id = SLOT_WEAR_MASK + inv_box.slot_id = ITEM_SLOT_MASK toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -283,7 +283,7 @@ inv_box.icon = ui_style inv_box.icon_state = "neck" inv_box.screen_loc = ui_neck - inv_box.slot_id = SLOT_NECK + inv_box.slot_id = ITEM_SLOT_NECK toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -291,7 +291,7 @@ inv_box.icon = ui_style inv_box.icon_state = "back" inv_box.screen_loc = ui_back - inv_box.slot_id = SLOT_BACK + inv_box.slot_id = ITEM_SLOT_BACK static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -299,7 +299,7 @@ inv_box.icon = ui_style inv_box.icon_state = "pocket" inv_box.screen_loc = ui_storage1 - inv_box.slot_id = SLOT_L_STORE + inv_box.slot_id = ITEM_SLOT_LPOCKET static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -307,7 +307,7 @@ inv_box.icon = ui_style inv_box.icon_state = "pocket" inv_box.screen_loc = ui_storage2 - inv_box.slot_id = SLOT_R_STORE + inv_box.slot_id = ITEM_SLOT_RPOCKET static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -315,7 +315,7 @@ inv_box.icon = ui_style inv_box.icon_state = "suit_storage" inv_box.screen_loc = ui_sstore1 - inv_box.slot_id = SLOT_S_STORE + inv_box.slot_id = ITEM_SLOT_SUITSTORE static_inventory += inv_box using = new /atom/movable/screen/resist() @@ -348,7 +348,7 @@ inv_box.icon = ui_style inv_box.icon_state = "gloves" inv_box.screen_loc = ui_gloves - inv_box.slot_id = SLOT_GLOVES + inv_box.slot_id = ITEM_SLOT_GLOVES toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -356,7 +356,7 @@ inv_box.icon = ui_style inv_box.icon_state = "glasses" inv_box.screen_loc = ui_glasses - inv_box.slot_id = SLOT_GLASSES + inv_box.slot_id = ITEM_SLOT_EYES toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -364,7 +364,7 @@ inv_box.icon = ui_style inv_box.icon_state = "ears" inv_box.screen_loc = ui_ears - inv_box.slot_id = SLOT_EARS + inv_box.slot_id = ITEM_SLOT_EARS toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -372,7 +372,7 @@ inv_box.icon = ui_style inv_box.icon_state = "head" inv_box.screen_loc = ui_head - inv_box.slot_id = SLOT_HEAD + inv_box.slot_id = ITEM_SLOT_HEAD toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -380,7 +380,7 @@ inv_box.icon = ui_style inv_box.icon_state = "shoes" inv_box.screen_loc = ui_shoes - inv_box.slot_id = SLOT_SHOES + inv_box.slot_id = ITEM_SLOT_FEET toggleable_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -389,7 +389,7 @@ inv_box.icon_state = "belt" // inv_box.icon_full = "template_small" inv_box.screen_loc = ui_belt - inv_box.slot_id = SLOT_BELT + inv_box.slot_id = ITEM_SLOT_BELT static_inventory += inv_box throw_icon = new /atom/movable/screen/throw_catch() @@ -464,7 +464,7 @@ for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src - inv_slots[inv.slot_id] = inv + inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv inv.update_icon() update_locked_slots() diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 376db7bf96..b63f8241cb 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -50,7 +50,7 @@ inv_box.icon_state = "mask" // inv_box.icon_full = "template" inv_box.screen_loc = ui_monkey_mask - inv_box.slot_id = SLOT_WEAR_MASK + inv_box.slot_id = ITEM_SLOT_MASK static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -59,7 +59,7 @@ inv_box.icon_state = "neck" // inv_box.icon_full = "template" inv_box.screen_loc = ui_monkey_neck - inv_box.slot_id = SLOT_NECK + inv_box.slot_id = ITEM_SLOT_NECK static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -68,7 +68,7 @@ inv_box.icon_state = "head" // inv_box.icon_full = "template" inv_box.screen_loc = ui_monkey_head - inv_box.slot_id = SLOT_HEAD + inv_box.slot_id = ITEM_SLOT_HEAD static_inventory += inv_box inv_box = new /atom/movable/screen/inventory() @@ -76,7 +76,7 @@ inv_box.icon = ui_style inv_box.icon_state = "back" inv_box.screen_loc = ui_monkey_back - inv_box.slot_id = SLOT_BACK + inv_box.slot_id = ITEM_SLOT_BACK static_inventory += inv_box throw_icon = new /atom/movable/screen/throw_catch() @@ -126,7 +126,7 @@ for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory)) if(inv.slot_id) inv.hud = src - inv_slots[inv.slot_id] = inv + inv_slots[TOBITSHIFT(inv.slot_id) + 1] = inv inv.update_icon() /datum/hud/monkey/persistent_inventory_update() diff --git a/code/_onclick/hud/screentip.dm b/code/_onclick/hud/screentip.dm new file mode 100644 index 0000000000..43b728ade6 --- /dev/null +++ b/code/_onclick/hud/screentip.dm @@ -0,0 +1,19 @@ +/atom/movable/screen/screentip + icon = null + icon_state = null + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + screen_loc = "TOP,LEFT" + maptext_height = 480 + maptext_width = 480 + maptext = "" + +/atom/movable/screen/screentip/Initialize(mapload, _hud) + . = ..() + hud = _hud + update_view() + +/atom/movable/screen/screentip/proc/update_view(datum/source) + SIGNAL_HANDLER + if(!hud || !hud.mymob.client.view_size) //Might not have been initialized by now + return + maptext_width = getviewsize(hud.mymob.client.view_size.getView())[1] * world.icon_size diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index f8a14b8c30..ed0a9eb4ea 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -101,7 +101,7 @@ //stops TK grabs being equipped anywhere but into hands /obj/item/tk_grab/equipped(mob/user, slot) - if(slot == SLOT_HANDS) + if(slot == ITEM_SLOT_HANDS) return ..() qdel(src) diff --git a/code/_rendering/parallax/parallax_holder.dm b/code/_rendering/parallax/parallax_holder.dm index 8a9e4b71a9..cbe095c02b 100644 --- a/code/_rendering/parallax/parallax_holder.dm +++ b/code/_rendering/parallax/parallax_holder.dm @@ -174,7 +174,7 @@ L.SetView(C.view, TRUE) . |= L C.screen |= . - if(!secondary_map) + if(!secondary_map && (owner.prefs.parallax != PARALLAX_DISABLE)) var/atom/movable/screen/plane_master/parallax_white/PM = locate() in C.screen if(PM) PM.color = list( diff --git a/code/_rendering/parallax/types/space.dm b/code/_rendering/parallax/types/space.dm index 38ad62aede..1a6cf191cb 100644 --- a/code/_rendering/parallax/types/space.dm +++ b/code/_rendering/parallax/types/space.dm @@ -17,7 +17,7 @@ P.pixel_x = planet_offset_x P.pixel_y = planet_offset_y . += P - if(random_layer) + if(ispath(random_layer, /atom/movable/screen/parallax_layer)) . += new random_layer if(ispath(random_layer, /atom/movable/screen/parallax_layer/space/random/space_gas)) var/atom/movable/screen/parallax_layer/space/random/space_gas/SG = locate(random_layer) in objects diff --git a/code/controllers/configuration/entries/dynamic.dm b/code/controllers/configuration/entries/dynamic.dm index 935164352e..98203b7d8a 100644 --- a/code/controllers/configuration/entries/dynamic.dm +++ b/code/controllers/configuration/entries/dynamic.dm @@ -94,6 +94,10 @@ config_entry_value = 10 min_val = 0 +/datum/config_entry/keyed_list/dynamic_mode_days + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + /datum/config_entry/keyed_list/storyteller_weight key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_NUM diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 2fe020d544..9966f90ce7 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -349,3 +349,9 @@ /datum/config_entry/flag/dynamic_config_enabled /datum/config_entry/flag/station_name_needs_approval + +//ambition start +/datum/config_entry/number/max_ambitions // Maximum number of ambitions a mind can store. + config_entry_value = 5 +//ambition end + diff --git a/code/controllers/configuration/entries/logging.dm b/code/controllers/configuration/entries/logging.dm index 54bd5cb713..e9fe04f2d4 100644 --- a/code/controllers/configuration/entries/logging.dm +++ b/code/controllers/configuration/entries/logging.dm @@ -1,88 +1,119 @@ -/datum/config_entry/flag/log_ooc // log OOC channel +/// log OOC channel +/datum/config_entry/flag/log_ooc config_entry_value = TRUE -/datum/config_entry/flag/log_access // log login/logout +/// log login/logout +/datum/config_entry/flag/log_access config_entry_value = TRUE /// Config entry which special logging of failed logins under suspicious circumstances. /datum/config_entry/flag/log_suspicious_login config_entry_value = TRUE -/datum/config_entry/flag/log_say // log client say +/// log client say +/datum/config_entry/flag/log_say config_entry_value = TRUE -/datum/config_entry/flag/log_admin // log admin actions +/// log admin actions +/datum/config_entry/flag/log_admin protection = CONFIG_ENTRY_LOCKED config_entry_value = TRUE -/datum/config_entry/flag/log_prayer // log prayers +/// log prayers +/datum/config_entry/flag/log_prayer config_entry_value = TRUE -/datum/config_entry/flag/log_law // log lawchanges +/// log lawchanges +/datum/config_entry/flag/log_law config_entry_value = TRUE -/datum/config_entry/flag/log_game // log game events +/// log game events +/datum/config_entry/flag/log_game config_entry_value = TRUE -/datum/config_entry/flag/log_virus // log virology data +/// log virology data +/datum/config_entry/flag/log_virus config_entry_value = TRUE -/datum/config_entry/flag/log_vote // log voting +/// log voting +/datum/config_entry/flag/log_vote config_entry_value = TRUE -/datum/config_entry/flag/log_craft // log crafting +/// log crafting +/datum/config_entry/flag/log_craft config_entry_value = TRUE -/datum/config_entry/flag/log_whisper // log client whisper +/// log client whisper +/datum/config_entry/flag/log_whisper config_entry_value = TRUE -/datum/config_entry/flag/log_attack // log attack messages +/// log attack messages +/datum/config_entry/flag/log_attack config_entry_value = TRUE -/datum/config_entry/flag/log_emote // log emotes +/// log attack messages +/datum/config_entry/flag/log_victim config_entry_value = TRUE -/datum/config_entry/flag/log_adminchat // log admin chat messages +/// log emotes +/datum/config_entry/flag/log_emote + config_entry_value = TRUE + +/// log admin chat messages +/datum/config_entry/flag/log_adminchat protection = CONFIG_ENTRY_LOCKED -/datum/config_entry/flag/log_shuttle // log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console +/// log shuttle related actions, ie shuttle computers, shuttle manipulator, emergency console +/datum/config_entry/flag/log_shuttle config_entry_value = TRUE -/datum/config_entry/flag/log_pda // log pda messages +/// log pda messages +/datum/config_entry/flag/log_pda config_entry_value = TRUE -/datum/config_entry/flag/log_telecomms // log telecomms messages +/// log telecomms messages +/datum/config_entry/flag/log_telecomms config_entry_value = TRUE -/datum/config_entry/flag/log_twitter // log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. +/// log certain expliotable parrots and other such fun things in a JSON file of twitter valid phrases. +/datum/config_entry/flag/log_twitter config_entry_value = TRUE -/datum/config_entry/flag/log_world_topic // log all world.Topic() calls +/// log all world.Topic() calls +/datum/config_entry/flag/log_world_topic config_entry_value = TRUE -/datum/config_entry/flag/log_manifest // log crew manifest to seperate file +/// log crew manifest to seperate file +/datum/config_entry/flag/log_manifest config_entry_value = TRUE -/datum/config_entry/flag/log_job_debug // log roundstart divide occupations debug information to a file +/// log roundstart divide occupations debug information to a file +/datum/config_entry/flag/log_job_debug config_entry_value = TRUE +/// log photos taken by players with a camera /datum/config_entry/flag/log_pictures +/// This is... shitcode, literally same as above, if one of them is inactive, won't log at all, PLEASE FUCKING REMOVE THIS. /datum/config_entry/flag/picture_logging_camera /// forces log_href for tgui /datum/config_entry/flag/emergency_tgui_logging config_entry_value = FALSE -/datum/config_entry/number/error_cooldown // The "cooldown" time for each occurrence of a unique error +/// The "cooldown" time for each occurrence of a unique error +/datum/config_entry/number/error_cooldown config_entry_value = 600 min_val = 0 -/datum/config_entry/number/error_limit // How many occurrences before the next will silence them +/// How many occurrences before the next will silence them +/datum/config_entry/number/error_limit config_entry_value = 50 -/datum/config_entry/number/error_silence_time // How long a unique error will be silenced for +/// How long a unique error will be silenced for +/datum/config_entry/number/error_silence_time config_entry_value = 6000 -/datum/config_entry/number/error_msg_delay // How long to wait between messaging admins about occurrences of a unique error +/// How long to wait between messaging admins about occurrences of a unique error +/datum/config_entry/number/error_msg_delay config_entry_value = 50 diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 7329dd653f..3bab2bfdf3 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -396,12 +396,15 @@ SUBSYSTEM_DEF(air) */ /datum/controller/subsystem/air/proc/run_delay_heuristics() - if(!equalize_enabled) - cost_equalize = 0 - if(should_do_equalization) - eq_cooldown-- - if(eq_cooldown <= 0) - equalize_enabled = TRUE + if(should_do_equalization) + if(!equalize_enabled) + cost_equalize = 0 + if(should_do_equalization) + eq_cooldown-- + if(eq_cooldown <= 0) + equalize_enabled = TRUE + else + equalize_enabled = FALSE var/total_thread_time = cost_turfs + cost_equalize + cost_groups + cost_post_process if(total_thread_time) var/wait_ms = wait * 100 diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 797ad92dd1..6258ecf03f 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -500,7 +500,7 @@ SUBSYSTEM_DEF(job) tcg_cards = N.client.prefs.tcg_cards if(tcg_cards) var/obj/item/tcgcard_binder/binder = new(get_turf(H)) - H.equip_to_slot_if_possible(binder, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE) + H.equip_to_slot_if_possible(binder, ITEM_SLOT_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE) for(var/card_type in N.client.prefs.tcg_cards) if(card_type) if(islist(H.client.prefs.tcg_cards[card_type])) @@ -710,9 +710,9 @@ SUBSYSTEM_DEF(job) permitted = FALSE if(G.donoritem && !G.donator_ckey_check(the_mob.client.ckey)) permitted = FALSE - if(!equipbackpackstuff && G.slot == SLOT_IN_BACKPACK)//snowflake check since plopping stuff in the backpack doesnt work for pre-job equip loadout stuffs + if(!equipbackpackstuff && G.slot == ITEM_SLOT_BACKPACK)//snowflake check since plopping stuff in the backpack doesnt work for pre-job equip loadout stuffs permitted = FALSE - if(equipbackpackstuff && G.slot != SLOT_IN_BACKPACK)//ditto + if(equipbackpackstuff && G.slot != ITEM_SLOT_BACKPACK)//ditto permitted = FALSE if(!permitted) continue @@ -749,7 +749,7 @@ SUBSYSTEM_DEF(job) I.forceMove(get_turf(C)) else qdel(I) - else if(!M.equip_to_slot_if_possible(I, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // Otherwise, try to put it in the backpack + else if(!M.equip_to_slot_if_possible(I, ITEM_SLOT_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // Otherwise, try to put it in the backpack if(can_drop) I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob. else diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 868351a833..772d7f7b8d 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -32,6 +32,8 @@ SUBSYSTEM_DEF(vote) var/list/stored_modetier_results = list() // The aggregated tier list of the modes available in secret. + var/transfer_votes_done = 0 + /datum/controller/subsystem/vote/fire() //called by master_controller if(mode) if(end_time < world.time) @@ -248,8 +250,18 @@ SUBSYSTEM_DEF(vote) if(vote_system == SCORE_VOTING) calculate_scores(vote_title_text) if(vote_system == HIGHEST_MEDIAN_VOTING) - calculate_highest_median(vote_title_text) // nothing uses this at the moment - var/list/winners = vote_system == INSTANT_RUNOFF_VOTING ? get_runoff_results() : get_result() + calculate_highest_median(vote_title_text) + var/list/winners = list() + if(mode == "transfer") + var/amount_required = 3 + transfer_votes_done + transfer_votes_done += 1 + text += "\nExtending requires at least [amount_required] votes to win." + if(choices[VOTE_CONTINUE] < amount_required || choices[VOTE_TRANSFER] >= choices[VOTE_CONTINUE]) + winners = list(VOTE_TRANSFER) + else + winners = list(VOTE_CONTINUE) + else + winners = vote_system == INSTANT_RUNOFF_VOTING ? get_runoff_results() : get_result() var/was_roundtype_vote = mode == "roundtype" || mode == "dynamic" if(winners.len > 0) if(was_roundtype_vote) @@ -305,7 +317,7 @@ SUBSYSTEM_DEF(vote) if(vote_system == SCHULZE_VOTING) admintext += "\nIt should be noted that this is not a raw tally of votes (impossible in ranked choice) but the score determined by the schulze method of voting, so the numbers will look weird!" else if(vote_system == HIGHEST_MEDIAN_VOTING) - admintext += "\nIt should be noted that this is not a raw tally of votes but the number of runoffs done by majority judgement!" + admintext += "\nIt should be noted that this is not a raw tally of votes but rather the median score plus a tiebreaker!" for(var/i=1,i<=choices.len,i++) var/votes = choices[choices[i]] admintext += "\n[choices[i]]: [votes]" @@ -339,7 +351,7 @@ SUBSYSTEM_DEF(vote) if(SSmapping.changemap(config.maplist[.])) to_chat(world, "The map vote has chosen [VM.map_name] for next round!") if("transfer") // austation begin -- Crew autotransfer vote - if(. == "Initiate Crew Transfer") + if(. == VOTE_TRANSFER) SSshuttle.autoEnd() var/obj/machinery/computer/communications/C = locate() in GLOB.machines if(C) @@ -446,7 +458,7 @@ SUBSYSTEM_DEF(vote) continue choices |= M if("transfer") // austation begin -- Crew autotranfer vote - choices.Add("Initiate Crew Transfer","Continue Playing") // austation end + choices.Add(VOTE_TRANSFER,VOTE_CONTINUE) // austation end if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote choices.Add("dynamic", "extended") if("custom") diff --git a/code/datums/action.dm b/code/datums/action.dm index 1a8ea7a60f..ac8c909bd2 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -516,7 +516,7 @@ H.attack_self(owner) return var/obj/item/I = target - if(owner.can_equip(I, SLOT_HANDS)) + if(owner.can_equip(I, ITEM_SLOT_HANDS)) owner.temporarilyRemoveItemFromInventory(I) owner.put_in_hands(I) I.attack_self(owner) diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index 638be08717..840c202bfc 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -29,7 +29,7 @@ expire = _expire /datum/component/anti_magic/proc/on_equip(datum/source, mob/equipper, slot) - if(!(allowed_slots & slotdefine2slotbit(slot))) //Check that the slot is valid for antimagic + if(!(allowed_slots & slot)) //Check that the slot is valid for antimagic UnregisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC) return RegisterSignal(equipper, COMSIG_MOB_RECEIVE_MAGIC, .proc/protect, TRUE) diff --git a/code/datums/components/phantomthief.dm b/code/datums/components/phantomthief.dm index 6b7e7221c3..a73754d04a 100644 --- a/code/datums/components/phantomthief.dm +++ b/code/datums/components/phantomthief.dm @@ -9,7 +9,7 @@ var/filter_size var/filter_color -/datum/component/wearertargeting/phantomthief/Initialize(_x = -2, _y = 0, _size = 0, _color = "#E62111", list/_valid_slots = list(SLOT_GLASSES)) +/datum/component/wearertargeting/phantomthief/Initialize(_x = -2, _y = 0, _size = 0, _color = "#E62111", list/_valid_slots = list(ITEM_SLOT_EYES)) . = ..() if(. == COMPONENT_INCOMPATIBLE) return diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm index 3cf70e80ef..79a84427f4 100644 --- a/code/datums/components/shielded.dm +++ b/code/datums/components/shielded.dm @@ -108,7 +108,7 @@ SSvis_overlays.add_vis_overlay(holder, 'icons/effects/effects.dmi', to_add, layer, GAME_PLANE, holder.dir) /datum/component/shielded/proc/on_equip(obj/item/source, mob/living/equipper, slot) - if(!(accepted_slots & slotdefine2slotbit(slot))) + if(!(accepted_slots & slot)) return holder = equipper RegisterSignal(parent, COMSIG_ITEM_RUN_BLOCK, .proc/on_run_block) diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index bcbf979101..f451241fb4 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -89,7 +89,7 @@ /// Triggered on equip of the item containing the component /datum/component/two_handed/proc/on_equip(datum/source, mob/user, slot) - if(require_twohands && slot == SLOT_HANDS) // force equip the item + if(require_twohands && slot == ITEM_SLOT_HANDS) // force equip the item wield(user) if(!user.is_holding(parent) && wielded && !require_twohands) unwield(user) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 5f9bf37040..2cc72f7ca9 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -235,6 +235,7 @@ else return returned + /** * Callback called by a timer to end an associative-list-indexed cooldown. * diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index b4e53a7425..d6c11ab452 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -75,8 +75,8 @@ if(isobj(H.wear_suit)) Cl = H.wear_suit passed = prob((Cl.permeability_coefficient*100) - 1) - if(passed && isobj(SLOT_W_UNIFORM)) - Cl = SLOT_W_UNIFORM + if(passed && isobj(ITEM_SLOT_ICLOTHING)) + Cl = ITEM_SLOT_ICLOTHING passed = prob((Cl.permeability_coefficient*100) - 1) if(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index e769f466b9..0440fb231d 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -61,19 +61,19 @@ STI KALY - blind if(!istype(H.head, /obj/item/clothing/head/wizard)) if(!H.dropItemToGround(H.head)) qdel(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), ITEM_SLOT_HEAD) return if(prob(chance)) if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe)) if(!H.dropItemToGround(H.wear_suit)) qdel(H.wear_suit) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), SLOT_WEAR_SUIT) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), ITEM_SLOT_OCLOTHING) return if(prob(chance)) if(!istype(H.shoes, /obj/item/clothing/shoes/sandal/magic)) if(!H.dropItemToGround(H.shoes)) qdel(H.shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), SLOT_SHOES) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), ITEM_SLOT_FEET) return else var/mob/living/carbon/H = affected_mob diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm index 1c74777845..2ceb261622 100644 --- a/code/datums/elements/earhealing.dm +++ b/code/datums/elements/earhealing.dm @@ -19,7 +19,7 @@ user_by_item -= target /datum/element/earhealing/proc/equippedChanged(datum/source, mob/living/carbon/user, slot) - if(slot == SLOT_EARS && istype(user)) + if(slot == ITEM_SLOT_EARS && istype(user)) user_by_item[source] = user else user_by_item -= source diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 5e888e0609..2649a8ee6f 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -144,7 +144,7 @@ return TRUE /datum/element/polychromic/proc/grant_user_action(atom/source, mob/user, slot) - if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED || slot == SLOT_HANDCUFFED || slot == SLOT_GENERC_DEXTROUS_STORAGE) + if(slot == ITEM_SLOT_BACKPACK || slot == ITEM_SLOT_LEGCUFFED || slot == ITEM_SLOT_HANDCUFFED || slot == ITEM_SLOT_DEX_STORAGE) return var/datum/action/polychromic/P = actions_by_atom[source] if(!P) diff --git a/code/datums/elements/spellcasting.dm b/code/datums/elements/spellcasting.dm index 877bcdbcd3..676168ea49 100644 --- a/code/datums/elements/spellcasting.dm +++ b/code/datums/elements/spellcasting.dm @@ -34,7 +34,7 @@ stacked_spellcasting_by_user -= target /datum/element/spellcasting/proc/on_equip(datum/source, mob/equipper, slot) - if(!(cast_slots & slotdefine2slotbit(slot))) + if(!(cast_slots & slot)) return users_by_item[source] = equipper if(!stacked_spellcasting_by_user[equipper]) diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 4682595aec..5b6c0e222d 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -59,7 +59,7 @@ /obj/item/clothing/gloves/boxing/equipped(mob/user, slot) . = ..() - if(ishuman(user) && slot == SLOT_GLOVES) + if(ishuman(user) && slot == ITEM_SLOT_GLOVES) var/mob/living/carbon/human/H = user style.teach(H,TRUE) @@ -68,5 +68,5 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(SLOT_GLOVES) == src) + if(H.get_item_by_slot(ITEM_SLOT_GLOVES) == src) style.remove(H) diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 3691b2fccc..f8ed72eae8 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -197,7 +197,7 @@ /obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot) . = ..() - if(ishuman(user) && slot == SLOT_GLOVES) + if(ishuman(user) && slot == ITEM_SLOT_GLOVES) var/mob/living/carbon/human/H = user style.teach(H,1) @@ -206,7 +206,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(SLOT_GLOVES) == src) + if(H.get_item_by_slot(ITEM_SLOT_GLOVES) == src) style.remove(H) /obj/item/clothing/gloves/krav_maga/sec//more obviously named, given to sec diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 8dc1afba81..466bf5c778 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -485,7 +485,7 @@ /obj/item/storage/belt/champion/wrestling/equipped(mob/user, slot) . = ..() - if(ishuman(user) && slot == SLOT_BELT) + if(ishuman(user) && slot == ITEM_SLOT_BELT) var/mob/living/carbon/human/H = user style.teach(H,1) @@ -494,7 +494,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(SLOT_BELT) == src) + if(H.get_item_by_slot(ITEM_SLOT_BELT) == src) style.remove(H) //Subtype of wrestling, reserved for the wrestling belts found in the holodeck diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 72b9d91b9d..7a051f999d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -29,6 +29,12 @@ */ +//ambition start +#define AMBITION_COOLDOWN_TIME (5 SECONDS) +#define OBJECTIVES_COOLDOWN_TIME (2 SECONDS) +#define ADMIN_PING_COOLDOWN_TIME (10 MINUTES) +//ambition end + /datum/mind var/key var/name //replaces mob/var/original_name @@ -68,6 +74,11 @@ /// Our skill holder. var/datum/skill_holder/skill_holder +//ambition start + /// Lazy list for antagonists to set goals they wish to achieve, to be shown at the round-end report. + var/list/ambitions +//ambition end + ///What character we spawned in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not var/mob/original_character @@ -175,7 +186,9 @@ qdel(A) return A.owner = src - LAZYADD(antag_datums, A) +//ambition start + do_add_antag_datum(A) +//ambition end A.create_team(team) var/datum/team/antag_team = A.get_team() if(antag_team) @@ -183,6 +196,14 @@ A.on_gain() return A +//ambition start +/datum/mind/proc/do_add_antag_datum(instanced_datum) + . = LAZYLEN(antag_datums) + LAZYADD(antag_datums, instanced_datum) + if(!.) + add_verb(current, /mob/proc/edit_objectives_and_ambitions) +//ambition end + /datum/mind/proc/remove_antag_datum(datum_type) if(!datum_type) return @@ -191,6 +212,14 @@ A.on_removal() return TRUE +//ambition start +/datum/mind/proc/do_remove_antag_datum(instanced_datum) + . = LAZYLEN(antag_datums) + LAZYREMOVE(antag_datums, instanced_datum) + if(. && !LAZYLEN(antag_datums)) + ambitions = null + remove_verb(current, /mob/proc/edit_objectives_and_ambitions) +//ambition end /datum/mind/proc/remove_all_antag_datums() //For the Lazy amongst us. for(var/a in antag_datums) @@ -379,10 +408,10 @@ message_admins("[ADMIN_LOOKUPFLW(current)] has been created by [ADMIN_LOOKUPFLW(creator)], an antagonist.") to_chat(current, "Despite your creators current allegiances, your true master remains [creator.real_name]. If their loyalties change, so do yours. This will never change unless your creator's body is destroyed.") -/datum/mind/proc/show_memory(mob/recipient, window=1) - if(!recipient) - recipient = current - var/output = "[current.real_name]'s Memories:
" +//ambition start +/datum/mind/proc/show_memory() + var/list/output = list("[current.real_name]'s Memories:
") +//ambition end output += memory @@ -403,16 +432,910 @@ output += "
  • Conspirator: [M.name]
  • " output += "" - if(window) - recipient << browse(output,"window=memory") - else if(all_objectives.len || memory) - to_chat(recipient, "[output]") +//ambition port start + if(LAZYLEN(ambitions)) + for(var/count in 1 to LAZYLEN(ambitions)) + output += "
    Ambition #[count]: [ambitions[count]]" + + if(!memory && !length(all_objectives) && !LAZYLEN(ambitions)) + output += "" + + return output.Join() + + +/datum/mind/proc/show_editable_objectives_and_ambitions() + var/is_admin = check_rights(R_ADMIN, FALSE) + var/self_mind = usr == current + if(!is_admin && !self_mind) + return "" + var/list/output = list() + for(var/a in antag_datums) + var/datum/antagonist/antag_datum = a + output += "Objectives:" + if(is_admin) + output += " Add Objective" + output += "" + if(is_admin) + output += "Announce objectives
    " + output += "
    Requested Objective Changes:" + if(self_mind) + output += " Request objective" + output += "
    " + else + for(var/uid in antag_datum.requested_objective_changes) + var/list/objectives_info = antag_datum.requested_objective_changes[uid] + var/obj_request = objectives_info["request"] + switch(obj_request) + if(REQUEST_NEW_OBJECTIVE) + var/datum/objective/type_cast_objective = objectives_info["target"] + var/objective_text = objectives_info["text"] + output += "
  • Request #[uid]: ADD [initial(type_cast_objective.name)] - [objective_text]" + if(self_mind) + output += " Cancel Request" + if(is_admin) + output += " Accept Edit Deny" + if(REQUEST_DEL_OBJECTIVE) + var/datum/objective/objective_ref = locate(objectives_info["target"]) in antag_datum.objectives + if(QDELETED(objective_ref)) + stack_trace("Objective request found with deleted reference. UID: [uid] | Antag: [antag_datum] | Mind: [src] | User: [usr]") + antag_datum.remove_objective_change(uid) + continue + output += "
  • Request #[uid]: DEL [objective_ref.name] - [objective_ref.explanation_text] - [objectives_info["text"]]" + if(self_mind) + output += " Cancel Request" + if(is_admin) + output += " Accept Deny" + if(REQUEST_WIN_OBJECTIVE, REQUEST_LOSE_OBJECTIVE) + var/datum/objective/objective_ref = locate(objectives_info["target"]) in antag_datum.objectives + if(QDELETED(objective_ref)) + stack_trace("Objective request found with deleted reference. UID: [uid] | Antag: [antag_datum] | Mind: [src] | User: [usr]") + antag_datum.remove_objective_change(uid) + continue + output += "
  • Request #[uid]: [obj_request == REQUEST_WIN_OBJECTIVE ? "WIN" : "LOSE"] [objective_ref.name] - [objective_ref.explanation_text] - [objectives_info["text"]]" + if(self_mind) + output += " Cancel Request" + if(is_admin) + output += " Accept Deny" + else + stack_trace("Objective request found with no request index. UID: [uid] | Antag: [antag_datum] | Mind: [src] | User: [usr]") + continue + output += "
    " + if(self_mind) + output += "Ping the admins
    " + if(is_admin) + output += "Clear ping cooldown
    " + output += "
    [current.real_name]'s Ambitions:" + if(LAZYLEN(ambitions) < CONFIG_GET(number/max_ambitions)) + output += " Add Ambition" + output += "
      " + if(!LAZYLEN(ambitions)) + output += "
    • NONE" + else + for(var/count in 1 to LAZYLEN(ambitions)) + output += "
    • Ambition #[count] (Edit) (Remove):
      [ambitions[count]]" + output += "

    (Refresh)" + return output.Join() + + +/mob/proc/edit_objectives_and_ambitions() + set name = "Objectives and Ambitions" + set category = "IC" + set desc = "View and edit your character's objectives and ambitions." + mind.do_edit_objectives_ambitions() + + +/datum/mind/proc/do_edit_objectives_ambitions() + var/datum/browser/popup = new(usr, "objectives and ambitions", "Objectives and Ambitions") + popup.set_content(show_editable_objectives_and_ambitions()) + popup.open() + + +GLOBAL_VAR_INIT(requested_objective_uid, 0) + + +GLOBAL_LIST(objective_player_choices) + +/proc/populate_objective_player_choices() + GLOB.objective_player_choices = list() + var/list/allowed_types = list( + /datum/objective/custom, + /datum/objective/assassinate/once, + /datum/objective/protect, + /datum/objective/escape, + /datum/objective/survive, + /datum/objective/martyr, + /datum/objective/steal, + /datum/objective/download, + ) + + for(var/t in allowed_types) + var/datum/objective/type_cast = t + GLOB.objective_player_choices[initial(type_cast.name)] = t + + +GLOBAL_LIST(objective_choices) + +/proc/populate_objective_choices() + GLOB.objective_choices = list() + var/list/allowed_types = list( + /datum/objective/custom, + /datum/objective/assassinate, + /datum/objective/assassinate/once, + /datum/objective/maroon, + /datum/objective/debrain, + /datum/objective/protect, + /datum/objective/destroy, + /datum/objective/hijack, + /datum/objective/escape, + /datum/objective/survive, + /datum/objective/martyr, + /datum/objective/steal, + /datum/objective/download, + /datum/objective/nuclear, + /datum/objective/absorb, + ) + + for(var/t in allowed_types) + var/datum/objective/type_cast = t + GLOB.objective_choices[initial(type_cast.name)] = t + + +/datum/mind/proc/on_objectives_request_cd_end(datum/source) + UnregisterSignal(src, list(COMSIG_CD_STOP(COOLDOWN_OBJ_ADMIN_PING), COMSIG_CD_RESET(COOLDOWN_OBJ_ADMIN_PING))) + if(!antag_datums) + return + to_chat(current, "You are now again able to ping the admins objective changes review requests.") + for(var/a in antag_datums) + var/datum/antagonist/antag_datum = a + if(!antag_datum.requested_objective_changes) + continue + to_chat(current, "You seem to have unanswered change requests. If there are online admins another gentle reminder might be in order.") + break +//ambition port end /datum/mind/Topic(href, href_list) +//ambition start + + if (href_list["refresh_obj_amb"]) + do_edit_objectives_ambitions() + return + + else if (href_list["add_ambition"]) + if(!check_rights(R_ADMIN, FALSE)) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_AMBITION)) + to_chat(usr, "You must wait [AMBITION_COOLDOWN_TIME * 0.1] seconds between changes.") + return + if(!isliving(current)) + return + if(!antag_datums) + return + var/max_ambitions = CONFIG_GET(number/max_ambitions) + if(LAZYLEN(ambitions) >= max_ambitions) + to_chat(usr, "There's a limit of [max_ambitions] ambitions. Edit or remove some to accomodate for your new additions.") + do_edit_objectives_ambitions() + return + var/new_ambition = stripped_multiline_input(usr, "Write new ambition", "Ambition", "", MAX_AMBITION_LEN) + if(isnull(new_ambition)) + return + if(!check_rights(R_ADMIN, FALSE)) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_AMBITION)) + to_chat(usr, "You must wait [AMBITION_COOLDOWN_TIME * 0.1] seconds between changes.") + return + if(!isliving(current)) + to_chat(usr, "The mind holder is no longer a living creature.") + return + if(!antag_datums) + to_chat(usr, "The mind holder is no longer an antagonist.") + return + if(LAZYLEN(ambitions) >= max_ambitions) + to_chat(usr, "There's a limit of [max_ambitions] ambitions. Edit or remove some to accomodate for your new additions.") + do_edit_objectives_ambitions() + return + TIMER_COOLDOWN_START(src, COOLDOWN_AMBITION, AMBITION_COOLDOWN_TIME) + LAZYADD(ambitions, new_ambition) + if(usr == current) + log_game("[key_name(usr)] has created their ambition of index [LAZYLEN(ambitions)].\nNEW AMBITION:\n[new_ambition]") + else + log_game("[key_name(usr)] has created [key_name(current)]'s ambition of index [LAZYLEN(ambitions)].\nNEW AMBITION:\n[new_ambition]") + message_admins("[ADMIN_TPMONTY(usr)] has created [ADMIN_TPMONTY(current)]'s ambition of index [LAZYLEN(ambitions)].") + do_edit_objectives_ambitions() + return + + else if (href_list["edit_ambition"]) + if(!check_rights(R_ADMIN, FALSE)) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_AMBITION)) + to_chat(usr, "You must wait [AMBITION_COOLDOWN_TIME * 0.1] seconds between changes.") + return + if(!isliving(current)) + return + if(!antag_datums) + return + var/ambition_index = text2num(href_list["edit_ambition"]) + if(!isnum(ambition_index) || ambition_index < 0 || ambition_index % 1) + log_admin_private("[key_name(usr)] attempted to edit their ambitions with and invalid ambition_index ([ambition_index]) at [AREACOORD(usr.loc)].") + message_admins("[ADMIN_TPMONTY(usr)] attempted to edit their ambitions with and invalid ambition_index ([ambition_index]). Possible HREF exploit.") + return + if(ambition_index > LAZYLEN(ambitions)) + return + var/old_ambition = ambitions[ambition_index] + var/new_ambition = stripped_multiline_input(usr, "Write new ambition", "Ambition", ambitions[ambition_index], MAX_AMBITION_LEN) + if(isnull(new_ambition)) + return + if(!check_rights(R_ADMIN, FALSE)) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_AMBITION)) + to_chat(usr, "You must wait [AMBITION_COOLDOWN_TIME * 0.1] seconds between changes.") + return + if(!isliving(current)) + to_chat(usr, "The mind holder is no longer a living creature.") + return + if(!antag_datums) + to_chat(usr, "The mind holder is no longer an antagonist.") + return + if(ambition_index > LAZYLEN(ambitions)) + to_chat(usr, "The ambition we were editing was deleted before we finished. Aborting.") + do_edit_objectives_ambitions() + return + if(old_ambition != ambitions[ambition_index]) + to_chat(usr, "The ambition has changed since we started editing it. Aborting to prevent data loss.") + do_edit_objectives_ambitions() + return + TIMER_COOLDOWN_START(src, COOLDOWN_AMBITION, AMBITION_COOLDOWN_TIME) + ambitions[ambition_index] = new_ambition + if(usr == current) + log_game("[key_name(usr)] has edited their ambition of index [ambition_index].\nOLD AMBITION:\n[old_ambition]\nNEW AMBITION:\n[new_ambition]") + else + log_game("[key_name(usr)] has edited [key_name(current)]'s ambition of index [ambition_index].\nOLD AMBITION:\n[old_ambition]\nNEW AMBITION:\n[new_ambition]") + message_admins("[ADMIN_TPMONTY(usr)] has edited [ADMIN_TPMONTY(current)]'s ambition of index [ambition_index].") + do_edit_objectives_ambitions() + return + + else if (href_list["remove_ambition"]) + if(!check_rights(R_ADMIN, FALSE)) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_AMBITION)) + to_chat(usr, "You must wait [AMBITION_COOLDOWN_TIME * 0.1] seconds between changes.") + return + if(!isliving(current)) + return + if(!antag_datums) + return + var/ambition_index = text2num(href_list["remove_ambition"]) + if(ambition_index > LAZYLEN(ambitions)) + do_edit_objectives_ambitions() + return + if(!isnum(ambition_index) || ambition_index < 0 || ambition_index % 1) + log_admin_private("[key_name(usr)] attempted to remove an ambition with and invalid ambition_index ([ambition_index]) at [AREACOORD(usr.loc)].") + message_admins("[ADMIN_TPMONTY(usr)] attempted to remove an ambition with and invalid ambition_index ([ambition_index]). Possible HREF exploit.") + return + var/old_ambition = ambitions[ambition_index] + if(alert(usr, "Are you sure you want to delete this ambition?", "Delete ambition", "Yes", "No") != "Yes") + return + if(!check_rights(R_ADMIN, FALSE)) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_AMBITION)) + to_chat(usr, "You must wait [AMBITION_COOLDOWN_TIME * 0.1] seconds between changes.") + return + if(!isliving(current)) + to_chat(usr, "The mind holder is no longer a living creature. The ambition we were deleting should no longer exist already.") + return + if(!antag_datums) + to_chat(usr, "The mind holder is no longer an antagonist. The ambition we were deleting should no longer exist already.") + return + if(ambition_index > LAZYLEN(ambitions)) + to_chat(usr, "The ambition we were deleting was deleted before we finished. No need to continue.") + do_edit_objectives_ambitions() + return + if(old_ambition != ambitions[ambition_index]) + to_chat(usr, "The ambition has changed since we started considering its deletion. Aborting to prevent conflicts.") + do_edit_objectives_ambitions() + return + TIMER_COOLDOWN_START(src, COOLDOWN_AMBITION, AMBITION_COOLDOWN_TIME) + LAZYCUT(ambitions, ambition_index, ambition_index + 1) + if(usr == current) + log_game("[key_name(usr)] has deleted their ambition of index [ambition_index].\nDELETED AMBITION:\n[old_ambition]") + else + log_game("[key_name(usr)] has deleted [key_name(current)]'s ambition of index [ambition_index].\nDELETED AMBITION:\n[old_ambition]") + message_admins("[ADMIN_TPMONTY(usr)] has deleted [ADMIN_TPMONTY(current)]'s ambition of index [ambition_index].") + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_ping"]) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJ_ADMIN_PING)) + to_chat(usr, "You must wait [S_TIMER_COOLDOWN_TIMELEFT(src, COOLDOWN_OBJ_ADMIN_PING) * 0.1] seconds before your next admin ping.") + do_edit_objectives_ambitions() + return + if(!antag_datums) + return + var/pending_request = FALSE + for(var/a in antag_datums) + var/datum/antagonist/antag_datum = a + if(antag_datum.requested_objective_changes) + pending_request = TRUE + break + if(!pending_request) + to_chat(usr, "You have no pending requests to warn the admins about. Request changes for them to review before poking them.") + do_edit_objectives_ambitions() + return + var/justification = stripped_multiline_input(usr, + "Send a message to the admins requesting a review of your objective change requests.\ + There's a [ADMIN_PING_COOLDOWN_TIME * 0.1] seconds cooldown between requests, so try to think it through before sending it. Cancelling this does not trigger the cooldown.", + "Request Admin Review", max_length = MAX_MESSAGE_LEN) + if(isnull(justification)) + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJ_ADMIN_PING)) + to_chat(usr, "You must wait [S_TIMER_COOLDOWN_TIMELEFT(src, COOLDOWN_OBJ_ADMIN_PING) * 0.1] seconds before your next admin ping.") + do_edit_objectives_ambitions() + return + if(!antag_datums) + return + pending_request = FALSE + for(var/a in antag_datums) + var/datum/antagonist/antag_datum = a + if(antag_datum.requested_objective_changes) + pending_request = TRUE + break + if(!pending_request) + return + if(!length(GLOB.admins)) + to_chat(usr, "No admins currently connected, failed to notify them. Wait for one to connect before trying to ping them again.") + do_edit_objectives_ambitions() + return + S_TIMER_COOLDOWN_START(src, COOLDOWN_OBJ_ADMIN_PING, ADMIN_PING_COOLDOWN_TIME) + RegisterSignal(src, list(COMSIG_CD_STOP(COOLDOWN_OBJ_ADMIN_PING), COMSIG_CD_RESET(COOLDOWN_OBJ_ADMIN_PING)), .proc/on_objectives_request_cd_end) + log_admin("Objectives review request - [key_name(usr)] has requested a review of their objective changes, pinging the admins.") + for(var/a in GLOB.admins) + var/client/admin_client = a + if(admin_client.prefs.toggles & SOUND_ADMINHELP) + SEND_SOUND(admin_client, sound('sound/effects/adminhelp.ogg')) + window_flash(admin_client) + message_admins("[ADMIN_TPMONTY(usr)] has requested a review of their objective changes. (RPLY)") + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_add"]) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + do_edit_objectives_ambitions() + return + var/datum/antagonist/target_antag = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(target_antag)) + to_chat(usr, "No antagonist found for this objective.") + do_edit_objectives_ambitions() + return + if(!GLOB.objective_player_choices) + populate_objective_player_choices() + var/choice = input("Select desired objective type:", "Objective type") as null|anything in GLOB.objective_player_choices + var/selected_type = GLOB.objective_player_choices[choice] + if(!selected_type) + return + var/new_objective = stripped_multiline_input(usr,\ + selected_type == /datum/objective/custom\ + ? "Write the custom objective you'd like to request the admins to grant you. Remember they can edit or deny your request at their own discretion."\ + : "Justify your request for a new objective to the admins. Add the required clarifations, if you have a specific targets in mind and the likes.",\ + "New Objective", max_length = MAX_MESSAGE_LEN) + if(isnull(new_objective)) + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME] minutes between request changes.") + return + if(QDELETED(target_antag)) + return + TIMER_COOLDOWN_START(src, COOLDOWN_OBJECTIVES, OBJECTIVES_COOLDOWN_TIME) + var/uid = "[GLOB.requested_objective_uid++]" + target_antag.add_objective_change(uid, list("request" = REQUEST_NEW_OBJECTIVE, "target" = selected_type, "text" = new_objective)) + log_admin("Objectives request [uid] - [key_name(usr)] has requested a [choice] objective: [new_objective]") + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_cancel"]) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + var/datum/antagonist/target_antag = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(target_antag)) + to_chat(usr, "No antagonist found for this objective.") + do_edit_objectives_ambitions() + return + var/uid = href_list["req_obj_cancel"] + if(!LAZYACCESS(target_antag.requested_objective_changes, uid)) + to_chat(usr, "No requested objective change found. Perhaps it was deleted already?") + do_edit_objectives_ambitions() + return + if(alert(usr, "Are you sure you want to delete this change request?", "Delete change request", "Yes", "No") != "Yes") + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + if(QDELETED(target_antag)) + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(target_antag.requested_objective_changes, uid)) + do_edit_objectives_ambitions() + return + TIMER_COOLDOWN_START(src, COOLDOWN_OBJECTIVES, OBJECTIVES_COOLDOWN_TIME) + log_admin("Objectives request deletion - [key_name(usr)] has deleted the objective change request of UID [uid].") + target_antag.remove_objective_change(uid) + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_delete"]) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + var/datum/antagonist/target_antag = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(target_antag)) + to_chat(usr, "No antagonist found for this objective.") + do_edit_objectives_ambitions() + return + var/objective_reference = href_list["req_obj_delete"] + var/datum/objective/objective_to_delete = locate(objective_reference) in target_antag.objectives + if(!istype(objective_to_delete) || QDELETED(objective_to_delete)) + to_chat(usr, "No objective found. Perhaps it was already deleted?") + do_edit_objectives_ambitions() + return + var/justification = stripped_multiline_input(usr, + "Justify your request for a deleting this objective to the admins.", + "Objective Deletion", max_length = MAX_MESSAGE_LEN) + if(isnull(justification)) + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + if(QDELETED(objective_to_delete) || QDELETED(target_antag)) + do_edit_objectives_ambitions() + return + var/matching_request = FALSE + for(var/index in target_antag.requested_objective_changes) + var/list/change_request = target_antag.requested_objective_changes[index] + if(change_request["target"] != objective_reference) + continue + matching_request = TRUE + break + if(matching_request) + if(alert(usr, "There is already a change request tied to this objective waiting to be processed. Adding this request will delete the old ones.", "Delete matching objective requests?", "Yes", "No") != "Yes") + do_edit_objectives_ambitions() + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + if(QDELETED(objective_to_delete) || QDELETED(target_antag)) + do_edit_objectives_ambitions() + return + for(var/index in target_antag.requested_objective_changes) + var/list/change_request = target_antag.requested_objective_changes[index] + if(change_request["target"] != objective_reference) + continue + target_antag.remove_objective_change(index) + TIMER_COOLDOWN_START(src, COOLDOWN_OBJECTIVES, OBJECTIVES_COOLDOWN_TIME) + var/uid = "[GLOB.requested_objective_uid++]" + target_antag.add_objective_change(uid, list("request" = REQUEST_DEL_OBJECTIVE, "target" = objective_reference, "text" = justification)) + log_admin("Objectives request [uid] - [key_name(usr)] has requested the deletion of the following objective: [objective_to_delete.explanation_text].\nTheir justification is as follows: [justification]") + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_completed"]) + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + var/datum/antagonist/target_antag = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(target_antag)) + to_chat(usr, "No antagonist found for this objective.") + do_edit_objectives_ambitions() + return + var/objective_reference = href_list["req_obj_completed"] + var/datum/objective/objective_to_complete = locate(objective_reference) in target_antag.objectives + if(!istype(objective_to_complete) || QDELETED(objective_to_complete)) + to_chat(usr, "No objective found. Perhaps it was deleted?") + do_edit_objectives_ambitions() + return + var/justification = stripped_multiline_input(usr, + "Justify to the admins your request to mark this objective as [objective_to_complete.completed ? "incomplete" : "completed"].", + "Objective [objective_to_complete.completed ? "Incompletion" : "Completion"]", max_length = MAX_MESSAGE_LEN) + if(isnull(justification)) + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + if(QDELETED(objective_to_complete) || QDELETED(target_antag)) + do_edit_objectives_ambitions() + return + var/matching_request = FALSE + for(var/index in target_antag.requested_objective_changes) + var/list/change_request = target_antag.requested_objective_changes[index] + if(change_request["target"] != objective_reference) + continue + matching_request = TRUE + break + if(matching_request) + if(alert(usr, "There is already a change request tied to this objective waiting to be processed. Adding this request will delete the old ones.", "Delete matching objective requests?", "Yes", "No") != "Yes") + return + if(usr != current) + return + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJECTIVES)) + to_chat(usr, "You must wait [OBJECTIVES_COOLDOWN_TIME * 0.1] seconds between request changes.") + return + if(QDELETED(objective_to_complete) || QDELETED(target_antag)) + do_edit_objectives_ambitions() + return + for(var/index in target_antag.requested_objective_changes) + var/list/change_request = target_antag.requested_objective_changes[index] + if(change_request["target"] != objective_reference) + continue + target_antag.remove_objective_change(index) + TIMER_COOLDOWN_START(src, COOLDOWN_OBJECTIVES, OBJECTIVES_COOLDOWN_TIME) + var/uid = "[GLOB.requested_objective_uid++]" + target_antag.add_objective_change(uid, list("request" = (objective_to_complete.completed ? REQUEST_LOSE_OBJECTIVE : REQUEST_WIN_OBJECTIVE), "target" = objective_reference, "text" = justification)) + log_admin("Objectives request [uid] - [key_name(usr)] has requested the [objective_to_complete.completed ? "incompletion" : "completion"] of the following objective: [objective_to_complete.explanation_text].\nTheir justification is as follows: [justification]") + do_edit_objectives_ambitions() + return if(!check_rights(R_ADMIN)) return var/self_antagging = usr == current + if(href_list["edit_ambitions_panel"]) + do_edit_objectives_ambitions() + return + + else if(href_list["req_obj_ping_cd_clear"]) + if(!TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJ_ADMIN_PING)) + to_chat(usr, "Mind is not under a cooldown.") + do_edit_objectives_ambitions() + return + if(alert(usr, "Are you sure you want reset this cooldown, letting the user ping the admins again?", "Clear ping cooldown", "Yes", "No") != "Yes") + do_edit_objectives_ambitions() + return + if(!check_rights(R_ADMIN)) + return + if(!TIMER_COOLDOWN_CHECK(src, COOLDOWN_OBJ_ADMIN_PING)) + do_edit_objectives_ambitions() + return + S_TIMER_COOLDOWN_RESET(src, COOLDOWN_OBJ_ADMIN_PING) + do_edit_objectives_ambitions() + return + + else if(href_list["refresh_antag_panel"]) + traitor_panel() + return + + else if (href_list["req_obj_edit"]) + var/datum/antagonist/antag_datum = locate(href_list["req_obj_edit"]) in antag_datums + if(QDELETED(antag_datum)) + do_edit_objectives_ambitions() + to_chat(usr, "No antag found.") + return + if(antag_datum.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid antag reference.") + return + var/uid = href_list["req_obj_id"] + var/list/requested_obj_change = LAZYACCESS(antag_datum.requested_objective_changes, uid) + if(!requested_obj_change) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid requested objective reference.") + return + if(requested_obj_change["request"] != REQUEST_NEW_OBJECTIVE) + do_edit_objectives_ambitions() + to_chat(usr, "This is not an editable request. How did you even got here?") + return + switch(alert(usr, "Do you want to edit the requested objective type or text?", "Edit requested objective", "Type", "Text", "Cancel")) + if("Type") + if(!check_rights(R_ADMIN)) + return + if(QDELETED(antag_datum)) + to_chat(usr, "No antag found.") + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(antag_datum.requested_objective_changes, uid)) + to_chat(usr, "Invalid requested objective change reference.") + do_edit_objectives_ambitions() + return + var/datum/objective/type_cast = requested_obj_change["target"] + var/selected_type = input("Select new requested objective type:", "Requested Objective type", initial(type_cast.name)) as null|anything in GLOB.objective_choices + selected_type = GLOB.objective_choices[selected_type] + if(!selected_type) + return + if(!check_rights(R_ADMIN)) + return + if(QDELETED(antag_datum)) + to_chat(usr, "No antag found.") + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(antag_datum.requested_objective_changes, uid)) + to_chat(usr, "Invalid requested objective change reference.") + do_edit_objectives_ambitions() + return + log_admin("[key_name(usr)] has edited the requested objective type for [current], of UID [uid], from [requested_obj_change["target"]] to [selected_type]") + message_admins("[key_name_admin(usr)] has edited the requested objective type for [current], of UID [uid], from [requested_obj_change["target"]] to [selected_type]") + requested_obj_change["target"] = selected_type + if("Text") + if(!check_rights(R_ADMIN)) + return + if(QDELETED(antag_datum)) + to_chat(usr, "No antag found.") + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(antag_datum.requested_objective_changes, uid)) + to_chat(usr, "Invalid requested objective change reference.") + do_edit_objectives_ambitions() + return + var/new_text = stripped_multiline_input(usr, "Input new requested objective text", "Requested Objective Text", requested_obj_change["text"], MAX_MESSAGE_LEN) + if (isnull(new_text)) + return + if(!check_rights(R_ADMIN)) + return + if(QDELETED(antag_datum)) + to_chat(usr, "No antag found.") + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(antag_datum.requested_objective_changes, uid)) + to_chat(usr, "Invalid requested objective change reference.") + do_edit_objectives_ambitions() + return + log_admin("[key_name(usr)] has edited the requested objective text for [current], of UID [uid], from [requested_obj_change["text"]] to [new_text]") + message_admins("[key_name_admin(usr)] has edited the requested objective text for [current], of UID [uid], from [requested_obj_change["text"]] to [new_text]") + requested_obj_change["text"] = new_text + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_accept"]) + var/datum/antagonist/antag_datum = locate(href_list["req_obj_accept"]) in antag_datums + if(QDELETED(antag_datum)) + do_edit_objectives_ambitions() + to_chat(usr, "No antag found.") + return + if(antag_datum.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid antag reference.") + return + var/uid = href_list["req_obj_id"] + var/list/requested_obj_change = LAZYACCESS(antag_datum.requested_objective_changes, uid) + if(!requested_obj_change) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid requested objective reference.") + return + + var/datum/objective/request_target + var/request_type = requested_obj_change["request"] + switch(request_type) + if(REQUEST_NEW_OBJECTIVE) + request_target = requested_obj_change["target"] + if(!ispath(request_target, /datum/objective)) + to_chat(usr, "Invalid requested objective target path.") + return + if(REQUEST_DEL_OBJECTIVE, REQUEST_WIN_OBJECTIVE, REQUEST_LOSE_OBJECTIVE) + request_target = locate(requested_obj_change["target"]) in antag_datum.objectives + if(QDELETED(request_target)) + to_chat(usr, "Invalid requested objective target reference.") + return + else + to_chat(usr, "Invalid request type.") + return + if(alert(usr, "Are you sure you want to approve this objective change?", "Approve objective change", "Yes", "No") != "Yes") + return + if(!check_rights(R_ADMIN)) + return + if(QDELETED(antag_datum)) + to_chat(usr, "No antag found.") + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(antag_datum.requested_objective_changes, uid)) + to_chat(usr, "Invalid requested objective change reference.") + do_edit_objectives_ambitions() + return + switch(request_type) //Last checks + if(REQUEST_NEW_OBJECTIVE) + if(!ispath(request_target, /datum/objective)) + stack_trace("Invalid target on objective change request: [request_target]") + do_edit_objectives_ambitions() + return + if(REQUEST_DEL_OBJECTIVE, REQUEST_WIN_OBJECTIVE, REQUEST_LOSE_OBJECTIVE) + if(QDELETED(request_target)) + to_chat(usr, "Invalid requested objective target reference.") + return + else + to_chat(usr, "Invalid request type.") + return + antag_datum.remove_objective_change(uid) + switch(request_type) //All is clear, let get things done. + if(REQUEST_NEW_OBJECTIVE) + request_target = new request_target() + request_target.owner = src + if(istype(request_target, /datum/objective/custom)) + request_target.explanation_text = requested_obj_change["text"] + else + request_target.admin_edit(usr) + antag_datum.objectives += request_target + message_admins("[key_name_admin(usr)] approved a requested objective from [current]: [request_target.explanation_text]") + log_admin("[key_name(usr)] approved a requested objective from [current]: [request_target.explanation_text]") + if(REQUEST_DEL_OBJECTIVE) + message_admins("[key_name_admin(usr)] approved the request to delete an objective from [current]: [request_target.explanation_text]") + log_admin("[key_name(usr)] approved the request to delete an objective from [current]: [request_target.explanation_text]") + qdel(request_target) + if(REQUEST_WIN_OBJECTIVE) + message_admins("[key_name_admin(usr)] approved the victory request for an objective from [current]: [request_target.explanation_text]") + log_admin("[key_name(usr)] approved the victory request for an objective from [current]: [request_target.explanation_text]") + request_target.completed = TRUE + if(REQUEST_LOSE_OBJECTIVE) + message_admins("[key_name_admin(usr)] approved the defeat request for an objective from [current]: [request_target.explanation_text]") + log_admin("[key_name(usr)] approved the defeat request for an objective from [current]: [request_target.explanation_text]") + request_target.completed = FALSE + to_chat(current, "Your objective change request has been approved.") + do_edit_objectives_ambitions() + return + + else if (href_list["req_obj_deny"]) + var/datum/antagonist/antag_datum = locate(href_list["req_obj_deny"]) in antag_datums + if(QDELETED(antag_datum)) + do_edit_objectives_ambitions() + to_chat(usr, "No antag found.") + return + if(antag_datum.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid antag reference.") + return + var/uid = href_list["req_obj_id"] + var/list/requested_obj_change = LAZYACCESS(antag_datum.requested_objective_changes, uid) + if(!requested_obj_change) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid requested objective change reference.") + return + var/justification = stripped_multiline_input(usr, "Justify why you are denying this objective request change.", "Deny", memory, MAX_MESSAGE_LEN) + if(isnull(justification)) + return + if(!check_rights(R_ADMIN)) + return + if(QDELETED(antag_datum)) + to_chat(usr, "No antag found.") + do_edit_objectives_ambitions() + return + if(!LAZYACCESS(antag_datum.requested_objective_changes, uid)) + to_chat(usr, "Invalid requested objective change reference.") + do_edit_objectives_ambitions() + return + var/datum/objective/type_cast = requested_obj_change["target"] + var/objective_name = initial(type_cast.name) + message_admins("[key_name_admin(usr)] denied a requested [objective_name] objective from [current]: [requested_obj_change["text"]]") + log_admin("[key_name(usr)] denied a requested [objective_name] objective from [current]: [requested_obj_change["text"]]") + to_chat(current, "Your objective request has been denied for the following reason: [justification]") + antag_datum.remove_objective_change(uid) + do_edit_objectives_ambitions() + return + + else if (href_list["obj_panel_complete_toggle"]) + var/datum/antagonist/antag_datum = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(antag_datum)) + do_edit_objectives_ambitions() + to_chat(usr, "No antag found.") + return + if(antag_datum.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid antag reference.") + return + var/datum/objective/objective_to_toggle = locate(href_list["obj_panel_complete_toggle"]) in antag_datum.objectives + if(QDELETED(objective_to_toggle)) + to_chat(usr, "No objective found. Perhaps it was already deleted?") + do_edit_objectives_ambitions() + return + if(objective_to_toggle.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid objective reference.") + return + objective_to_toggle.completed = !objective_to_toggle.completed + message_admins("[key_name_admin(usr)] toggled the win state for [current]'s objective: [objective_to_toggle.explanation_text]") + log_admin("[key_name(usr)] toggled the win state for [current]'s objective: [objective_to_toggle.explanation_text]") + if(alert(usr, "Would you like to alert the player of the change?", "Deny objective", "Yes", "No") == "Yes") + to_chat(current, "[objective_to_toggle.completed ? "" : ""]Your objective status has changed!") + do_edit_objectives_ambitions() + return + + else if (href_list["obj_panel_delete"]) + var/datum/antagonist/antag_datum = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(antag_datum)) + do_edit_objectives_ambitions() + to_chat(usr, "No antag found.") + return + if(antag_datum.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid antag reference.") + return + var/datum/objective/objective_to_delete = locate(href_list["obj_panel_delete"]) in antag_datum.objectives + if(QDELETED(objective_to_delete)) + to_chat(usr, "No objective found. Perhaps it was already deleted?") + do_edit_objectives_ambitions() + return + if(objective_to_delete.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid objective reference.") + return + if(alert(usr, "Are you sure you want to delete this objective?", "Delete objective", "Yes", "No") != "Yes") + return + if(!check_rights(R_ADMIN)) + return + if(QDELETED(objective_to_delete)) + return + message_admins("[key_name_admin(usr)] removed an objective from [current]: [objective_to_delete.explanation_text]") + log_admin("[key_name(usr)] removed an objective from [current]: [objective_to_delete.explanation_text]") + qdel(objective_to_delete) + do_edit_objectives_ambitions() + return + + else if (href_list["obj_panel_edit"]) + var/datum/antagonist/antag_datum = locate(href_list["target_antag"]) in antag_datums + if(QDELETED(antag_datum)) + do_edit_objectives_ambitions() + to_chat(usr, "No antag found.") + return + if(antag_datum.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid antag reference.") + return + var/datum/objective/objective_to_edit = locate(href_list["obj_panel_edit"]) in antag_datum.objectives + if(QDELETED(objective_to_edit)) + to_chat(usr, "No objective found. Perhaps it was already deleted?") + do_edit_objectives_ambitions() + return + if(objective_to_edit.owner != src) + do_edit_objectives_ambitions() + to_chat(usr, "Invalid objective reference.") + return + var/explanation_before = objective_to_edit.explanation_text + objective_to_edit.admin_edit(usr) + if(QDELETED(objective_to_edit)) + return + message_admins("[key_name_admin(usr)] edited an objective from [current]:\ + Before: [explanation_before]\ + After: [objective_to_edit.explanation_text]") + log_admin("[key_name(usr)] edited an objective from [current]:\ + Before: [explanation_before]\ + After: [objective_to_edit.explanation_text]") + do_edit_objectives_ambitions() + return +//ambition end if(href_list["add_antag"]) add_antag_wrapper(text2path(href_list["add_antag"]),usr) @@ -473,38 +1396,16 @@ else target_antag = target - var/static/list/choices - if(!choices) - choices = list() +//ambition start + if(!GLOB.objective_choices) + populate_objective_choices() - var/list/allowed_types = list( - /datum/objective/assassinate, - /datum/objective/assassinate/once, - /datum/objective/maroon, - /datum/objective/debrain, - /datum/objective/protect, - /datum/objective/destroy, - /datum/objective/hijack, - /datum/objective/escape, - /datum/objective/survive, - /datum/objective/martyr, - /datum/objective/steal, - /datum/objective/download, - /datum/objective/nuclear, - /datum/objective/absorb, - /datum/objective/custom - ) + if(old_objective && GLOB.objective_choices[old_objective.name]) + def_value = old_objective.name - for(var/T in allowed_types) - var/datum/objective/X = T - choices[initial(X.name)] = T - - if(old_objective) - if(old_objective.name in choices) - def_value = old_objective.name - - var/selected_type = input("Select objective type:", "Objective type", def_value) as null|anything in choices - selected_type = choices[selected_type] + var/selected_type = input("Select objective type:", "Objective type", def_value) as null|anything in GLOB.objective_choices + selected_type = GLOB.objective_choices[selected_type] +//ambition end if (!selected_type) return @@ -532,6 +1433,12 @@ message_admins("[key_name_admin(usr)] edited [current]'s objective to [new_objective.explanation_text]") log_admin("[key_name(usr)] edited [current]'s objective to [new_objective.explanation_text]") +//ambition start + if(href_list["ambition_panel"]) + do_edit_objectives_ambitions() + return +//ambition end + else if(href_list["traitor_class"]) var/static/list/choices if(!choices) @@ -616,6 +1523,11 @@ else if (href_list["obj_announce"]) announce_objectives() +//ambition start + if(href_list["ambition_panel"]) + do_edit_objectives_ambitions() + return +//ambition end //Something in here might have changed your mob if(self_antagging && (!usr || !usr.client) && current.client) @@ -819,3 +1731,7 @@ ..() mind.assigned_role = ROLE_PAI mind.special_role = "" + +//ambition start +#undef AMBITION_COOLDOWN_TIME +//ambition end diff --git a/code/datums/mutations/cluwne.dm b/code/datums/mutations/cluwne.dm index 59b7752372..45a78be27b 100644 --- a/code/datums/mutations/cluwne.dm +++ b/code/datums/mutations/cluwne.dm @@ -17,18 +17,18 @@ if(!istype(H.wear_mask, /obj/item/clothing/mask/gas/cluwne)) if(!H.dropItemToGround(H.wear_mask)) qdel(H.wear_mask) - H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/cluwne(H), SLOT_WEAR_MASK) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/cluwne(H), ITEM_SLOT_MASK) if(!istype(H.w_uniform, /obj/item/clothing/under/cluwne)) if(!H.dropItemToGround(H.w_uniform)) qdel(H.w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/under/cluwne(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new /obj/item/clothing/under/cluwne(H), ITEM_SLOT_ICLOTHING) if(!istype(H.shoes, /obj/item/clothing/shoes/clown_shoes/cluwne)) if(!H.dropItemToGround(H.shoes)) qdel(H.shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes/cluwne(H), SLOT_SHOES) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/clown_shoes/cluwne(H), ITEM_SLOT_FEET) - owner.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/white(owner), SLOT_GLOVES) // this is purely for cosmetic purposes incase they aren't wearing anything in that slot - owner.equip_to_slot_or_del(new /obj/item/storage/backpack/clown(owner), SLOT_BACK) // ditto + owner.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/white(owner), ITEM_SLOT_GLOVES) // this is purely for cosmetic purposes incase they aren't wearing anything in that slot + owner.equip_to_slot_or_del(new /obj/item/storage/backpack/clown(owner), ITEM_SLOT_BACK) // ditto /datum/mutation/human/cluwne/on_life(mob/living/carbon/human/owner) if((prob(15) && owner.IsUnconscious())) diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 0b46629365..4c17874f97 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -153,31 +153,31 @@ //Start with uniform,suit,backpack for additional slots if(uniform) - H.equip_to_slot_or_del(new uniform(H), SLOT_W_UNIFORM, TRUE) + H.equip_to_slot_or_del(new uniform(H), ITEM_SLOT_ICLOTHING, TRUE) if(suit) - H.equip_to_slot_or_del(new suit(H), SLOT_WEAR_SUIT, TRUE) + H.equip_to_slot_or_del(new suit(H), ITEM_SLOT_OCLOTHING, TRUE) if(back) - H.equip_to_slot_or_del(new back(H), SLOT_BACK, TRUE) + H.equip_to_slot_or_del(new back(H), ITEM_SLOT_BACK, TRUE) if(belt) - H.equip_to_slot_or_del(new belt(H), SLOT_BELT, TRUE) + H.equip_to_slot_or_del(new belt(H), ITEM_SLOT_BELT, TRUE) if(gloves) - H.equip_to_slot_or_del(new gloves(H), SLOT_GLOVES, TRUE) + H.equip_to_slot_or_del(new gloves(H), ITEM_SLOT_GLOVES, TRUE) if(shoes) - H.equip_to_slot_or_del(new shoes(H), SLOT_SHOES, TRUE) + H.equip_to_slot_or_del(new shoes(H), ITEM_SLOT_FEET, TRUE) if(head) - H.equip_to_slot_or_del(new head(H), SLOT_HEAD, TRUE) + H.equip_to_slot_or_del(new head(H), ITEM_SLOT_HEAD, TRUE) if(mask) - H.equip_to_slot_or_del(new mask(H), SLOT_WEAR_MASK, TRUE) + H.equip_to_slot_or_del(new mask(H), ITEM_SLOT_MASK, TRUE) if(neck) - H.equip_to_slot_or_del(new neck(H), SLOT_NECK, TRUE) + H.equip_to_slot_or_del(new neck(H), ITEM_SLOT_NECK, TRUE) if(ears) - H.equip_to_slot_or_del(new ears(H), SLOT_EARS, TRUE) + H.equip_to_slot_or_del(new ears(H), ITEM_SLOT_EARS, TRUE) if(glasses) - H.equip_to_slot_or_del(new glasses(H), SLOT_GLASSES, TRUE) + H.equip_to_slot_or_del(new glasses(H), ITEM_SLOT_EYES, TRUE) if(id) - H.equip_to_slot_or_del(new id(H), SLOT_WEAR_ID, TRUE) + H.equip_to_slot_or_del(new id(H), ITEM_SLOT_ID, TRUE) if(suit_store) - H.equip_to_slot_or_del(new suit_store(H), SLOT_S_STORE, TRUE) + H.equip_to_slot_or_del(new suit_store(H), ITEM_SLOT_SUITSTORE, TRUE) if(undershirt) H.undershirt = initial(undershirt.name) @@ -195,9 +195,9 @@ if(!visualsOnly) // Items in pockets or backpack don't show up on mob's icon. if(l_pocket) - H.equip_to_slot_or_del(new l_pocket(H), SLOT_L_STORE, TRUE) + H.equip_to_slot_or_del(new l_pocket(H), ITEM_SLOT_LPOCKET, TRUE) if(r_pocket) - H.equip_to_slot_or_del(new r_pocket(H), SLOT_R_STORE, TRUE) + H.equip_to_slot_or_del(new r_pocket(H), ITEM_SLOT_RPOCKET, TRUE) if(box) if(!backpack_contents) @@ -211,7 +211,7 @@ if(!isnum(number))//Default to 1 number = 1 for(var/i in 1 to number) - H.equip_to_slot_or_del(new path(H), SLOT_IN_BACKPACK, TRUE) + H.equip_to_slot_or_del(new path(H), ITEM_SLOT_BACKPACK, TRUE) if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit)) var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index ae05134b56..eda3470a0b 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -578,8 +578,12 @@ /datum/status_effect/regenerative_core/on_apply() . = ..() ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "regenerative_core") - - if(HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM)) //Robots can heal from cores, but only get 1/5th of the healing. They can use this to get past the damage threshhold however, and then regularely heal from there. + var/turf/T = get_turf(owner) + if(T && is_mining_level(T.z)) + if(HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM)) //Robots can heal from cores, though they ""only"" heal 20 brute + burn damage each instead of 25 + heal_amount *= 0.8 + else + duration = 10 SECONDS heal_amount *= 0.2 owner.adjustBruteLoss(-heal_amount, only_organic = FALSE) if(!AmBloodsucker(owner)) //use your coffin you lazy bastard diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index dbec6c6ee2..b5a7a38915 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1005,11 +1005,15 @@ /datum/status_effect/trance/proc/hypnotize(datum/source, list/hearing_args) if(!owner.can_hear()) return - if(hearing_args[HEARING_SPEAKER] == owner) + var/mob/hearing_speaker = hearing_args[HEARING_SPEAKER] + if(hearing_speaker == owner) return var/mob/living/carbon/C = owner var/hypnomsg = uncostumize_say(hearing_args[HEARING_RAW_MESSAGE], hearing_args[HEARING_MESSAGE_MODE]) C.cure_trauma_type(/datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY) //clear previous hypnosis + // The brain trauma itself does its own set of logging, but this is the only place the source of the hypnosis phrase can be found. + hearing_speaker.log_message("has hypnotised [key_name(C)] with the phrase '[hypnomsg]'", LOG_ATTACK) + C.log_message("has been hypnotised by the phrase '[hypnomsg]' spoken by [key_name(hearing_speaker)]", LOG_VICTIM, log_globally = FALSE) addtimer(CALLBACK(C, /mob/living/carbon.proc/gain_trauma, /datum/brain_trauma/hypnosis, TRAUMA_RESILIENCE_SURGERY, hypnomsg), 10) addtimer(CALLBACK(C, /mob/living.proc/Stun, 60, TRUE, TRUE), 15) //Take some time to think about it qdel(src) diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 22a851da1d..99fa6e73c5 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -129,7 +129,7 @@ Use this as a guideline var/mob/living/carbon/human/H = quirk_holder var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H)) H.put_in_hands(glasses) - H.equip_to_slot(glasses, SLOT_GLASSES) + H.equip_to_slot(glasses, ITEM_SLOT_EYES) H.regenerate_icons() //This whole proc is called automatically diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 23fd75f982..a0f62a32b8 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -108,10 +108,10 @@ var/mob/living/carbon/human/H = quirk_holder var/obj/item/choice_beacon/music/B = new(get_turf(H)) H.put_in_hands(B) - H.equip_to_slot_if_possible(B, SLOT_IN_BACKPACK) + H.equip_to_slot_if_possible(B, ITEM_SLOT_BACKPACK) var/obj/item/musicaltuner/musicaltuner = new(get_turf(H)) H.put_in_hands(musicaltuner) - H.equip_to_slot_if_possible(musicaltuner, SLOT_IN_BACKPACK) + H.equip_to_slot_if_possible(musicaltuner, ITEM_SLOT_BACKPACK) H.regenerate_icons() /datum/quirk/photographer @@ -127,7 +127,7 @@ var/mob/living/carbon/human/H = quirk_holder var/obj/item/camera/camera = new(get_turf(H)) H.put_in_hands(camera) - H.equip_to_slot(camera, SLOT_NECK) + H.equip_to_slot(camera, ITEM_SLOT_NECK) H.regenerate_icons() /datum/quirk/selfaware @@ -166,7 +166,7 @@ var/mob/living/carbon/human/H = quirk_holder var/obj/item/toy/crayon/spraycan/spraycan = new(get_turf(H)) H.put_in_hands(spraycan) - H.equip_to_slot(spraycan, SLOT_IN_BACKPACK) + H.equip_to_slot(spraycan, ITEM_SLOT_BACKPACK) H.regenerate_icons() /datum/quirk/voracious @@ -188,7 +188,7 @@ /datum/quirk/trandening/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/obj/item/autosurgeon/gloweyes/gloweyes = new(get_turf(H)) - H.equip_to_slot(gloweyes, SLOT_IN_BACKPACK) + H.equip_to_slot(gloweyes, ITEM_SLOT_BACKPACK) H.regenerate_icons() /datum/quirk/bloodpressure diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 38007023b5..10f66fce0c 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -57,9 +57,9 @@ GLOBAL_LIST_EMPTY(family_heirlooms) heirloom = new heirloom_type(get_turf(quirk_holder)) GLOB.family_heirlooms += heirloom var/list/slots = list( - "in your left pocket" = SLOT_L_STORE, - "in your right pocket" = SLOT_R_STORE, - "in your backpack" = SLOT_IN_BACKPACK + "in your left pocket" = ITEM_SLOT_LPOCKET, + "in your right pocket" = ITEM_SLOT_RPOCKET, + "in your backpack" = ITEM_SLOT_BACKPACK ) where = H.equip_in_one_of_slots(heirloom, slots, FALSE) || "at your feet" @@ -120,7 +120,7 @@ GLOBAL_LIST_EMPTY(family_heirlooms) /datum/quirk/nearsighted/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H)) - if(!H.equip_to_slot_if_possible(glasses, SLOT_GLASSES)) + if(!H.equip_to_slot_if_possible(glasses, ITEM_SLOT_EYES)) H.put_in_hands(glasses) /datum/quirk/nyctophobia @@ -383,7 +383,7 @@ GLOBAL_LIST_EMPTY(family_heirlooms) /datum/quirk/blindness/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/obj/item/clothing/glasses/sunglasses/blindfold/white/glasses = new(get_turf(H)) - if(!H.equip_to_slot_if_possible(glasses, SLOT_GLASSES, bypass_equip_delay_self = TRUE)) //if you can't put it on the user's eyes, put it in their hands, otherwise put it on their eyes eyes + if(!H.equip_to_slot_if_possible(glasses, ITEM_SLOT_EYES, bypass_equip_delay_self = TRUE)) //if you can't put it on the user's eyes, put it in their hands, otherwise put it on their eyes eyes H.put_in_hands(glasses) H.regenerate_icons() diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 36712ea6bb..6b2cdbd455 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -172,7 +172,7 @@ /datum/quirk/colorist/on_spawn() var/mob/living/carbon/human/H = quirk_holder var/obj/item/dyespray/spraycan = new(get_turf(quirk_holder)) - H.equip_to_slot(spraycan, SLOT_IN_BACKPACK) + H.equip_to_slot(spraycan, ITEM_SLOT_BACKPACK) H.regenerate_icons() /datum/quirk/colorist/post_add() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 40162a6c9b..6d600eefa1 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1215,7 +1215,7 @@ if(user != target) var/reverse_message = "has been [what_done] by [ssource][postfix]" - target.log_message(reverse_message, LOG_ATTACK, color="orange", log_globally=FALSE) + target.log_message(reverse_message, LOG_VICTIM, color="orange", log_globally=FALSE) /** * log_wound() is for when someone is *attacked* and suffers a wound. Note that this only captures wounds from damage, so smites/forced wounds aren't logged, as well as demotions like cuts scabbing over @@ -1406,11 +1406,12 @@ //Update the screentip to reflect what we're hoverin over /atom/MouseEntered(location, control, params) . = ..() - // Statusbar - // status_bar_set_text(usr, name) // Screentips - // if(usr?.hud_used) - // if(!usr.client?.prefs.screentip_pref || (flags_1 & NO_SCREENTIPS_1)) - // usr.hud_used.screentip_text.maptext = "" - // else - // usr.hud_used.screentip_text.maptext = MAPTEXT("[name]") + var/client/client = usr?.client + var/datum/hud/active_hud = client?.mob?.hud_used + if(active_hud) + if(!client.prefs.screentip_pref || (flags_1 & NO_SCREENTIPS_1)) + 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 = MAPTEXT("[name]") diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 83c1eec598..77c953567c 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) GLOBAL_LIST_INIT(slots, list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store")) -GLOBAL_LIST_INIT(slot2slot, list("head" = SLOT_HEAD, "wear_mask" = SLOT_WEAR_MASK, "neck" = SLOT_NECK, "back" = SLOT_BACK, "wear_suit" = SLOT_WEAR_SUIT, "w_uniform" = SLOT_W_UNIFORM, "shoes" = SLOT_SHOES, "belt" = SLOT_BELT, "gloves" = SLOT_GLOVES, "glasses" = SLOT_GLASSES, "ears" = SLOT_EARS, "wear_id" = SLOT_WEAR_ID, "s_store" = SLOT_S_STORE)) +GLOBAL_LIST_INIT(slot2slot, list("head" = ITEM_SLOT_HEAD, "wear_mask" = ITEM_SLOT_MASK, "neck" = ITEM_SLOT_NECK, "back" = ITEM_SLOT_BACK, "wear_suit" = ITEM_SLOT_OCLOTHING, "w_uniform" = ITEM_SLOT_ICLOTHING, "shoes" = ITEM_SLOT_FEET, "belt" = ITEM_SLOT_BELT, "gloves" = ITEM_SLOT_GLOVES, "glasses" = ITEM_SLOT_EYES, "ears" = ITEM_SLOT_EARS, "wear_id" = ITEM_SLOT_ID, "s_store" = ITEM_SLOT_SUITSTORE)) GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling)) GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our this objective to all lings diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 08a8d69575..77371ad7bc 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -205,11 +205,11 @@ Credit where due: var/mob/living/carbon/human/L = M var/obj/item/clockwork/slab/S = new var/slot = "At your feet" - var/list/slots = list("In your left pocket" = SLOT_L_STORE, "In your right pocket" = SLOT_R_STORE, "In your backpack" = SLOT_IN_BACKPACK) + var/list/slots = list("In your left pocket" = ITEM_SLOT_LPOCKET, "In your right pocket" = ITEM_SLOT_RPOCKET, "In your backpack" = ITEM_SLOT_BACKPACK) if(ishuman(L)) var/mob/living/carbon/human/H = L var/obj/item/clockwork/replica_fabricator/F = new - if(H.equip_to_slot_or_del(F, SLOT_IN_BACKPACK)) + if(H.equip_to_slot_or_del(F, ITEM_SLOT_BACKPACK)) to_chat(H, "You have been equipped with a replica fabricator, an advanced tool that can convert objects like doors, tables or even coats into clockwork equivalents.") slot = H.equip_in_one_of_slots(S, slots) if(slot == "In your backpack") diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index 695fc79169..3e8d45b842 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -37,17 +37,17 @@ if(!H.w_uniform || H.dropItemToGround(H.w_uniform)) C = new /obj/item/clothing/under/rank/civilian/clown(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_W_UNIFORM) + H.equip_to_slot_or_del(C, ITEM_SLOT_ICLOTHING) if(!H.shoes || H.dropItemToGround(H.shoes)) C = new /obj/item/clothing/shoes/clown_shoes(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_SHOES) + H.equip_to_slot_or_del(C, ITEM_SLOT_FEET) if(!H.wear_mask || H.dropItemToGround(H.wear_mask)) C = new /obj/item/clothing/mask/gas/clown_hat(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, SLOT_WEAR_MASK) + H.equip_to_slot_or_del(C, ITEM_SLOT_MASK) H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index a27cb02ea8..081ffbbdc4 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -214,7 +214,7 @@ if(!istype(C.wear_mask, /obj/item/clothing/mask/gas/clown_hat) && !istype(C.wear_mask, /obj/item/clothing/mask/gas/mime)) if(!C.wear_mask || C.dropItemToGround(C.wear_mask)) var/obj/item/clothing/mask/fakemoustache/sticky/the_stash = new /obj/item/clothing/mask/fakemoustache/sticky() - C.equip_to_slot_or_del(the_stash, SLOT_WEAR_MASK, TRUE, TRUE, TRUE, TRUE) + C.equip_to_slot_or_del(the_stash, ITEM_SLOT_MASK, TRUE, TRUE, TRUE, TRUE) /obj/item/clothing/mask/fakemoustache/sticky var/unstick_time = 2 MINUTES @@ -226,7 +226,7 @@ /obj/item/clothing/mask/fakemoustache/sticky/equipped(mob/user, slot) . = ..() - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) ADD_TRAIT(user, TRAIT_NO_INTERNALS, STICKY_MOUSTACHE_TRAIT) /obj/item/clothing/mask/fakemoustache/sticky/dropped(mob/user) diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index a82abe9b3d..f7ccae24e4 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -154,7 +154,7 @@ if(tc) var/obj/item/U = new uplink_type(H, H.key, tc) - H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(U, ITEM_SLOT_BACKPACK) var/obj/item/implant/weapons_auth/W = new W.implant(H) @@ -170,7 +170,7 @@ mask = /obj/item/clothing/mask/gas/syndicate suit = /obj/item/clothing/suit/space/hardsuit/syndi r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = SLOT_R_STORE + internals_slot = ITEM_SLOT_RPOCKET belt = /obj/item/storage/belt/military r_hand = /obj/item/gun/ballistic/automatic/shotgun/bulldog backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ @@ -186,7 +186,7 @@ suit = /obj/item/clothing/suit/space/syndicate/black/red head = /obj/item/clothing/head/helmet/space/syndicate/black/red r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = SLOT_R_STORE + internals_slot = ITEM_SLOT_RPOCKET belt = /obj/item/storage/belt/military backpack_contents = list(/obj/item/storage/box/survival/syndie=1,\ /obj/item/tank/jetpack/oxygen/harness=1,\ diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 0358c3af2c..fd43b994e8 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -165,7 +165,7 @@ If not set, defaults to check_completion instead. Set it. It's used by cryo. if(receiver && receiver.current) if(ishuman(receiver.current)) var/mob/living/carbon/human/H = receiver.current - var/list/slots = list("backpack" = SLOT_IN_BACKPACK) + var/list/slots = list("backpack" = ITEM_SLOT_BACKPACK) for(var/eq_path in special_equipment) var/obj/O = new eq_path . += O @@ -1197,7 +1197,7 @@ GLOBAL_LIST_EMPTY(cult_contraband) I.forceMove(get_turf(owner)) if(ishuman(owner)) var/mob/living/carbon/human/H = owner - H.equip_in_one_of_slots(I, list("backpack" = SLOT_IN_BACKPACK), critical = TRUE) + H.equip_in_one_of_slots(I, list("backpack" = ITEM_SLOT_BACKPACK), critical = TRUE) hoarded_item = I diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 982e40a79b..ce29d1947d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -102,7 +102,7 @@ rad_insulation = RAD_MEDIUM_INSULATION var/static/list/airlock_overlays = list() - + /// sigh var/unelectrify_timerid @@ -1278,8 +1278,8 @@ assemblytype = /obj/structure/door_assembly/door_assembly_extmai update_icon() -/obj/machinery/door/airlock/CanAStarPass(obj/item/card/id/ID) -//Airlock is passable if it is open (!density), bot has access, and is not bolted shut or powered off) +/obj/machinery/door/airlock/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) + //Airlock is passable if it is open (!density), bot has access, and is not bolted shut or powered off) return !density || (check_access(ID) && !locked && hasPower()) /obj/machinery/door/airlock/emag_act(mob/user) diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index dc87322b57..ad286a52a7 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -52,23 +52,30 @@ /obj/machinery/limbgrower/ui_data(mob/user) var/list/data = list() - - for(var/datum/reagent/reagent_id in reagents.reagent_list) - var/list/reagent_data = list( - reagent_name = reagent_id.name, - reagent_amount = reagent_id.volume, - reagent_type = reagent_id.type - ) - data["reagents"] += list(reagent_data) - + if(reagents.reagent_list.len) + for(var/datum/reagent/reagent_id in reagents.reagent_list) + var/list/reagent_data = list( + reagent_name = reagent_id.name, + reagent_amount = reagent_id.volume, + reagent_type = reagent_id.type + ) + data["reagents"] += list(reagent_data) + else + data["reagents"] = list() data["total_reagents"] = reagents.total_volume data["max_reagents"] = reagents.maximum_volume data["busy"] = busy var/list/disk_data = list() disk_data["disk"] = dna_disk //Do i, the machine, have a disk? - disk_data["name"] = dna_disk?.fields["name"] //Name for the human saved if there is one + if(dna_disk) + if(dna_disk.fields["name"]) + disk_data["name"] = dna_disk.fields["name"] + else if(dna_disk.genetic_makeup_buffer["name"]) + disk_data["name"] = dna_disk.genetic_makeup_buffer["name"] + else + disk_data["name"] = "No name" + //Name for the human saved if there is one data["disk"] = disk_data - return data /obj/machinery/limbgrower/ui_static_data(mob/user) @@ -119,6 +126,18 @@ if (busy) to_chat(user, "\The [src] is busy. Please wait for completion of previous operation.") return + if(ispath(user_item.type, /obj/item/reagent_containers/blood) && user.a_intent != INTENT_HARM) + var/obj/item/reagent_containers/blood/B = user_item + if(!B.reagents.get_reagents()) + to_chat(user, "You can't fill [src] with an empty [B.name]!") + return + if(reagents.total_volume == reagents.maximum_volume) + to_chat(user, "\The [src] can't hold more blood!") + return + user.visible_message("[user] drains the [user_item] into [src] using the blood bag port on [src].", + "You drain the [user_item] into [src] using the blood bag port.") + B.reagents.trans_to(src, B.amount_per_transfer_from_this) + return if(default_deconstruction_screwdriver(user, "limbgrower_panelopen", "limbgrower_idleoff", user_item)) ui_close(user) @@ -180,7 +199,7 @@ for(var/reagent_id in consumed_reagents_list) consumed_reagents_list[reagent_id] *= production_coefficient if(!reagents.has_reagent(reagent_id, consumed_reagents_list[reagent_id])) - audible_message("\The [src] buzzes.") + audible_message("\The [src] buzzes and states \"INSUFFICENT REAGENTS\"") playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) return @@ -206,17 +225,13 @@ * modified_consumed_reagents_list - the list of reagents we will consume on build, modified by the production coefficient. */ /obj/machinery/limbgrower/proc/build_item(list/modified_consumed_reagents_list) - for(var/reagent_id in modified_consumed_reagents_list) - if(!reagents.has_reagent(reagent_id, modified_consumed_reagents_list[reagent_id])) - audible_message("\The [src] buzzes.") - playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) - break - - reagents.remove_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) - + reagent_usage(modified_consumed_reagents_list) var/built_typepath = being_built.build_path // If we have a bodypart, we need to initialize the limb on its own. Otherwise we can build it here. - if(ispath(built_typepath, /obj/item/bodypart)) + if(ispath(built_typepath, /mob/living/carbon/human/chestonly)) + if(!build_mob_chest(built_typepath, FALSE)) + reagent_usage(modified_consumed_reagents_list, FALSE) + else if(ispath(built_typepath, /obj/item/bodypart)) build_limb(built_typepath) else if(ispath(built_typepath, /obj/item/organ/genital)) //genitals are uhh... customizable build_genital(built_typepath) @@ -227,6 +242,25 @@ flick("limbgrower_unfill", src) icon_state = "limbgrower_idleoff" +/obj/machinery/limbgrower/proc/reagent_usage(modified_consumed_reagents_list, remove = TRUE) + // Apparently, having a boolean in a loop is worse than doing it twice + if(remove) + for(var/reagent_id in modified_consumed_reagents_list) + if(reagent_sanity_check(reagent_id, modified_consumed_reagents_list[reagent_id])) + reagents.remove_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) + else + for(var/reagent_id in modified_consumed_reagents_list) + if(reagent_sanity_check(reagent_id, modified_consumed_reagents_list[reagent_id])) + reagents.add_reagent(reagent_id, modified_consumed_reagents_list[reagent_id]) + + +/obj/machinery/limbgrower/proc/reagent_sanity_check(reagent_id, amount) + if(reagents.has_reagent(reagent_id, amount)) + return TRUE + audible_message("\The [src] buzzes, with a screen showing: INSUFFICENT REAGENTS") + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + return FALSE + /* * The process of putting together a limb. * This is called from after we remove the reagents, so this proc is just initializing the limb type. @@ -306,6 +340,53 @@ else new built_typepath(loc) +/obj/machinery/limbgrower/proc/build_mob_chest(built_typepath) + // Create a mob with a chest, but nothing else + if(!ispath(built_typepath, /mob/living/carbon/human/chestonly)) + playsound(src, 'sound/machines/buzz-sigh.ogg', 50, FALSE) + visible_message(src, "Buzzes, an error screen appearing on its display.") + return FALSE + // Fields is from cloning, a much fuller scan, genetic_makeup_buffer is less so + var/dna_genetics = dna_disk?.genetic_makeup_buffer + var/dna_cloning = dna_disk?.fields + var/datum/species/selected = GLOB.species_datums[selected_category] + var/mob/living/carbon/human/chestonly/C = new(loc) + C.real_name = length(dna_genetics) ? dna_genetics["name"] : "Synthetic Humanoid #[rand(10000, 99999)]" + if(length(dna_cloning)) + C.hardset_dna(dna_cloning["UI"], dna_cloning["SE"], dna_cloning["name"], dna_cloning["blood_type"], dna_cloning["mrace"], dna_cloning["features"]) + else if(length(dna_genetics)) + C.hardset_dna(dna_genetics["UI"], null, dna_genetics["name"], dna_genetics["blood_type"]) + else + C.real_name = "Synthetic Humanoid #[rand(10000, 99999)]" + C.hair_style = "bald" + C.skin_tone = "albino" + C.set_species(selected) + C.set_resting(TRUE, TRUE) + // Don't want to cause it to deathgasp.. + C.stat = DEAD + C.adjustOxyLoss(200) + // Limb replacement causes toxloss, which can cause too much suffering for the doctor that I don't want + C.adjustCloneLoss(45) + C.med_hud_set_status() + C.med_hud_set_health() + C.underwear = "Nude" + C.undershirt = "Nude" + C.saved_underwear = "" + C.saved_undershirt = "" + + // Just enough to start reviving them, I hope + C.blood_volume = BLOOD_VOLUME_SURVIVE + // At some point, make a way to deal with species regenerate_organs + // Remove all the organs + for(var/organ in C.internal_organs) + var/obj/item/organ/O = organ + O.Remove(organ) + C.update_body(TRUE) + C.update_hair() + C.update_body_parts() + C.update_appearance() + return TRUE + /obj/machinery/limbgrower/RefreshParts() reagents.maximum_volume = 0 for(var/obj/item/reagent_containers/glass/our_beaker in component_parts) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 953d21d318..54bdeff4de 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -351,7 +351,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return if(anchored) return - if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) + if(loc == user && current_equipped_slot && current_equipped_slot != ITEM_SLOT_HANDS) if(current_equipped_slot in user.check_obscured_slots()) to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE @@ -416,7 +416,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return if(anchored) return - if(loc == user && current_equipped_slot && current_equipped_slot != SLOT_HANDS) + if(loc == user && current_equipped_slot && current_equipped_slot != ITEM_SLOT_HANDS) if(current_equipped_slot in user.check_obscured_slots()) to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE @@ -568,7 +568,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there + if(slot == ITEM_SLOT_BACKPACK || slot == ITEM_SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there return FALSE return TRUE @@ -817,7 +817,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(ismob(location)) var/mob/M = location var/success = FALSE - if(src == M.get_item_by_slot(SLOT_WEAR_MASK)) + if(src == M.get_item_by_slot(ITEM_SLOT_MASK)) success = TRUE if(success) location = get_turf(M) diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index 04838103f9..682ce18215 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -34,7 +34,7 @@ user.put_in_hands(PA) /obj/item/chrono_eraser/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BACK) + if(slot == ITEM_SLOT_BACK) return 1 /obj/item/gun/energy/chrono_gun diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 702cbd8d56..8227097d8f 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -89,7 +89,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM ..() /obj/item/proc/help_light_cig(mob/living/M) - var/mask_item = M.get_item_by_slot(SLOT_WEAR_MASK) + var/mask_item = M.get_item_by_slot(ITEM_SLOT_MASK) if(istype(mask_item, /obj/item/clothing/mask/cigarette)) return mask_item @@ -130,7 +130,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.add_reagent_list(list_reagents) if(starts_lit) light() - AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(SLOT_WEAR_MASK))//90% to knock off when wearing a mask + AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(ITEM_SLOT_MASK))//90% to knock off when wearing a mask /obj/item/clothing/mask/cigarette/Destroy() STOP_PROCESSING(SSobj, src) @@ -819,7 +819,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/equipped(mob/user, slot) . = ..() - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) if(!screw) to_chat(user, "You start puffing on the vape.") reagents.reagents_holder_flags &= ~(NO_REACT) @@ -830,7 +830,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/dropped(mob/user) . = ..() var/mob/living/carbon/C = user - if(C.get_item_by_slot(SLOT_WEAR_MASK) == src) + if(C.get_item_by_slot(ITEM_SLOT_MASK) == src) reagents.reagents_holder_flags |= NO_REACT STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 0570de6bcf..36f68cfdf3 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -80,13 +80,13 @@ /obj/item/defibrillator/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(loc == user) if(slot_flags == ITEM_SLOT_BACK) - if(user.get_item_by_slot(SLOT_BACK) == src) + if(user.get_item_by_slot(ITEM_SLOT_BACK) == src) ui_action_click() else to_chat(user, "Put the defibrillator on your back first!") else if(slot_flags == ITEM_SLOT_BELT) - if(user.get_item_by_slot(SLOT_BELT) == src) + if(user.get_item_by_slot(ITEM_SLOT_BELT) == src) ui_action_click() else to_chat(user, "Strap the defibrillator's belt on first!") @@ -182,7 +182,7 @@ /obj/item/defibrillator/equipped(mob/user, slot) ..() - if((slot_flags == ITEM_SLOT_BACK && slot != SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != SLOT_BELT)) + if((slot_flags == ITEM_SLOT_BACK && slot != ITEM_SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != ITEM_SLOT_BELT)) remove_paddles(user) update_power() @@ -423,7 +423,7 @@ if((!req_defib && grab_ghost) || (req_defib && defib.grab_ghost)) H.notify_ghost_cloning("Your heart is being defibrillated!") H.grab_ghost() // Shove them back in their body. - else if(H.can_defib()) + else if(H.can_revive()) H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src) do_help(H, user) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 2339e88a76..1a130998b6 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -369,6 +369,10 @@ GLOBAL_LIST_EMPTY(PDAs) dat += "
  • [PDAIMG(rdoor)]Toggle Remote Door
  • " if (cartridge.access & CART_DRONEPHONE) dat += "
  • [PDAIMG(dronephone)]Drone Phone
  • " + if (cartridge.access & CART_BARTENDER) + dat += "
  • [PDAIMG(bucket)]Drink Recipe Browser
  • " + if (cartridge.access & CART_CHEMISTRY) + dat += "
  • [PDAIMG(bucket)]Chemistry Recipe Browser
  • " dat += "
  • [PDAIMG(atmos)]Atmospheric Scan
  • " dat += "
  • [PDAIMG(flashlight)][fon ? "Disable" : "Enable"] Flashlight
  • " if (pai) @@ -705,6 +709,16 @@ GLOBAL_LIST_EMPTY(PDAs) if(T) pai.forceMove(T) +//DRINK RECIPE BROWSER============================= + if("Drink Recipe Browser") + if(cartridge && cartridge.access & CART_BARTENDER) + recipe_search(U, GLOB.drink_reactions_list) + +//CHEMISTRY RECIPE BROWSER + if("Chemistry Recipe Browser") + if(cartridge && cartridge.access & CART_CHEMISTRY) + recipe_search(U, GLOB.normalized_chemical_reactions_list) + //LINK FUNCTIONS=================================== else//Cartridge menu linking diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index 23ebaec3c2..8fcd97c261 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -222,6 +222,7 @@ /obj/item/pda/bar name = "bartender PDA" icon_state = "pda-bartender" + default_cartridge = /obj/item/cartridge/bartender inserted_item = /obj/item/pen/fountain /obj/item/pda/atmos diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 4ca0b86bc0..ca72e3371b 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -13,6 +13,8 @@ #define CART_QUARTERMASTER (1<<12) #define CART_HYDROPONICS (1<<13) #define CART_DRONEPHONE (1<<14) +#define CART_BARTENDER (1<<15) +#define CART_CHEMISTRY (1<<16) /obj/item/cartridge @@ -77,7 +79,7 @@ /obj/item/cartridge/chemistry name = "\improper ChemWhiz cartridge" icon_state = "cart-chem" - access = CART_REAGENT_SCANNER + access = CART_REAGENT_SCANNER | CART_CHEMISTRY bot_access_flags = MED_BOT /obj/item/cartridge/security @@ -190,6 +192,12 @@ bot_access_flags = SEC_BOT | MULE_BOT | FLOOR_BOT | CLEAN_BOT | MED_BOT | FIRE_BOT spam_enabled = 1 +/obj/item/cartridge/bartender + name = "\improper B.O.O.Z.E cartridge" + desc = "Now with 12% alcohol!" + icon_state = "cart-bar" + access = CART_BARTENDER + /obj/item/cartridge/captain/New() ..() radio = new(src) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 365446bad9..a3de2d822f 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -19,7 +19,7 @@ /obj/item/megaphone/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HANDS) + if (slot == ITEM_SLOT_HANDS) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index c51edc8106..2c55bbf8e4 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -156,7 +156,7 @@ category = list("hacked", "Misc") /obj/item/electropack/shockcollar/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - if(loc == user && user.get_item_by_slot(SLOT_NECK)) + if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK)) to_chat(user, "The collar is fastened tight! You'll need help taking this off!") return return ..() @@ -167,7 +167,7 @@ if(isliving(loc) && on) //the "on" arg is currently useless var/mob/living/L = loc - if(!L.get_item_by_slot(SLOT_NECK)) //**properly** stops pocket shockers + if(!L.get_item_by_slot(ITEM_SLOT_NECK)) //**properly** stops pocket shockers return if(shock_cooldown == TRUE) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 58a3eb312b..6feb8bf663 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -56,7 +56,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/ComponentInitialize() . = ..() if (bowman) - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) /obj/item/radio/headset/Initialize() . = ..() @@ -373,4 +373,4 @@ GLOBAL_LIST_INIT(channel_tokens, list( name = replacetext(name,"headset", "bowman headset") desc = "[desc] Protects ears from flashbangs." bowman = TRUE - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index de7e3d2812..810f2150e6 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -48,7 +48,7 @@ /obj/item/reverse_bear_trap/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(iscarbon(user)) var/mob/living/carbon/C = user - if(C.get_item_by_slot(SLOT_HEAD) == src) + if(C.get_item_by_slot(ITEM_SLOT_HEAD) == src) if(HAS_TRAIT_FROM(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) && !struggling) struggling = TRUE var/fear_string @@ -82,26 +82,26 @@ ..() /obj/item/reverse_bear_trap/attack(mob/living/target, mob/living/user) - if(target.get_item_by_slot(SLOT_HEAD)) + if(target.get_item_by_slot(ITEM_SLOT_HEAD)) to_chat(user, "Remove [target.p_their()] headgear first!") return target.visible_message("[user] starts forcing [src] onto [target]'s head!", \ "[target] starts forcing [src] onto your head!", "You hear clanking.") to_chat(user, "You start forcing [src] onto [target]'s head...") - if(!do_after(user, 30, target = target) || target.get_item_by_slot(SLOT_HEAD)) + if(!do_after(user, 30, target = target) || target.get_item_by_slot(ITEM_SLOT_HEAD)) return target.visible_message("[user] forces and locks [src] onto [target]'s head!", \ "[target] locks [src] onto your head!", "You hear a click, and then a timer ticking down.") to_chat(user, "You force [src] onto [target]'s head and click the padlock shut.") user.dropItemToGround(src) - target.equip_to_slot_if_possible(src, SLOT_HEAD) + target.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD) arm() notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/beep.ogg') /obj/item/reverse_bear_trap/proc/snap() reset() var/mob/living/carbon/human/H = loc - if(!istype(H) || H.get_item_by_slot(SLOT_HEAD) != src) + if(!istype(H) || H.get_item_by_slot(ITEM_SLOT_HEAD) != src) visible_message("[src]'s jaws snap open with an ear-piercing crack!") playsound(src, 'sound/effects/snap.ogg', 75, TRUE) else diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index a8e76d04ca..0ca2e40b45 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -380,6 +380,8 @@ GENETICS SCANNER mutant = TRUE else if (S.mutantstomach != initial(S.mutantstomach)) mutant = TRUE + else if (S.flying_species != initial(S.flying_species)) + mutant = TRUE msg += "\tReported Species: [H.spec_trait_examine_font()][H.dna.custom_species ? H.dna.custom_species : S.name]\n" msg += "\tBase Species: [H.spec_trait_examine_font()][S.name]\n" @@ -434,7 +436,7 @@ GENETICS SCANNER if(R) blood_type = R.name - + if((C.scan_blood_volume() + C.integrating_blood) <= (BLOOD_VOLUME_SAFE * C.blood_ratio) && (C.scan_blood_volume() + C.integrating_blood) > (BLOOD_VOLUME_OKAY*C.blood_ratio)) msg += "LOW [HAS_TRAIT(C, TRAIT_ROBOTIC_ORGANISM) ? "coolant" : "blood"] level [blood_percent] %, [C.scan_blood_volume()] cl[C.integrating_blood? ", with [integrated_blood_percent] % of it integrating, [C.integrating_blood] cl " : ""]. type: [blood_type]\n" else if((C.scan_blood_volume() + C.integrating_blood) <= (BLOOD_VOLUME_OKAY * C.blood_ratio)) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index ac79b3b887..11900d8e42 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -208,7 +208,7 @@ effective or pretty fucking useless. actions_types = list(/datum/action/item_action/toggle) /obj/item/shadowcloak/ui_action_click(mob/user) - if(user.get_item_by_slot(SLOT_BELT) == src) + if(user.get_item_by_slot(ITEM_SLOT_BELT) == src) if(!on) Activate(usr) else @@ -216,7 +216,7 @@ effective or pretty fucking useless. return /obj/item/shadowcloak/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BELT) + if(slot == ITEM_SLOT_BELT) return 1 /obj/item/shadowcloak/proc/Activate(mob/living/carbon/human/user) @@ -238,11 +238,11 @@ effective or pretty fucking useless. /obj/item/shadowcloak/dropped(mob/user) ..() - if(user && user.get_item_by_slot(SLOT_BELT) != src) + if(user && user.get_item_by_slot(ITEM_SLOT_BELT) != src) Deactivate() /obj/item/shadowcloak/process() - if(user.get_item_by_slot(SLOT_BELT) != src) + if(user.get_item_by_slot(ITEM_SLOT_BELT) != src) Deactivate() return var/turf/T = get_turf(src) diff --git a/code/game/objects/items/fluff.dm b/code/game/objects/items/fluff.dm index 7105e57c30..0df8d5b447 100644 --- a/code/game/objects/items/fluff.dm +++ b/code/game/objects/items/fluff.dm @@ -6,7 +6,7 @@ // 1) Tennis balls, lines 39 - 99 // 2) Chew bones, lines 101 - 138 // 3) Frisbee, lines 140 - 166 -*/ +*/ /obj/item/toy/fluff name = "Fluff Item" diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index d1450c2685..c084b90d6f 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -336,7 +336,7 @@ var/obj/item/clothing/magichead = new /obj/item/clothing/mask/horsehead/cursed(user.drop_location()) if(!user.dropItemToGround(user.wear_mask)) qdel(user.wear_mask) - user.equip_to_slot_if_possible(magichead, SLOT_WEAR_MASK, TRUE, TRUE) + user.equip_to_slot_if_possible(magichead, ITEM_SLOT_MASK, TRUE, TRUE) qdel(src) else to_chat(user,"I say thee neigh") //It still lives here diff --git a/code/game/objects/items/implants/implantchair.dm b/code/game/objects/items/implants/implantchair.dm index 7b05cf302e..e32acd105e 100644 --- a/code/game/objects/items/implants/implantchair.dm +++ b/code/game/objects/items/implants/implantchair.dm @@ -189,5 +189,7 @@ return FALSE brainwash(C, objective) message_admins("[ADMIN_LOOKUPFLW(user)] brainwashed [key_name_admin(C)] with objective '[objective]'.") + user.log_message("has brainwashed [key_name(C)] with the objective '[objective]' using \the [src]", LOG_ATTACK) + C.log_message("has been brainwashed with the objective '[objective]' by [key_name(user)] using \the [src]", LOG_VICTIM, log_globally = FALSE) log_game("[key_name(user)] brainwashed [key_name(C)] with objective '[objective]'.") return TRUE diff --git a/code/game/objects/items/inducer.dm b/code/game/objects/items/inducer.dm index ddcd35f834..a5913c308d 100644 --- a/code/game/objects/items/inducer.dm +++ b/code/game/objects/items/inducer.dm @@ -188,7 +188,7 @@ icon_state = "inducer-combat" item_state = "inducer-combat" w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT desc = "A tool for inductively charging internal power cells. This one has been modified and upgraded to be able to charge into guns as well as normal electronics." cell_type = /obj/item/stock_parts/cell/hyper powertransfer = 1300 diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index ced0ee3160..989cc5a73e 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -34,6 +34,7 @@ /obj/item/target/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) if(pinnedLoc) pinnedLoc.removeTarget(user) + . = ..() /obj/item/target/syndicate icon_state = "target_s" diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index c10bcd753d..b6520f6bb5 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -53,7 +53,6 @@ desc = "A satchel that opens into a localized pocket of Blue Space." icon_state = "holdingsat" item_state = "holdingsat" - species_exception = list(/datum/species/angel) /obj/item/storage/backpack/holding/duffel name = "duffel bag of holding" @@ -190,7 +189,6 @@ name = "satchel" desc = "A trendy looking satchel." icon_state = "satchel-norm" - species_exception = list(/datum/species/angel) //satchels can be equipped since they are on the side, not back /obj/item/storage/backpack/satchel/leather name = "leather satchel" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 6bb501807d..56ad6c2534 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -108,7 +108,7 @@ desc = "This little bugger can be used to store and transport ores." icon = 'icons/obj/mining.dmi' icon_state = "satchel" - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_NORMAL component_type = /datum/component/storage/concrete/stack var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it @@ -400,7 +400,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bag" desc = "A bag for storing pills, patches, and bottles." - slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKETS resistance_flags = FLAMMABLE /obj/item/storage/bag/chemistry/ComponentInitialize() @@ -420,7 +420,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "biobag" desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." - slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT|ITEM_SLOT_POCKETS resistance_flags = FLAMMABLE /obj/item/storage/bag/bio/ComponentInitialize() @@ -451,7 +451,7 @@ desc = "A pouch for your ammo that goes in your pocket." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "ammopouch" - slot_flags = ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_BULKY resistance_flags = FLAMMABLE @@ -472,7 +472,7 @@ Bag for holding materials desc = "A pouch for sheets and RCD ammunition that manages to hang where you would normally put things in your pocket." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "materialpouch" - slot_flags = ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_BULKY resistance_flags = FLAMMABLE diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 476f35fe4c..1a3b40d1da 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/mob/living/carbon/human/H = usr H.dna.add_mutation(CLOWNMUT) H.dna.add_mutation(SMILE) - H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), SLOT_WEAR_MASK) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), ITEM_SLOT_MASK) GLOB.bible_icon_state = icon_state GLOB.bibleitemstates = item_state diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index f68084d63a..111e3c96a0 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -248,10 +248,10 @@ return ..() var/obj/item/clothing/mask/cigarette/cig = locate(/obj/item/clothing/mask/cigarette) in contents if(cig) - if(!user.wear_mask && !(SLOT_WEAR_MASK in M.check_obscured_slots())) + if(!user.wear_mask && !(ITEM_SLOT_MASK in M.check_obscured_slots())) var/obj/item/clothing/mask/cigarette/W = cig SEND_SIGNAL(src, COMSIG_TRY_STORAGE_TAKE, W, M) - M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK) + M.equip_to_slot_if_possible(W, ITEM_SLOT_MASK) contents -= W to_chat(user, "You take \a [W] out of the pack.") else diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index fffcd6dada..88131fb197 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -58,7 +58,7 @@ /obj/item/watertank/equipped(mob/user, slot) ..() - if(slot != SLOT_BACK) + if(slot != ITEM_SLOT_BACK) remove_noz() /obj/item/watertank/proc/remove_noz() @@ -348,14 +348,14 @@ toggle_injection() /obj/item/reagent_containers/chemtank/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_BACK) + if(slot == ITEM_SLOT_BACK) return 1 /obj/item/reagent_containers/chemtank/proc/toggle_injection() var/mob/living/carbon/human/user = usr if(!istype(user)) return - if (user.get_item_by_slot(SLOT_BACK) != src) + if (user.get_item_by_slot(ITEM_SLOT_BACK) != src) to_chat(user, "The chemtank needs to be on your back before you can activate it!") return if(on) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 3fd31941f3..b00d736282 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -1229,7 +1229,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 /obj/item/slapper/on_offered(mob/living/carbon/offerer) . = TRUE - + if(!(locate(/mob/living/carbon) in orange(1, offerer))) visible_message(span_danger("[offerer] raises [offerer.p_their()] arm, looking around for a high-five, but there's no one around!"), \ span_warning("You post up, looking for a high-five, but finding no one within range!"), null, 2) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index e263678943..cf256dd6fc 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -238,7 +238,18 @@ /obj/get_dumping_location(datum/component/storage/source,mob/user) return get_turf(src) -/obj/proc/CanAStarPass() +/** + * This proc is used for telling whether something can pass by this object in a given direction, for use by the pathfinding system. + * + * Trying to generate one long path across the station will call this proc on every single object on every single tile that we're seeing if we can move through, likely + * multiple times per tile since we're likely checking if we can access said tile from multiple directions, so keep these as lightweight as possible. + * + * Arguments: + * * ID- An ID card representing what access we have (and thus if we can open things like airlocks or windows to pass through them). The ID card's physical location does not matter, just the reference + * * to_dir- What direction we're trying to move in, relevant for things like directional windows that only block movement in certain directions + * * caller- The movable we're checking pass flags for, if we're making any such checks + **/ +/obj/proc/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density /obj/proc/check_uplink_validity() diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 50240aabb3..22f9cf7111 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -305,11 +305,10 @@ else return 0 -/obj/structure/girder/CanAStarPass(ID, dir, caller) +/obj/structure/girder/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density - if(ismovable(caller)) - var/atom/movable/mover = caller - . = . || (mover.pass_flags & PASSGRILLE) + if(istype(caller)) + . = . || (caller.pass_flags & PASSGRILLE) /obj/structure/girder/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 2ac85f79dc..a09ce578e7 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -133,11 +133,10 @@ else return !density -/obj/structure/grille/CanAStarPass(ID, dir, caller) +/obj/structure/grille/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density - if(ismovable(caller)) - var/atom/movable/mover = caller - . = . || (mover.pass_flags & PASSGRILLE) + if(istype(caller)) + . = . || (caller.pass_flags & PASSGRILLE) /obj/structure/grille/attackby(obj/item/W, mob/user, params) user.DelayNextAction(CLICK_CD_MELEE) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 73268009ce..383b57a0b0 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -371,8 +371,7 @@ GLOBAL_LIST_EMPTY(crematoriums) else return 0 -/obj/structure/tray/m_tray/CanAStarPass(ID, dir, caller) +/obj/structure/tray/m_tray/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density - if(ismovable(caller)) - var/atom/movable/mover = caller - . = . || (mover.pass_flags & PASSTABLE) + if(istype(caller)) + . = . || (caller.pass_flags & PASSTABLE) diff --git a/code/game/objects/structures/plasticflaps.dm b/code/game/objects/structures/plasticflaps.dm index ff8287d77b..46d5316458 100644 --- a/code/game/objects/structures/plasticflaps.dm +++ b/code/game/objects/structures/plasticflaps.dm @@ -56,18 +56,18 @@ return FALSE return TRUE -/obj/structure/plasticflaps/CanAStarPass(ID, to_dir, caller) +/obj/structure/plasticflaps/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) if(isliving(caller)) if(isbot(caller)) - return 1 + return TRUE - var/mob/living/M = caller - if(!(SEND_SIGNAL(M, COMSIG_CHECK_VENTCRAWL)) && M.mob_size != MOB_SIZE_TINY) - return 0 - var/atom/movable/M = caller - if(M && M.pulling) - return CanAStarPass(ID, to_dir, M.pulling) - return 1 //diseases, stings, etc can pass + var/mob/living/living_caller = caller + if(!(SEND_SIGNAL(living_caller, COMSIG_CHECK_VENTCRAWL)) && living_caller.mob_size != MOB_SIZE_TINY) + return FALSE + + if(caller?.pulling) + return CanAStarPass(ID, to_dir, caller.pulling) + return TRUE //diseases, stings, etc can pass /obj/structure/plasticflaps/CanPass(atom/movable/A, turf/T) if(istype(A) && (A.pass_flags & PASSGLASS)) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 065c0d2f28..24342e44bd 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -109,11 +109,10 @@ else return !density -/obj/structure/table/CanAStarPass(ID, dir, caller) +/obj/structure/table/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density - if(ismovable(caller)) - var/atom/movable/mover = caller - . = . || (mover.pass_flags & PASSTABLE) + if(istype(caller)) + . = . || (caller.pass_flags & PASSTABLE) /obj/structure/table/proc/tableplace(mob/living/user, mob/living/pushed_mob) pushed_mob.forceMove(src.loc) @@ -702,11 +701,10 @@ else return 0 -/obj/structure/rack/CanAStarPass(ID, dir, caller) +/obj/structure/rack/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) . = !density - if(ismovable(caller)) - var/atom/movable/mover = caller - . = . || (mover.pass_flags & PASSTABLE) + if(istype(caller)) + . = . || (caller.pass_flags & PASSTABLE) /obj/structure/rack/MouseDrop_T(obj/O, mob/user) . = ..() diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index c5f3a089f7..dc920556f7 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -58,13 +58,10 @@ pinned_target.nullPinnedLoc() nullPinnedTarget() handle_density() - if(ishuman(user)) - if(!user.get_active_held_item()) - user.put_in_hands(pinned_target) - to_chat(user, "You take the target out of the stake.") - else - pinned_target.forceMove(user.drop_location()) - to_chat(user, "You take the target out of the stake.") + pinned_target.forceMove(get_turf(src)) + to_chat(user, "You take the target out of the stake.") + if(user.can_hold_items()) + user.put_in_hands(pinned_target) /obj/structure/target_stake/bullet_act(obj/item/projectile/P) if(pinned_target) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5f84094477..e8e170446b 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -90,13 +90,13 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) . = ..() if(direct) setDir(direct) - + if(extra_reinforced && anchored) state = PRWINDOW_SECURE else if(reinf && anchored) state = WINDOW_SCREWED_TO_FRAME - + if(mapload && electrochromatic_id && electrochromatic_id[1] == "!") electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) @@ -571,13 +571,13 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /obj/structure/window/get_dumping_location(obj/item/storage/source,mob/user) return null -/obj/structure/window/CanAStarPass(ID, to_dir) +/obj/structure/window/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) if(!density) - return 1 + return TRUE if((dir == FULLTILE_WINDOW_DIR) || (dir == to_dir)) - return 0 + return FALSE - return 1 + return TRUE /obj/structure/window/GetExplosionBlock() return reinf && fulltile ? real_explosion_block : 0 @@ -719,7 +719,6 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) icon = 'icons/obj/smooth_structures/rplasma_window.dmi' icon_state = "rplasmawindow" dir = FULLTILE_WINDOW_DIR - state = PRWINDOW_SECURE max_integrity = 1000 fulltile = TRUE flags_1 = PREVENT_CLICK_UNDER_1 diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 9b6767b874..5e2b5284e1 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -11,6 +11,7 @@ barefootstep = FOOTSTEP_HARD_BAREFOOT clawfootstep = FOOTSTEP_HARD_CLAW heavyfootstep = FOOTSTEP_GENERIC_HEAVY + flags_1 = NO_SCREENTIPS_1 /// Minimum explosion power to break tile var/explosion_power_break_tile = EXPLOSION_POWER_FLOOR_TILE_BREAK diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index c831faca61..b23ce17c72 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -125,8 +125,12 @@ if(istype(W, /obj/item/stack/tile/material)) var/turf/newturf = PlaceOnTop(/turf/open/floor/material, flags = CHANGETURF_INHERIT_AIR) newturf.set_custom_materials(W.custom_materials) + if(length(C.atom_colours) && C.atom_colours[WASHABLE_COLOUR_PRIORITY] != null) + newturf.add_atom_colour(C.atom_colours[WASHABLE_COLOUR_PRIORITY], FIXED_COLOUR_PRIORITY) else if(W.turf_type) var/turf/open/floor/T = PlaceOnTop(W.turf_type, flags = CHANGETURF_INHERIT_AIR) + if(length(C.atom_colours) && C.atom_colours[WASHABLE_COLOUR_PRIORITY] != null) + T.add_atom_colour(C.atom_colours[WASHABLE_COLOUR_PRIORITY], FIXED_COLOUR_PRIORITY) if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow var/obj/item/stack/tile/light/L = W var/turf/open/floor/light/F = T diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 8d7da15761..5da3d079c2 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -153,8 +153,8 @@ continue if(iscarbon(L)) var/mob/living/carbon/C = L - var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT) - var/obj/item/clothing/H = C.get_item_by_slot(SLOT_HEAD) + var/obj/item/clothing/S = C.get_item_by_slot(ITEM_SLOT_OCLOTHING) + var/obj/item/clothing/H = C.get_item_by_slot(ITEM_SLOT_HEAD) if(S && H && S.clothing_flags & LAVAPROTECT && H.clothing_flags & LAVAPROTECT) return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 85de964463..419378acb9 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -638,3 +638,23 @@ GLOBAL_LIST_EMPTY(station_turfs) var/obj/machinery/door/D = locate() in src if(D?.density) . += D.opacity? 29 : 19 // glass doors are slightly more resistant to screaming + +/** + * Returns adjacent turfs to this turf that are reachable, in all cardinal directions + * + * Arguments: + * * caller: The movable, if one exists, being used for mobility checks to see what tiles it can reach + * * ID: An ID card that decides if we can gain access to doors that would otherwise block a turf + * * simulated_only: Do we only worry about turfs with simulated atmos, most notably things that aren't space? +*/ +/turf/proc/reachableAdjacentTurfs(caller, ID, simulated_only) + var/static/space_type_cache = typecacheof(/turf/open/space) + . = list() + + for(var/iter_dir in GLOB.cardinals) + var/turf/turf_to_check = get_step(src,iter_dir) + if(!turf_to_check || (simulated_only && space_type_cache[turf_to_check.type])) + continue + if(turf_to_check.density || LinkBlockedWithAccess(turf_to_check, caller, ID)) + continue + . += turf_to_check diff --git a/code/game/world.dm b/code/game/world.dm index af11b7c93e..75f145b048 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -115,6 +115,7 @@ GLOBAL_LIST(topic_status_cache) GLOB.world_virus_log = "[GLOB.log_directory]/virus.log" GLOB.world_asset_log = "[GLOB.log_directory]/asset.log" GLOB.world_attack_log = "[GLOB.log_directory]/attack.log" + GLOB.world_victim_log = "[GLOB.log_directory]/victim.log" GLOB.world_pda_log = "[GLOB.log_directory]/pda.log" GLOB.world_telecomms_log = "[GLOB.log_directory]/telecomms.log" GLOB.world_manifest_log = "[GLOB.log_directory]/manifest.log" diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d56e78c9fb..d3dfe3d10e 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -25,7 +25,9 @@ to_chat(usr, "You seem to be selecting a mob that doesn't exist anymore.", confidential = TRUE) return - var/body = "Options for [M.key]" +//ambition start + var/list/body = list("Options for [M.key]") +//ambition end body += "Options panel for [M]" if(M.client) body += " played by [M.client] " @@ -125,6 +127,10 @@ body += "Subtle message | " // body += "Play sound to | " body += "Language Menu" +//ambition start + if(M.mind) + body += " | Objective-Ambition Menu" +//ambition end if (M.client) if(!isnewplayer(M)) @@ -206,7 +212,11 @@ body += "
    " body += "" - usr << browse(body, "window=adminplayeropts-[REF(M)];size=550x515") +//ambition start + var/datum/browser/popup = new(usr, "adminplayeropts-[REF(M)]", "Player Panel", nwidth = 550, nheight = 515) + popup.set_content(body.Join()) + popup.open() +//ambition end SSblackbox.record_feedback("tally", "admin_verb", 1, "Player Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/playtimes.dm b/code/modules/admin/playtimes.dm new file mode 100644 index 0000000000..7cf24d9746 --- /dev/null +++ b/code/modules/admin/playtimes.dm @@ -0,0 +1,68 @@ +/datum/player_playtime/New(mob/viewer) + ui_interact(viewer) + +/datum/player_playtime/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PlayerPlaytimes", "Player Playtimes") + ui.open() + +/datum/player_playtime/ui_state(mob/user) + return GLOB.admin_state + +/datum/player_playtime/ui_data(mob/user) + var/list/data = list() + + var/list/clients = list() + for(var/client/C in GLOB.clients) + var/list/client = list() + + client["ckey"] = C.ckey + client["playtime"] = C.get_exp_living(TRUE) + client["playtime_hours"] = C.get_exp_living() + + var/mob/M = C.mob + client["observer"] = isobserver(M) + client["ingame"] = !isnewplayer(M) + client["name"] = M.real_name + var/nnpa = CONFIG_GET(number/notify_new_player_age) + if(nnpa >= 0) + if(C.account_age >= 0 && (C.account_age < CONFIG_GET(number/notify_new_player_age))) + client["new_account"] = "New BYOND account [C.account_age] day[(C.account_age==1?"":"s")] old, created on [C.account_join_date]" + + clients += list(client) + + clients = sortList(clients, /proc/cmp_playtime) + data["clients"] = clients + return data + +/datum/player_playtime/ui_act(action, params) + if(..()) + return + + switch(action) + if("view_playtime") + var/mob/target = get_mob_by_ckey(params["ckey"]) + usr.client.holder.cmd_show_exp_panel(target.client) + if("admin_pm") + usr.client.cmd_admin_pm(params["ckey"]) + if("player_panel") + var/mob/target = get_mob_by_ckey(params["ckey"]) + usr.client.holder.show_player_panel(target) + if("view_variables") + var/mob/target = get_mob_by_ckey(params["ckey"]) + usr.client.debug_variables(target) + if("observe") + if(!isobserver(usr) && !check_rights(R_ADMIN)) + return + + var/mob/target = get_mob_by_key(params["ckey"]) + if(!target) + to_chat(usr, "Player not found.") + return + + var/client/C = usr.client + if(!isobserver(usr) && !C.admin_ghost()) + return + var/mob/dead/observer/A = C.mob + A.ManualFollow(target) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 17bad60945..d134853494 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1686,8 +1686,8 @@ if(ishuman(L)) var/mob/living/carbon/human/observer = L - observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), SLOT_W_UNIFORM) - observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), SLOT_SHOES) + observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit/black(observer), ITEM_SLOT_ICLOTHING) + observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), ITEM_SLOT_FEET) L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeobserve)) @@ -2022,6 +2022,18 @@ var/mob/M = locate(href_list["HeadsetMessage"]) usr.client.admin_headset_message(M) +//ambition start + else if(href_list["ObjectiveRequest"]) + if(!check_rights(R_ADMIN)) + return + var/datum/mind/requesting_mind = locate(href_list["ObjectiveRequest"]) + if(!istype(requesting_mind) || QDELETED(requesting_mind)) + to_chat(usr, "This mind reference is no longer valid. It has probably since been destroyed.") + return + requesting_mind.do_edit_objectives_ambitions() + return +//ambition end + else if(href_list["reject_custom_name"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 138913b3a4..7957a6d638 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -202,7 +202,7 @@ id.forceMove(W) W.update_icon() else - H.equip_to_slot(id,SLOT_WEAR_ID) + H.equip_to_slot(id,ITEM_SLOT_ID) else alert("Invalid mob") diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index a0a1da9584..9e201ec360 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1557,6 +1557,7 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/cmd_admin_check_player_exp() //Allows admins to determine who the newer players are. set category = "Admin" set name = "Player Playtime" + if(!check_rights(R_ADMIN)) return @@ -1564,12 +1565,7 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(usr, "Tracking is disabled in the server configuration file.") return - var/list/msg = list() - msg += "Playtime ReportPlaytime:
    " - src << browse(msg.Join(), "window=Player_playtime_check") + new /datum/player_playtime(usr) /obj/effect/temp_visual/fireball icon = 'icons/obj/wizard.dmi' diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 2f7e160e6e..a1b1a1288e 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -50,6 +50,10 @@ GLOBAL_LIST_EMPTY(antagonists) var/show_name_in_check_antagonists = FALSE /// Should this antagonist be shown as antag to ghosts? Shouldn't be used for stealthy antagonists like traitors var/show_to_ghosts = FALSE +//ambition start + /// Lazy list for antagonists to request the admins objectives. + var/list/requested_objective_changes +//ambition end /* CIT SPECIFIC */ /// Quirks that will be removed upon gaining this antag. Pacifist and mute are default. @@ -78,7 +82,9 @@ GLOBAL_LIST_EMPTY(antagonists) if(!owner) stack_trace("Destroy()ing antagonist datum when it has no owner.") else - LAZYREMOVE(owner.antag_datums, src) +//ambition start + owner?.do_remove_antag_datum(src) +//ambition end owner = null return ..() @@ -230,7 +236,7 @@ GLOBAL_LIST_EMPTY(antagonists) remove_innate_effects() clear_antag_moodies() - LAZYREMOVE(owner.antag_datums, src) + owner.do_remove_antag_datum(src) // cit skill for(var/A in skill_modifiers) owner.remove_skill_modifier(GET_SKILL_MOD_ID(A, type)) @@ -524,3 +530,33 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/action/antag_info/IsAvailable() return TRUE + +///Clears change requests from deleted objectives to avoid broken references. +/datum/antagonist/proc/clean_request_from_del_objective(datum/objective/source, force) + var/objective_reference = REF(source) + for(var/uid in requested_objective_changes) + var/list/change_request = requested_objective_changes[uid] + if(change_request["target"] != objective_reference) + continue + LAZYREMOVE(requested_objective_changes, uid) + + +/datum/antagonist/proc/add_objective_change(uid, list/additions) + LAZYADD(requested_objective_changes, uid) + var/datum/objective/request_target = additions["target"] + if(!ispath(request_target)) + request_target = locate(request_target) in objectives + if(istype(request_target)) + RegisterSignal(request_target, COMSIG_PARENT_QDELETING, .proc/clean_request_from_del_objective) + requested_objective_changes[uid] = additions + + +/datum/antagonist/proc/remove_objective_change(uid) + if(!LAZYACCESS(requested_objective_changes, uid)) + return + var/datum/objective/request_target = requested_objective_changes[uid]["target"] + if(!ispath(request_target)) + request_target = locate(request_target) in objectives + if(istype(request_target)) + UnregisterSignal(request_target, COMSIG_PARENT_QDELETING) + LAZYREMOVE(requested_objective_changes, uid) diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 8484732d8d..011d175cfa 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -62,7 +62,7 @@ A.UpdateButtonIcon() /obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to activate the vest if he's actually wearing it. + if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to activate the vest if he's actually wearing it. return TRUE /obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(datum/icon_snapshot/entry) diff --git a/code/modules/antagonists/blob/blob/theblob.dm b/code/modules/antagonists/blob/blob/theblob.dm index a95f73f90d..8ca7e65c3f 100644 --- a/code/modules/antagonists/blob/blob/theblob.dm +++ b/code/modules/antagonists/blob/blob/theblob.dm @@ -75,11 +75,10 @@ /obj/structure/blob/CanAtmosPass(turf/T) return !atmosblock -/obj/structure/blob/CanAStarPass(ID, dir, caller) - . = 0 - if(ismovable(caller)) - var/atom/movable/mover = caller - . = . || (mover.pass_flags & PASSBLOB) +/obj/structure/blob/CanAStarPass(obj/item/card/id/ID, to_dir, atom/movable/caller) + . = FALSE + if(istype(caller)) + . = . || (caller.pass_flags & PASSBLOB) /obj/structure/blob/update_icon() //Updates color based on overmind color if we have an overmind. if(overmind) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 29e64a4913..c5f1cfbb40 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -84,7 +84,7 @@ return FALSE if(owner.current.reagents.has_reagent(/datum/reagent/consumable/garlic)) return FALSE - if(istype(owner.current.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(istype(owner.current.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) return FALSE owner.current.adjustStaminaLoss(-1.5 + (actual_regen * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. owner.current.adjustCloneLoss(-0.1 * (actual_regen * 2) * mult, 0) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm index 2fb7a2ccca..0a799021e9 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm @@ -94,7 +94,7 @@ if(display_error) to_chat(owner, "You have a stake in your chest! Your powers are useless.") return FALSE - if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(istype(owner.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) if(display_error) to_chat(owner, "") return FALSE diff --git a/code/modules/antagonists/bloodsucker/powers/brawn.dm b/code/modules/antagonists/bloodsucker/powers/brawn.dm index 5444cccd3f..db3ce92ec1 100644 --- a/code/modules/antagonists/bloodsucker/powers/brawn.dm +++ b/code/modules/antagonists/bloodsucker/powers/brawn.dm @@ -105,7 +105,7 @@ var/mob/living/carbon/user_C = owner //message_admins("DEBUG3: attempt_cast() [name] / [user_C.handcuffed] ") if(user_C.handcuffed) - var/obj/O = user_C.get_item_by_slot(SLOT_HANDCUFFED) + var/obj/O = user_C.get_item_by_slot(ITEM_SLOT_HANDCUFFED) if(istype(O)) user_C.clear_cuffs(O,TRUE) playsound(get_turf(usr), 'sound/effects/grillehit.ogg', 80, 1, -1) @@ -124,7 +124,7 @@ return TRUE */ // Destroy Leg Cuffs if(user_C.legcuffed) - var/obj/O = user_C.get_item_by_slot(SLOT_LEGCUFFED) + var/obj/O = user_C.get_item_by_slot(ITEM_SLOT_LEGCUFFED) if(istype(O)) user_C.clear_cuffs(O,TRUE) playsound(get_turf(usr), 'sound/effects/grillehit.ogg', 80, 1, -1) diff --git a/code/modules/antagonists/brainwashing/brainwashing.dm b/code/modules/antagonists/brainwashing/brainwashing.dm index bd7a9a43cb..65c58611cb 100644 --- a/code/modules/antagonists/brainwashing/brainwashing.dm +++ b/code/modules/antagonists/brainwashing/brainwashing.dm @@ -73,7 +73,7 @@ brainwash(C, objectives) var/obj_list = english_list(objectives) message_admins("[key_name_admin(admin)] has brainwashed [key_name_admin(C)] with the following objectives: [obj_list].") - C.log_message("has been force-brainwashed with the objective '[obj_list]' by admin [key_name(admin)]", LOG_ATTACK, log_globally = FALSE) + C.log_message("has been force-brainwashed with the objective '[obj_list]' by admin [key_name(admin)]", LOG_VICTIM) log_admin("[key_name(admin)] has brainwashed [key_name(C)] with the following objectives: [obj_list].") /datum/objective/brainwashing diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 208fefee70..4e68e27583 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -65,7 +65,9 @@ user.copy_languages(target, LANGUAGE_ABSORB) if(target.mind && user.mind)//if the victim and user have minds - target.mind.show_memory(user, 0) //I can read your mind, kekeke. Output all their notes. +//ambition start + to_chat(user, "[target.mind.show_memory()]") //I can read your mind, kekeke. Output all their notes. +//ambition end //Some of target's recent speech, so the changeling can attempt to imitate them better. //Recent as opposed to all because rounds tend to have a LOT of text. diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 8b3b1659d1..b440228a4e 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -17,7 +17,7 @@ return FALSE if(user.handcuffed) - var/obj/O = user.get_item_by_slot(SLOT_HANDCUFFED) + var/obj/O = user.get_item_by_slot(ITEM_SLOT_HANDCUFFED) if(!istype(O)) return FALSE user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ @@ -27,7 +27,7 @@ used = TRUE if(user.legcuffed) - var/obj/O = user.get_item_by_slot(SLOT_LEGCUFFED) + var/obj/O = user.get_item_by_slot(ITEM_SLOT_LEGCUFFED) if(!istype(O)) return FALSE user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ @@ -37,7 +37,7 @@ used = TRUE if(user.wear_suit && user.wear_suit.breakouttime && !used) - var/obj/item/clothing/suit/S = user.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/suit/S = user.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(!istype(S)) return FALSE user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index f4b74c5567..ec95ee4ef6 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -130,8 +130,8 @@ user.dropItemToGround(user.head) user.dropItemToGround(user.wear_suit) - user.equip_to_slot_if_possible(new suit_type(user), SLOT_WEAR_SUIT, 1, 1, 1) - user.equip_to_slot_if_possible(new helmet_type(user), SLOT_HEAD, 1, 1, 1) + user.equip_to_slot_if_possible(new suit_type(user), ITEM_SLOT_OCLOTHING, 1, 1, 1) + user.equip_to_slot_if_possible(new helmet_type(user), ITEM_SLOT_HEAD, 1, 1, 1) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.chem_recharge_slowdown += recharge_slowdown @@ -637,7 +637,7 @@ user.dropItemToGround(user.gloves) - user.equip_to_slot_if_possible(new glove_type(user), SLOT_GLOVES, 1, 1, 1) + user.equip_to_slot_if_possible(new glove_type(user), ITEM_SLOT_GLOVES, 1, 1, 1) playsound(user, 'sound/effects/blobattack.ogg', 30, 1) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.chem_recharge_slowdown += recharge_slowdown @@ -733,7 +733,7 @@ /obj/item/clothing/gloves/fingerless/pugilist/cling/equipped(mob/user, slot) . = ..() - if(current_equipped_slot == SLOT_GLOVES) + if(current_equipped_slot == ITEM_SLOT_GLOVES) to_chat(user, "With [src] formed around our arms, we are ready to fight.") /obj/item/clothing/gloves/fingerless/pugilist/cling/dropped(mob/user) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 9bda1bf5b9..2e684b514b 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -47,8 +47,8 @@ return if(!isturf(user.loc)) return - if(!AStar(user, target.loc, /turf/proc/Distance, changeling.sting_range, simulated_only = 0)) - return + if(!length(get_path_to(user, target, max_distance = changeling.sting_range, simulated_only = FALSE))) + return // no path within the sting's range is found. what a weird place to use the pathfinding system return 1 /obj/effect/proc_holder/changeling/sting/sting_feedback(mob/user, mob/target) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index ad507adcec..b5f2a358e6 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -38,7 +38,7 @@ /obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_HEAD && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_HEAD && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] head!", "The helmet flickers off your head, leaving only nausea!") @@ -105,7 +105,7 @@ /obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_WEAR_SUIT && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_OCLOTHING && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] body!", "The cuirass flickers off your body, leaving only nausea!") @@ -165,7 +165,7 @@ /obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_GLOVES && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_GLOVES && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] arms!", "The gauntlets flicker off your arms, leaving only nausea!") @@ -215,7 +215,7 @@ /obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot) ..() - if(slot == SLOT_SHOES && !is_servant_of_ratvar(user)) + if(slot == ITEM_SLOT_FEET && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] feet!", "The treads flicker off your feet, leaving only nausea!") diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm index daee9f5c2c..9342cd8ea5 100644 --- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm +++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm @@ -117,4 +117,4 @@ S.no_cost = TRUE if(seasonal_hat && seasonal_hat != "none") var/obj/item/hat = new seasonal_hat(construct) - construct.equip_to_slot_or_del(hat, SLOT_HEAD) + construct.equip_to_slot_or_del(hat, ITEM_SLOT_HEAD) diff --git a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm index e748da8765..138f04feb3 100644 --- a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm +++ b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm @@ -28,13 +28,13 @@ return ..() /obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot != SLOT_GLASSES) + if(slot != ITEM_SLOT_EYES) return 0 return ..() /obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot) ..() - if(slot != SLOT_GLASSES) + if(slot != ITEM_SLOT_EYES) update_status(FALSE) if(blaster.ranged_ability_user) blaster.remove_ranged_ability() @@ -55,13 +55,13 @@ addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later /obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user) - if(user && src != user.get_item_by_slot(SLOT_GLASSES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from + if(user && src != user.get_item_by_slot(ITEM_SLOT_EYES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from update_status(FALSE) if(blaster.ranged_ability_user) blaster.remove_ranged_ability() /obj/item/clothing/glasses/judicial_visor/attack_self(mob/user) - if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(SLOT_GLASSES)) + if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(ITEM_SLOT_EYES)) blaster.toggle(user) /obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to) @@ -89,7 +89,7 @@ if(!src) return 0 recharging = FALSE - if(user && src == user.get_item_by_slot(SLOT_GLASSES)) + if(user && src == user.get_item_by_slot(ITEM_SLOT_EYES)) to_chat(user, "Your [name] hums. It is ready.") else active = FALSE @@ -115,7 +115,7 @@ /obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target) if(..()) return - if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(SLOT_GLASSES)) + if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(ITEM_SLOT_EYES)) remove_ranged_ability() return diff --git a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm index 5e25b8de82..837844d0cb 100644 --- a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm +++ b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm @@ -75,7 +75,7 @@ /obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot) ..() - if(slot != SLOT_GLASSES || up) + if(slot != ITEM_SLOT_EYES || up) return if(HAS_TRAIT(user, TRAIT_BLIND)) to_chat(user, "\"You're blind, idiot. Stop embarrassing yourself.\"" ) diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index 7ba4ce0936..be4785f4a7 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -200,18 +200,18 @@ /datum/action/innate/clockwork_armaments/Activate() var/do_message = 0 - var/obj/item/I = owner.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/I = owner.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), SLOT_WEAR_SUIT) - I = owner.get_item_by_slot(SLOT_HEAD) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), ITEM_SLOT_OCLOTHING) + I = owner.get_item_by_slot(ITEM_SLOT_HEAD) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), SLOT_HEAD) - I = owner.get_item_by_slot(SLOT_GLOVES) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), ITEM_SLOT_HEAD) + I = owner.get_item_by_slot(ITEM_SLOT_GLOVES) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), SLOT_GLOVES) - I = owner.get_item_by_slot(SLOT_SHOES) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), ITEM_SLOT_GLOVES) + I = owner.get_item_by_slot(ITEM_SLOT_FEET) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), SLOT_SHOES) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), ITEM_SLOT_FEET) if(do_message) owner.visible_message("Strange armor appears on [owner]!", "A bright shimmer runs down your body, equipping you with Ratvarian armor.") playsound(owner, 'sound/magic/clockwork/fellowship_armory.ogg', 15 * do_message, TRUE) //get sound loudness based on how much we equipped @@ -309,16 +309,16 @@ continue T = get_turf(M) var/heal_ticks = 0 //one heal tick for each piece of ratvarian armor worn - var/obj/item/I = H.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/I = H.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ - I = H.get_item_by_slot(SLOT_HEAD) + I = H.get_item_by_slot(ITEM_SLOT_HEAD) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ - I = H.get_item_by_slot(SLOT_GLOVES) + I = H.get_item_by_slot(ITEM_SLOT_GLOVES) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ - I = H.get_item_by_slot(SLOT_SHOES) + I = H.get_item_by_slot(ITEM_SLOT_FEET) if(is_type_in_typecache(I, ratvarian_armor_typecache)) heal_ticks++ if(heal_ticks) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 521c32fe3d..0efde2d3db 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -678,12 +678,12 @@ uses-- var/mob/living/carbon/C = target C.visible_message("Otherworldly armor suddenly appears on [C]!") - C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,SLOT_W_UNIFORM) - C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), SLOT_HEAD) - C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), SLOT_WEAR_SUIT) - C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), SLOT_SHOES) - C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), SLOT_BACK) - C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), SLOT_GLOVES) + C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,ITEM_SLOT_ICLOTHING) + C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), ITEM_SLOT_HEAD) + C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), ITEM_SLOT_OCLOTHING) + C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), ITEM_SLOT_FEET) + C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK) + C.equip_to_slot_or_del(new /obj/item/clothing/gloves/fingerless/pugilist/hungryghost(user), ITEM_SLOT_GLOVES) if(C == user) qdel(src) //Clears the hands C.put_in_hands(new /obj/item/melee/cultblade(user)) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index a18523069e..2850cb85cc 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -49,7 +49,10 @@ cult_team = new_team /datum/antagonist/cult/proc/add_objectives() - objectives |= cult_team?.objectives +//ambition start + if(cult_team) + objectives |= cult_team.objectives +//ambition end /datum/antagonist/cult/Destroy() QDEL_NULL(communion) @@ -95,9 +98,9 @@ /datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) var/list/slots = list( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/T = new item_path(mob) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 7981a10701..3b73a998e7 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -1090,7 +1090,7 @@ structure_check() searches for nearby cultist structures required for the invoca /proc/hudFix(mob/living/carbon/human/target) if(!target || !target.client) return - var/obj/O = target.get_item_by_slot(SLOT_GLASSES) + var/obj/O = target.get_item_by_slot(ITEM_SLOT_EYES) if(istype(O, /obj/item/clothing/glasses/hud/security)) var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] AH.add_hud_to(target) diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 65ce89d33f..9f69f10887 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -460,10 +460,10 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", return -1 currentMob.change_mob_type( /mob/living/carbon/human, targetturf, null, 1) var/mob/living/carbon/human/H = owner.current - H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/lawyer/black(H), SLOT_W_UNIFORM) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), SLOT_SHOES) - H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), SLOT_HANDS) - H.equip_to_slot_or_del(new /obj/item/pen(H), SLOT_L_STORE) + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/civilian/lawyer/black(H), ITEM_SLOT_ICLOTHING) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), ITEM_SLOT_FEET) + H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), ITEM_SLOT_HANDS) + H.equip_to_slot_or_del(new /obj/item/pen(H), ITEM_SLOT_LPOCKET) if(SOULVALUE >= BLOOD_THRESHOLD) H.set_species(/datum/species/lizard, 1) H.underwear = "Nude" diff --git a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm index fc0a5cdc6a..d7334d6c9c 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_antag.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_antag.dm @@ -72,9 +72,9 @@ /datum/antagonist/heretic/proc/ecult_give_item(obj/item/item_path, mob/living/carbon/human/H) var/list/slots = list( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/T = new item_path(H) diff --git a/code/modules/antagonists/eldritch_cult/eldritch_items.dm b/code/modules/antagonists/eldritch_cult/eldritch_items.dm index 28228aedd6..c0f3e2be7c 100644 --- a/code/modules/antagonists/eldritch_cult/eldritch_items.dm +++ b/code/modules/antagonists/eldritch_cult/eldritch_items.dm @@ -145,7 +145,7 @@ /obj/item/clothing/neck/eldritch_amulet/equipped(mob/user, slot) . = ..() - if(ishuman(user) && user.mind && slot == SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user))) + if(ishuman(user) && user.mind && slot == ITEM_SLOT_NECK && (IS_HERETIC(user) || IS_HERETIC_MONSTER(user))) ADD_TRAIT(user, trait, CLOTHING_TRAIT) user.update_sight() @@ -239,7 +239,7 @@ /obj/item/clothing/mask/void_mask/equipped(mob/user, slot) . = ..() - if(ishuman(user) && user.mind && slot == SLOT_WEAR_MASK) + if(ishuman(user) && user.mind && slot == ITEM_SLOT_MASK) local_user = user START_PROCESSING(SSobj, src) diff --git a/code/modules/antagonists/ert/ert.dm b/code/modules/antagonists/ert/ert.dm index 43a7e561c0..a8e57ee08b 100644 --- a/code/modules/antagonists/ert/ert.dm +++ b/code/modules/antagonists/ert/ert.dm @@ -234,8 +234,8 @@ var/obj/O = new C(owner.current) var/list/slots = list ( "backpack" = ITEM_SLOT_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/mob/living/carbon/human/H = owner.current var/equipped = H.equip_in_one_of_slots(O, slots) diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index ffca67b882..b2fce0269a 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -45,11 +45,11 @@ qdel(I) for(var/obj/item/I in H.held_items) qdel(I) - H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), SLOT_W_UNIFORM) - H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS) - H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_SHOES) - H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), SLOT_L_STORE) + H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/kilt/highlander(H), ITEM_SLOT_ICLOTHING) + H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), ITEM_SLOT_EARS) + H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), ITEM_SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), ITEM_SLOT_FEET) + H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), ITEM_SLOT_LPOCKET) for(var/obj/item/pinpointer/nuke/P in H) P.attack_self(H) var/obj/item/card/id/W = new(H) @@ -60,7 +60,7 @@ W.registered_name = H.real_name ADD_TRAIT(W, TRAIT_NODROP, HIGHLANDER) W.update_label(H.real_name) - H.equip_to_slot_or_del(W, SLOT_WEAR_ID) + H.equip_to_slot_or_del(W, ITEM_SLOT_ID) sword = new(H) if(!GLOB.highlander) diff --git a/code/modules/antagonists/overthrow/overthrow.dm b/code/modules/antagonists/overthrow/overthrow.dm index f086f5db97..fffd8f9237 100644 --- a/code/modules/antagonists/overthrow/overthrow.dm +++ b/code/modules/antagonists/overthrow/overthrow.dm @@ -127,9 +127,9 @@ // Give AI hacking board var/obj/item/aiModule/core/full/overthrow/O = new(H) var/list/slots = list ( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/where = H.equip_in_one_of_slots(O, slots, critical = TRUE) if (!where) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index 925527f35e..e4625b4ef2 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -272,9 +272,9 @@ if(give_flash) var/obj/item/assembly/flash/T = new(H) var/list/slots = list ( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/where = H.equip_in_one_of_slots(T, slots, critical = TRUE) if (!where) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 78403d4e27..f184961004 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -240,9 +240,9 @@ folder = new/obj/item/folder/syndicate/blue(mob.loc) var/list/slots = list ( - "backpack" = SLOT_IN_BACKPACK, - "left pocket" = SLOT_L_STORE, - "right pocket" = SLOT_R_STORE + "backpack" = ITEM_SLOT_BACKPACK, + "left pocket" = ITEM_SLOT_LPOCKET, + "right pocket" = ITEM_SLOT_RPOCKET ) var/where = "At your feet" diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 44f267358a..6f7ba374f7 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -229,12 +229,12 @@ H.dropItemToGround(I) var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire) - H.equip_to_slot_or_del(new hat(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), SLOT_W_UNIFORM) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES) + H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/claymore(H), TRUE) - H.equip_to_slot_or_del(new /obj/item/spear(H), SLOT_BACK) + H.equip_to_slot_or_del(new /obj/item/spear(H), ITEM_SLOT_BACK) /obj/item/voodoo diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index c52436a3c4..63bb2b5b57 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -208,17 +208,17 @@ if(!istype(master_mob) || !istype(H)) return if(master_mob.ears) - H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS) + H.equip_to_slot_or_del(new master_mob.ears.type, ITEM_SLOT_EARS) if(master_mob.w_uniform) - H.equip_to_slot_or_del(new master_mob.w_uniform.type, SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new master_mob.w_uniform.type, ITEM_SLOT_ICLOTHING) if(master_mob.shoes) - H.equip_to_slot_or_del(new master_mob.shoes.type, SLOT_SHOES) + H.equip_to_slot_or_del(new master_mob.shoes.type, ITEM_SLOT_FEET) if(master_mob.wear_suit) - H.equip_to_slot_or_del(new master_mob.wear_suit.type, SLOT_WEAR_SUIT) + H.equip_to_slot_or_del(new master_mob.wear_suit.type, ITEM_SLOT_OCLOTHING) if(master_mob.head) - H.equip_to_slot_or_del(new master_mob.head.type, SLOT_HEAD) + H.equip_to_slot_or_del(new master_mob.head.type, ITEM_SLOT_HEAD) if(master_mob.back) - H.equip_to_slot_or_del(new master_mob.back.type, SLOT_BACK) + H.equip_to_slot_or_del(new master_mob.back.type, ITEM_SLOT_BACK) //Operation: Fuck off and scare people owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) diff --git a/code/modules/atmospherics/auxgm/gas_types.dm b/code/modules/atmospherics/auxgm/gas_types.dm index aaf3945aac..6ee234d64d 100644 --- a/code/modules/atmospherics/auxgm/gas_types.dm +++ b/code/modules/atmospherics/auxgm/gas_types.dm @@ -129,7 +129,7 @@ heat_penalty = 10 transmit_modifier = 30 fire_products = list(GAS_H2O = 1) - enthalpy = 40000 + enthalpy = 300000 fire_burn_rate = 2 fire_radiation_released = 50 // arbitrary number, basically 60 moles of trit burning will just barely start to harm you fire_temperature = FIRE_MINIMUM_TEMPERATURE_TO_EXIST - 50 diff --git a/code/modules/awaymissions/mission_code/jungleresort.dm b/code/modules/awaymissions/mission_code/jungleresort.dm index 6c82b2c0c4..f520cfdbee 100644 --- a/code/modules/awaymissions/mission_code/jungleresort.dm +++ b/code/modules/awaymissions/mission_code/jungleresort.dm @@ -27,7 +27,7 @@ /obj/item/clothing/head/rice_hat/cursed/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 5d30ccd907..ba3f07bd7d 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -589,7 +589,7 @@ back = /obj/item/storage/backpack mask = /obj/item/clothing/mask/breath r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = SLOT_R_STORE + internals_slot = ITEM_SLOT_RPOCKET /obj/effect/mob_spawn/human/syndicatesoldier/coldres/alive/female mob_gender = FEMALE diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 9948802bc9..4b93f42d4d 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -154,7 +154,15 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( var/atom/target = locate(href_list["statpanel_item_target"]) if(!target) return - Click(target, target.loc, null, "[href_list["statpanel_item_shiftclick"]?"shift=1;":null][href_list["statpanel_item_ctrlclick"]?"ctrl=1;":null]&alt=[href_list["statpanel_item_altclick"]?"alt=1;":null]", FALSE, "statpanel") + var/button = "left=1" + switch(href_list["statpanel_item_click"]) + if("middle") + button = "middle=1" + if("right") + button = "right=1" + else + button = "left=1" + Click(target, target.loc, null, "[button];[href_list["statpanel_item_shiftclick"]?"shift=1;":null][href_list["statpanel_item_ctrlclick"]?"ctrl=1;":null]&alt=[href_list["statpanel_item_altclick"]?"alt=1;":null]", FALSE, "statpanel") /client/proc/is_content_unlocked() if(!prefs.unlock_content) @@ -1012,6 +1020,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( var/list/actualview = getviewsize(view) update_clickcatcher() parallax_holder.Reset() + mob.hud_used.screentip_text.update_view() mob.reload_fullscreen() if (isliving(mob)) var/mob/living/M = mob diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 3272060835..5fcb6787d2 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -62,6 +62,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/UI_style = null var/outline_enabled = TRUE var/outline_color = COLOR_THEME_MIDNIGHT + var/screentip_pref = TRUE + var/screentip_color = "#ffd391" var/buttons_locked = FALSE var/hotkeys = FALSE @@ -788,6 +790,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "UI Style: [UI_style]
    " dat += "Outline: [outline_enabled ? "Enabled" : "Disabled"]
    " dat += "Outline Color: [outline_color ? "" : "Theme-based (null)"]    Change
    " + dat += "Screentip: [screentip_pref ? "Enabled" : "Disabled"]
    " + dat += "Screentip Color:     Change
    " dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
    " dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
    " dat += "Show Runechat Chat Bubbles: [chat_on_map ? "Enabled" : "Disabled"]
    " @@ -2136,6 +2140,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/S = instance if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) continue + if(S.ignore) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_taur_list[S.name] = path var/new_taur @@ -2746,6 +2752,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/pickedOutlineColor = input(user, "Choose your outline color.", "General Preference", outline_color) as color|null if(pickedOutlineColor != pickedOutlineColor) outline_color = pickedOutlineColor // nullable + if("screentip_pref") + screentip_pref = !screentip_pref + if("screentip_color") + var/pickedScreentipColor = input(user, "Choose your screentip color.", "General Preference", screentip_color) as color|null + if(pickedScreentipColor) + screentip_color = pickedScreentipColor if("tgui_lock") tgui_lock = !tgui_lock if("winflash") @@ -3066,6 +3078,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) save_character() character.dna.features = features.Copy() + character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE) character.dna.species.eye_type = eye_type if(chosen_limb_id && (chosen_limb_id in character.dna.species.allowed_limb_ids)) @@ -3224,10 +3237,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/occupied_slots = L[initial(G.category)] ? L[initial(G.category)] + 1 : 1 LAZYSET(L, initial(G.category), occupied_slots) switch(slot) - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(L[LOADOUT_CATEGORY_BACKPACK] < BACKPACK_SLOT_AMT) return TRUE - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(L[LOADOUT_CATEGORY_HANDS] < HANDS_SLOT_AMT) return TRUE else diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 72b2f5d949..628a51ed44 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -385,6 +385,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["UI_style"] >> UI_style S["outline_color"] >> outline_color S["outline_enabled"] >> outline_enabled + S["screentip_pref"] >> screentip_pref + S["screentip_color"] >> screentip_color S["hotkeys"] >> hotkeys S["chat_on_map"] >> chat_on_map S["max_chat_length"] >> max_chat_length @@ -567,6 +569,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["UI_style"], UI_style) WRITE_FILE(S["outline_enabled"], outline_enabled) WRITE_FILE(S["outline_color"], outline_color) + WRITE_FILE(S["screentip_pref"], screentip_pref) + WRITE_FILE(S["screentip_color"], screentip_color) WRITE_FILE(S["hotkeys"], hotkeys) WRITE_FILE(S["chat_on_map"], chat_on_map) WRITE_FILE(S["max_chat_length"], max_chat_length) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 008772663d..697afd4885 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -63,8 +63,8 @@ // it's TRAIT_NODROP D.dropItemToGround(target, TRUE) qdel(old_headgear) - // where is `SLOT_HEAD` defined? WHO KNOWS - D.equip_to_slot(new_headgear, SLOT_HEAD) + // where is `ITEM_SLOT_HEAD` defined? WHO KNOWS + D.equip_to_slot(new_headgear, ITEM_SLOT_HEAD) return 1 diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 1a7c220550..572cce28b2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -219,7 +219,7 @@ ..() if (!istype(user)) return - if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? + if(slot_flags & slot) //Was equipped to a valid slot for this item? if(iscarbon(user) && LAZYLEN(zones_disabled)) RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/bristle) if(LAZYLEN(user_vars_to_edit)) @@ -450,7 +450,7 @@ BLIND // can't see anything return FALSE // Skip species restriction checks on non-equipment slots - if(slot in list(SLOT_IN_BACKPACK, SLOT_L_STORE, SLOT_R_STORE)) + if(slot in list(ITEM_SLOT_BACKPACK, ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET)) return TRUE if(species_restricted && ishuman(M)) diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index f58be1373a..a2f0c80041 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -20,7 +20,7 @@ /obj/item/clothing/ears/earmuffs/ComponentInitialize() . = ..() AddElement(/datum/element/earhealing) - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) /obj/item/clothing/ears/headphones name = "headphones" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 737bbbb522..9726ab6b59 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -115,7 +115,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) /obj/item/clothing/glasses/science/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) return 1 /obj/item/clothing/glasses/night @@ -158,7 +158,7 @@ /obj/item/clothing/glasses/eyepatch/syndicate/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) user.visible_message("Circuitry from the eyepatch links itself to your brain as you put on the eyepatch.") if(HAS_TRAIT(user, TRAIT_POOR_AIM)) user.visible_message("You hear a fizzing noise from the circuit. That can't be good.") @@ -351,7 +351,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) user.become_blind("blindfold_[REF(src)]") /obj/item/clothing/glasses/sunglasses/blindfold/dropped(mob/living/carbon/human/user) @@ -372,7 +372,7 @@ var/colored_before = FALSE /obj/item/clothing/glasses/sunglasses/blindfold/white/equipped(mob/living/carbon/human/user, slot) - if(ishuman(user) && slot == SLOT_GLASSES) + if(ishuman(user) && slot == ITEM_SLOT_EYES) update_icon(user) user.update_inv_glasses() //Color might have been changed by update_icon. ..() diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index cad91315a3..c848dbdfa8 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -18,7 +18,7 @@ /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) ..() - if(hud_type && slot == SLOT_GLASSES) + if(hud_type && slot == ITEM_SLOT_EYES) var/datum/atom_hud/H = GLOB.huds[hud_type] H.add_hud_to(user) diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index ba3ea2830e..db77f17218 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -17,7 +17,7 @@ /obj/item/clothing/glasses/phantomthief/syndicate/examine(mob/user) . = ..() - if(user.get_item_by_slot(SLOT_GLASSES) == src) + if(user.get_item_by_slot(ITEM_SLOT_EYES) == src) if(world.time >= nextadrenalinepop) . += "The built-in adrenaline injector is ready for use." else @@ -33,7 +33,7 @@ . = ..() if(!istype(user)) return - if(slot != SLOT_GLASSES) + if(slot != ITEM_SLOT_EYES) return RegisterSignal(user, COMSIG_LIVING_COMBAT_ENABLED, .proc/injectadrenaline) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 836b845faa..1e3f2c08cf 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -31,7 +31,7 @@ C.visible_message("[U] sprays glittery rubber on the hands of [C]!") else user.visible_message("The rubber fails to stick to [C]'s hands!", - "The rubber fails to stick to [C]'s [(SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!") + "The rubber fails to stick to [C]'s [(ITEM_SLOT_GLOVES in C.check_obscured_slots()) ? "unexposed" : ""] hands!") qdel(src) @@ -226,7 +226,7 @@ /obj/item/clothing/gloves/color/latex/equipped(mob/user, slot) ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) ADD_TRAIT(user, carrytrait, GLOVE_TRAIT) /obj/item/clothing/gloves/color/latex/dropped(mob/user) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 8c8400a45d..381e70161b 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -9,6 +9,8 @@ equip_delay_other = 20 cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT strip_mod = 0.9 custom_price = PRICE_ALMOST_CHEAP @@ -36,7 +38,7 @@ /obj/item/clothing/gloves/fingerless/pugilist/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) wornonce = TRUE if((HAS_TRAIT(user, TRAIT_NOPUGILIST))) to_chat(user, "What purpose is there to don the weapons of pugilism if you're already well-practiced in martial arts? Mixing arts is blasphemous!") @@ -195,7 +197,7 @@ /obj/item/clothing/gloves/fingerless/ablative/equipped(mob/user, slot) . = ..() - if(current_equipped_slot == SLOT_GLOVES) + if(current_equipped_slot == ITEM_SLOT_GLOVES) RegisterSignal(user, COMSIG_LIVING_ACTIVE_PARRY_START, .proc/get_component_parry_data) wornonce = TRUE @@ -262,7 +264,7 @@ /obj/item/clothing/gloves/fingerless/pugilist/mauler/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) wornonce = TRUE if((HAS_TRAIT(user, TRAIT_NOPUGILIST))) return @@ -349,6 +351,8 @@ transfer_prints = TRUE cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT strip_mod = 0.9 /obj/item/clothing/gloves/evening/black diff --git a/code/modules/clothing/gloves/mittens.dm b/code/modules/clothing/gloves/mittens.dm index 42250aae2f..b1b17c9afe 100644 --- a/code/modules/clothing/gloves/mittens.dm +++ b/code/modules/clothing/gloves/mittens.dm @@ -6,6 +6,8 @@ //item_color = "white" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT resistance_flags = NONE /obj/item/clothing/gloves/mittens/random diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 39d39ba58f..754a72ff0c 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -6,6 +6,8 @@ transfer_prints = TRUE cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT resistance_flags = NONE //custom_premium_price = PRICE_EXPENSIVE /// For storing our tackler datum so we can remove it after @@ -28,7 +30,7 @@ if(!ishuman(user)) return switch(slot) // I didn't like how it looked - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) var/mob/living/carbon/human/H = user tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance) else @@ -103,7 +105,7 @@ /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/equipped(mob/user, slot) . = ..() - if(slot == SLOT_GLOVES) + if(slot == ITEM_SLOT_GLOVES) ADD_TRAIT(user, carrytrait, GLOVE_TRAIT) /obj/item/clothing/gloves/tackler/combat/insulated/infiltrator/dropped(mob/user) diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index 6ad3a19694..ea58d0bc88 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -34,7 +34,7 @@ var/obj/item/WH = H.head H.visible_message("[src] bounces off [H]'s [WH.name]!", "[src] bounces off your [WH.name], falling to the floor.") return - if(H.equip_to_slot_if_possible(src, SLOT_HEAD, FALSE, TRUE)) + if(H.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD, FALSE, TRUE)) H.visible_message("[src] lands neatly on [H]'s head!", "[src] lands perfectly onto your head!") return if(iscyborg(hit_atom)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 6b698f9619..126b1af40f 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -27,7 +27,7 @@ /obj/item/clothing/head/helmet/ComponentInitialize() . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_HEAD)) + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_HEAD)) /obj/item/clothing/head/helmet/examine(mob/user) . = ..() diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 5af694ea1b..592614af61 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -220,7 +220,7 @@ /obj/item/clothing/head/warden/drill/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 76e8ca53df..eb48048c00 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -264,7 +264,8 @@ item_state = "that" cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT - + heat_protection = HEAD + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT dog_fashion = /datum/dog_fashion/head/santa beepsky_fashion = /datum/beepsky_fashion/santa @@ -354,7 +355,7 @@ /obj/item/clothing/head/frenchberet/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 247062581d..21cec4f7d2 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -93,6 +93,8 @@ var/earflaps = TRUE cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + heat_protection = HEAD + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT ///Sprite visible when the ushanka flaps are folded up. var/upsprite = "ushankaup" ///Sprite visible when the ushanka flaps are folded down. @@ -147,7 +149,7 @@ beepsky_fashion = /datum/beepsky_fashion/cat /obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot) - if(ishuman(user) && slot == SLOT_HEAD) + if(ishuman(user) && slot == ITEM_SLOT_HEAD) update_icon(user) user.update_inv_head() //Color might have been changed by update_icon. ..() @@ -186,7 +188,7 @@ /obj/item/clothing/head/cardborg/equipped(mob/living/user, slot) ..() - if(ishuman(user) && slot == SLOT_HEAD) + if(ishuman(user) && slot == ITEM_SLOT_HEAD) var/mob/living/carbon/human/H = user if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg)) var/obj/item/clothing/suit/cardborg/CB = H.wear_suit @@ -265,7 +267,7 @@ /obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot != SLOT_HEAD || warped) + if(slot != ITEM_SLOT_HEAD || warped) return if(paranoia) QDEL_NULL(paranoia) @@ -295,7 +297,7 @@ if(!isliving(loc) || !paranoia) return var/mob/living/target = loc - if(target.get_item_by_slot(SLOT_HEAD) != src) + if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src) return QDEL_NULL(paranoia) if(!target.IsUnconscious()) diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index ef7c6a1926..cca13ce1d8 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -18,7 +18,7 @@ /obj/item/clothing/mask/equipped(mob/M, slot) . = ..() - if (slot == SLOT_WEAR_MASK && modifies_speech) + if (slot == ITEM_SLOT_MASK && modifies_speech) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/code/modules/clothing/masks/cluwne.dm b/code/modules/clothing/masks/cluwne.dm index a1177e2b47..f39f5e73b8 100644 --- a/code/modules/clothing/masks/cluwne.dm +++ b/code/modules/clothing/masks/cluwne.dm @@ -55,7 +55,7 @@ . = ..() if(!ishuman(user)) return - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) var/mob/living/carbon/human/H = user H.dna.add_mutation(CLUWNEMUT) return @@ -88,7 +88,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) if(is_cursed && can_cluwne) //logic predetermined log_admin("[key_name(H)] was made into a cluwne by [src]") message_admins("[key_name(H)] got cluwned by [src]") diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index c33e6098c0..d78488ec0b 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -119,6 +119,23 @@ to_chat(user, "Your Clown Mask has now morphed into [choice], all praise the Honkmother!") return TRUE +/obj/item/clothing/mask/gas/clown_hat_polychromic + name = "polychromic clown wig and mask" + desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." + clothing_flags = ALLOWINTERNALS + icon_state = "clown" + item_state = "clown_hat" + dye_color = "clown" + w_class = WEIGHT_CLASS_SMALL + flags_cover = MASKCOVERSEYES + resistance_flags = FLAMMABLE + dog_fashion = /datum/dog_fashion/head/clown + var/list/poly_colors = list("#FF8000", "#FFFFFF", "#FF0000", "#0000FF", "#FFFF00") + +/obj/item/clothing/mask/gas/clown_hat_polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 5, names = list("Hair", "Frame", "Mouth", "Eyes", "Markings")) + /obj/item/clothing/mask/gas/clown_hat/sexy name = "sexy-clown wig and mask" desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index e6a0425920..45da6a9a75 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -290,7 +290,7 @@ . = ..() if(iscarbon(user)) var/mob/living/carbon/C = user - if((C.get_item_by_slot(SLOT_HEAD == src)) || (C.get_item_by_slot(SLOT_WEAR_MASK) == src)) + if((C.get_item_by_slot(ITEM_SLOT_HEAD == src)) || (C.get_item_by_slot(ITEM_SLOT_MASK) == src)) to_chat(user, "You can't tie [src] while wearing it!") return if(slot_flags & ITEM_SLOT_HEAD) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 28a3343ae6..1f40df0f57 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -226,7 +226,7 @@ return /obj/item/clothing/neck/petcollar/locked/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) - if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE) + if(loc == user && user.get_item_by_slot(ITEM_SLOT_NECK) && lock != FALSE) to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!") return ..() @@ -323,7 +323,7 @@ . = ..() if(iscarbon(user)) var/mob/living/carbon/C = user - if(C.get_item_by_slot(SLOT_NECK) == src) + if(C.get_item_by_slot(ITEM_SLOT_NECK) == src) to_chat(user, "You can't untie [src] while wearing it!") return if(user.is_holding(src)) diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm index ac852a35a8..99fc5d1359 100644 --- a/code/modules/clothing/outfits/vr.dm +++ b/code/modules/clothing/outfits/vr.dm @@ -36,7 +36,7 @@ . = ..() var/key = H.key ? H.key : preference_source ? preference_source.key : null var/obj/item/uplink/U = new /obj/item/uplink/nuclear_restricted(H, key, 80) - H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(U, ITEM_SLOT_BACKPACK) var/obj/item/implant/weapons_auth/W = new W.implant(H) var/obj/item/implant/explosive/E = new diff --git a/code/modules/clothing/outfits/vv_outfit.dm b/code/modules/clothing/outfits/vv_outfit.dm index b9d9bf0b22..de230b254e 100644 --- a/code/modules/clothing/outfits/vv_outfit.dm +++ b/code/modules/clothing/outfits/vv_outfit.dm @@ -10,35 +10,35 @@ /datum/outfit/varedit/proc/set_equipement_by_slot(slot,item_path) switch(slot) - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) uniform = item_path - if(SLOT_BACK) + if(ITEM_SLOT_BACK) back = item_path - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) suit = item_path - if(SLOT_BELT) + if(ITEM_SLOT_BELT) belt = item_path - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) gloves = item_path - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) shoes = item_path - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) head = item_path - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) mask = item_path - if(SLOT_NECK) + if(ITEM_SLOT_NECK) neck = item_path - if(SLOT_EARS) + if(ITEM_SLOT_EARS) ears = item_path - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) glasses = item_path - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) id = item_path - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) suit_store = item_path - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) l_pocket = item_path - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) r_pocket = item_path @@ -68,7 +68,7 @@ //Copy equipment var/list/result = list() - var/list/slots_to_check = list(SLOT_W_UNIFORM,SLOT_BACK,SLOT_WEAR_SUIT,SLOT_BELT,SLOT_GLOVES,SLOT_SHOES,SLOT_HEAD,SLOT_WEAR_MASK,SLOT_NECK,SLOT_EARS,SLOT_GLASSES,SLOT_WEAR_ID,SLOT_S_STORE,SLOT_L_STORE,SLOT_R_STORE) + var/list/slots_to_check = list(ITEM_SLOT_ICLOTHING,ITEM_SLOT_BACK,ITEM_SLOT_OCLOTHING,ITEM_SLOT_BELT,ITEM_SLOT_GLOVES,ITEM_SLOT_FEET,ITEM_SLOT_HEAD,ITEM_SLOT_MASK,ITEM_SLOT_NECK,ITEM_SLOT_EARS,ITEM_SLOT_EYES,ITEM_SLOT_ID,ITEM_SLOT_SUITSTORE,ITEM_SLOT_LPOCKET,ITEM_SLOT_RPOCKET) for(var/s in slots_to_check) var/obj/item/I = get_item_by_slot(s) var/vedits = collect_vv(I) @@ -79,7 +79,7 @@ //Copy access O.stored_access = list() - var/obj/item/id_slot = get_item_by_slot(SLOT_WEAR_ID) + var/obj/item/id_slot = get_item_by_slot(ITEM_SLOT_ID) if(id_slot) O.stored_access |= id_slot.GetAccess() //Copy hands @@ -98,7 +98,7 @@ result["RHAND"] = vedits O.vv_values = result //Copy backpack contents if exist. - var/obj/item/backpack = get_item_by_slot(SLOT_BACK) + var/obj/item/backpack = get_item_by_slot(ITEM_SLOT_BACK) if(istype(backpack) && SEND_SIGNAL(backpack, COMSIG_CONTAINS_STORAGE)) var/list/bp_stuff = list() var/list/typecounts = list() @@ -136,7 +136,7 @@ for(var/vname in edits) I.vv_edit_var(vname,edits[vname]) //Apply access - var/obj/item/id_slot = H.get_item_by_slot(SLOT_WEAR_ID) + var/obj/item/id_slot = H.get_item_by_slot(ITEM_SLOT_ID) if(id_slot) var/obj/item/card/id/card = id_slot.GetID() if(istype(card)) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index c98824fa7f..d8ac875df5 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -87,7 +87,7 @@ /obj/item/clothing/shoes/equipped(mob/user, slot) . = ..() - if(offset && slot_flags & slotdefine2slotbit(slot)) + if(offset && (slot_flags & slot)) user.pixel_y += offset worn_y_dimension -= (offset * 2) user.update_inv_shoes() diff --git a/code/modules/clothing/shoes/cluwne.dm b/code/modules/clothing/shoes/cluwne.dm index fbe1ba624b..aec57a2148 100644 --- a/code/modules/clothing/shoes/cluwne.dm +++ b/code/modules/clothing/shoes/cluwne.dm @@ -23,7 +23,7 @@ . = ..() if(!ishuman(user)) return - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) var/mob/living/carbon/human/H = user H.dna.add_mutation(CLUWNEMUT) return diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 773b1ac361..cd01d6f099 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -96,7 +96,7 @@ /obj/item/clothing/shoes/magboots/crushing/equipped(mob/user,slot) . = ..() - if (slot == SLOT_SHOES && magpulse) + if (slot == ITEM_SLOT_FEET && magpulse) RegisterSignal(user, COMSIG_MOVABLE_MOVED,.proc/crush) /obj/item/clothing/shoes/magboots/crushing/dropped(mob/user) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 669ffa1780..7a67308760 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -28,7 +28,7 @@ /obj/item/clothing/shoes/combat/sneakboots/equipped(mob/user, slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) /obj/item/clothing/shoes/combat/sneakboots/dropped(mob/user) @@ -112,7 +112,7 @@ /obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) if(enabled_waddle) waddle = user.AddComponent(/datum/component/waddling) if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)) @@ -340,7 +340,7 @@ /obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action) if(!isliving(user)) return - if(!istype(user.get_item_by_slot(SLOT_SHOES), /obj/item/clothing/shoes/wheelys)) + if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys)) to_chat(user, "You must be wearing the wheely-heels to use them!") return if(!(W.is_occupant(user))) @@ -460,7 +460,7 @@ /obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move) /obj/item/clothing/shoes/wallwalkers/dropped(mob/user) diff --git a/code/modules/clothing/shoes/taeclowndo.dm b/code/modules/clothing/shoes/taeclowndo.dm index c0f8a77543..82f467d8b1 100644 --- a/code/modules/clothing/shoes/taeclowndo.dm +++ b/code/modules/clothing/shoes/taeclowndo.dm @@ -15,7 +15,7 @@ var/mob/living/carbon/human/H = user if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY))) return - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) spells = new for(var/spell in spelltypes) var/obj/effect/proc_holder/spell/S = new spell @@ -29,7 +29,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(SLOT_SHOES) == src) + if(H.get_item_by_slot(ITEM_SLOT_FEET) == src) for(var/spell in spells) var/obj/effect/proc_holder/spell/S = spell H.mind.spell_list.Remove(S) diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 6642731d8b..e30b0953c6 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -107,7 +107,7 @@ teleport_now.UpdateButtonIcon() - var/list/nonsafe_slots = list(SLOT_BELT, SLOT_BACK) + var/list/nonsafe_slots = list(ITEM_SLOT_BELT, ITEM_SLOT_BACK) var/list/exposed = list() for(var/slot in nonsafe_slots) var/obj/item/slot_item = user.get_item_by_slot(slot) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 18138bf4b6..d8a6426295 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -50,12 +50,12 @@ soundloop.stop(user) /obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_HEAD) + if(slot == ITEM_SLOT_HEAD) return 1 /obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot) ..() - if(slot != SLOT_HEAD) + if(slot != ITEM_SLOT_HEAD) if(suit) suit.RemoveHelmet() soundloop.stop(user) @@ -118,7 +118,7 @@ if(jetpack) to_chat(user, "[src] already has a jetpack installed.") return - if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade. + if(src == user.get_item_by_slot(ITEM_SLOT_OCLOTHING)) //Make sure the player is not wearing the suit before applying the upgrade. to_chat(user, "You cannot install the upgrade to [src] while wearing it.") return @@ -130,7 +130,7 @@ if(!jetpack) to_chat(user, "[src] has no jetpack installed.") return - if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) + if(src == user.get_item_by_slot(ITEM_SLOT_OCLOTHING)) to_chat(user, "You cannot remove the jetpack from [src] while wearing it.") return @@ -145,7 +145,7 @@ /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) ..() if(jetpack) - if(slot == SLOT_WEAR_SUIT) + if(slot == ITEM_SLOT_OCLOTHING) for(var/X in jetpack.actions) var/datum/action/A = X A.Grant(user) @@ -158,7 +158,7 @@ A.Remove(user) /obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. + if(slot == ITEM_SLOT_OCLOTHING) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. return 1 //Engineering @@ -488,7 +488,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/medical/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED] DHUD.add_hud_to(user) @@ -528,7 +528,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.add_hud_to(user) @@ -702,7 +702,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.add_hud_to(user) ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "mason_hardsuit") @@ -726,7 +726,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot) . = ..() - if(slot != SLOT_WEAR_SUIT) + if(slot != ITEM_SLOT_OCLOTHING) if(listeningTo) UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED) return diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index c944b2aa1f..f51593b590 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -234,7 +234,6 @@ Contains: icon_state = "ert_medical" item_state = "ert_medical" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med - species_exception = list(/datum/species/angel) //Red alert ERT @@ -296,7 +295,6 @@ Contains: icon_state = "ert_medical-alert" item_state = "ert_medical-alert" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/alert/med - species_exception = list(/datum/species/angel) /obj/item/clothing/suit/space/eva name = "EVA suit" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 513ad94365..57d2ae5c69 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -206,7 +206,7 @@ /obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot) ..() - if(slot == SLOT_WEAR_SUIT) + if(slot == ITEM_SLOT_OCLOTHING) disguise(user) /obj/item/clothing/suit/cardborg/dropped(mob/living/user) @@ -279,7 +279,9 @@ item_state = "labcoat" body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/gun/ballistic/automatic/speargun, /obj/item/staff/bostaff) hoodtype = /obj/item/clothing/head/hooded/carp_hood @@ -289,7 +291,9 @@ icon_state = "carp_casual" body_parts_covered = HEAD cold_protection = HEAD + heat_protection = HEAD min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT flags_inv = HIDEHAIR|HIDEEARS /obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts? @@ -362,7 +366,10 @@ item_state = "ran_suit" body_parts_covered = CHEST|GROIN|LEGS flags_inv = HIDEJUMPSUIT|HIDETAUR - heat_protection = CHEST|GROIN|LEGS //fluffy tails! + cold_protection = CHEST|GROIN|LEGS //fluffy tails! + min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Bleh, same as winter coat + heat_protection = CHEST|GROIN|LEGS + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/head/ran @@ -419,7 +426,9 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio) body_parts_covered = CHEST|ARMS cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON /obj/item/clothing/suit/jacket/flannel @@ -520,6 +529,7 @@ icon_state = "leathercoat" body_parts_covered = CHEST|GROIN|ARMS|LEGS cold_protection = CHEST|GROIN|ARMS|LEGS + heat_protection = CHEST|GROIN|ARMS|LEGS mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/suit/jacket/puffer @@ -537,6 +547,7 @@ item_state = "armor" body_parts_covered = CHEST|GROIN cold_protection = CHEST|GROIN + heat_protection = CHEST|GROIN armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/suit/jacket/miljacket @@ -655,7 +666,9 @@ item_state = "coatwinter" body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS + heat_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter) mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON @@ -666,7 +679,9 @@ icon_state = "winterhood" body_parts_covered = HEAD cold_protection = HEAD + heat_protection = HEAD min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + max_heat_protection_temperature = COAT_MAX_TEMP_PROTECT flags_inv = HIDEHAIR|HIDEEARS rad_flags = RAD_NO_CONTAMINATE @@ -1012,7 +1027,7 @@ /obj/item/clothing/suit/hooded/wintercoat/ratvar/equipped(mob/living/user,slot) ..() - if (slot != SLOT_WEAR_SUIT || !real) + if (slot != ITEM_SLOT_OCLOTHING || !real) return if (is_servant_of_ratvar(user)) return @@ -1034,7 +1049,7 @@ /obj/item/clothing/suit/hooded/wintercoat/narsie/equipped(mob/living/user,slot) ..() - if (slot != SLOT_WEAR_SUIT || !real) + if (slot != ITEM_SLOT_OCLOTHING || !real) return if (iscultist(user)) return diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 98fb836c38..608aca2aad 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -51,7 +51,7 @@ icon_state = "reactiveoff" item_state = "reactiveoff" add_fingerprint(user) - if(user.get_item_by_slot(SLOT_WEAR_SUIT) == src) + if(user.get_item_by_slot(ITEM_SLOT_OCLOTHING) == src) user.update_inv_wear_suit() /obj/item/clothing/suit/armor/reactive/emp_act(severity) @@ -177,7 +177,7 @@ /obj/item/clothing/suit/armor/reactive/tesla/equipped(mob/user, slot) ..() - if(slot_flags & slotdefine2slotbit(slot)) //Was equipped to a valid slot for this item? + if(slot_flags & slot) //Was equipped to a valid slot for this item? ADD_TRAIT(user, TRAIT_TESLA_SHOCKIMMUNE, "reactive_tesla_armor") /obj/item/clothing/suit/armor/reactive/tesla/block_action(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index 78708f54bb..5ee247e135 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -31,11 +31,11 @@ ToggleHood() /obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user, datum/action/A) - if(slot == SLOT_WEAR_SUIT || slot == SLOT_NECK) + if(slot == ITEM_SLOT_OCLOTHING || slot == ITEM_SLOT_NECK) return 1 /obj/item/clothing/suit/hooded/equipped(mob/user, slot) - if(slot != SLOT_WEAR_SUIT && slot != SLOT_NECK) + if(slot != ITEM_SLOT_OCLOTHING && slot != ITEM_SLOT_NECK) RemoveHood() ..() @@ -80,7 +80,7 @@ if(H.head) to_chat(H, "You're already wearing something on your head!") return - else if(H.equip_to_slot_if_possible(hood,SLOT_HEAD,0,0,1)) + else if(H.equip_to_slot_if_possible(hood,ITEM_SLOT_HEAD,0,0,1)) suittoggled = TRUE update_icon() H.update_inv_wear_suit() @@ -102,7 +102,7 @@ /obj/item/clothing/head/hooded/equipped(mob/user, slot) ..() - if(slot != SLOT_HEAD) + if(slot != ITEM_SLOT_HEAD) if(suit) suit.RemoveHood() else @@ -177,7 +177,7 @@ /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) if(!helmettype) return - if(slot != SLOT_WEAR_SUIT) + if(slot != ITEM_SLOT_OCLOTHING) RemoveHelmet() ..() @@ -222,7 +222,7 @@ if(message) to_chat(H, "You're already wearing something on your head!") return - else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1)) + else if(H.equip_to_slot_if_possible(helmet,ITEM_SLOT_HEAD,0,0,1)) if(message) to_chat(H, "You engage the helmet on the hardsuit.") suittoggled = TRUE diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 977e916f87..5b131749b8 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -167,7 +167,7 @@ actions_types = list(/datum/action/item_action/stickmen) /obj/item/clothing/suit/wizrobe/paper/item_action_slot_check(slot, mob/user, datum/action/A) - if(A.type == /datum/action/item_action/stickmen && slot != SLOT_WEAR_SUIT) + if(A.type == /datum/action/item_action/stickmen && slot != ITEM_SLOT_OCLOTHING) return FALSE return ..() diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 59af632d2a..61e4bb5149 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -114,7 +114,7 @@ if(!alt_covers_chest) body_parts_covered |= CHEST - if(attached_accessory && slot != SLOT_HANDS && ishuman(user)) + if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) if(attached_accessory.above_suit) diff --git a/code/modules/clothing/under/cluwne.dm b/code/modules/clothing/under/cluwne.dm index 5a908c5663..e1af4b5171 100644 --- a/code/modules/clothing/under/cluwne.dm +++ b/code/modules/clothing/under/cluwne.dm @@ -16,7 +16,7 @@ /obj/item/clothing/under/cluwne/equipped(mob/living/carbon/user, slot) if(!ishuman(user)) return - if(slot == SLOT_W_UNIFORM) + if(slot == ITEM_SLOT_ICLOTHING) var/mob/living/carbon/human/H = user H.dna.add_mutation(CLUWNEMUT) return ..() diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 824f026e8c..06d2771d88 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -17,7 +17,7 @@ if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) //or else you end up with naked assistants running around everywhere... + H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) //or else you end up with naked assistants running around everywhere... else new C(loc) return INITIALIZE_HINT_QDEL @@ -30,7 +30,7 @@ var/obj/item/clothing/under/color/jumpskirt/C = pick(subtypesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/jumpskirt/random) if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) else new C(loc) return INITIALIZE_HINT_QDEL diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm index 470a3695fc..25c40ee5d8 100644 --- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm +++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm @@ -32,6 +32,20 @@ can_adjust = FALSE mutantrace_variation = STYLE_DIGITIGRADE //The clown suit must look funny, no taur alpha masks where possible. +/obj/item/clothing/under/rank/civilian/polychromic_clown + name = "polychromic clown suit" + desc = "'HONK!'" + icon_state = "clown" + item_state = "clown" + fitted = FEMALE_UNIFORM_TOP + can_adjust = FALSE + mutantrace_variation = STYLE_DIGITIGRADE //The clown suit must look funny, no taur alpha masks where possible. + var/list/poly_colors = list("#FF0000", "#FF99FF", "#FFFF00", "#FFFFFF") + +/obj/item/clothing/under/rank/civilian/polychromic_clown/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 4) + /obj/item/clothing/under/rank/civilian/clown/blue name = "blue clown suit" desc = "'BLUE HONK!'" diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm index 2f0b9c68f8..061de0ea7c 100644 --- a/code/modules/events/wizard/curseditems.dm +++ b/code/modules/events/wizard/curseditems.dm @@ -18,23 +18,23 @@ switch(item_set) if("wizardmimic") - loadout[SLOT_WEAR_SUIT] = /obj/item/clothing/suit/wizrobe - loadout[SLOT_SHOES] = /obj/item/clothing/shoes/sandal/magic - loadout[SLOT_HEAD] = /obj/item/clothing/head/wizard + loadout[ITEM_SLOT_OCLOTHING] = /obj/item/clothing/suit/wizrobe + loadout[ITEM_SLOT_FEET] = /obj/item/clothing/shoes/sandal/magic + loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/wizard ruins_spaceworthiness = 1 if("swords") - loadout[SLOT_HANDS] = /obj/item/katana/cursed + loadout[ITEM_SLOT_HANDS] = /obj/item/katana/cursed if("bigfatdoobie") - loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy + loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy ruins_spaceworthiness = 1 if("boxing") - loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/luchador - loadout[SLOT_GLOVES] = /obj/item/clothing/gloves/boxing + loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/luchador + loadout[ITEM_SLOT_GLOVES] = /obj/item/clothing/gloves/boxing ruins_spaceworthiness = 1 if("voicemodulators") - loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/chameleon + loadout[ITEM_SLOT_MASK] = /obj/item/clothing/mask/chameleon if("catgirls2015") - loadout[SLOT_HEAD] = /obj/item/clothing/head/kitty + loadout[ITEM_SLOT_HEAD] = /obj/item/clothing/head/kitty ruins_spaceworthiness = 1 ruins_wizard_loadout = 1 diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 5d84901e7f..a2e822ba08 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -739,7 +739,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(close_other) //increase the odds for(var/i in 1 to 5) message_pool.Add("You feel a tiny prick!") - var/obj/item/storage/equipped_backpack = other.get_item_by_slot(SLOT_BACK) + var/obj/item/storage/equipped_backpack = other.get_item_by_slot(ITEM_SLOT_BACK) if(istype(equipped_backpack)) for(var/i in 1 to 5) //increase the odds message_pool.Add("[other] puts the [pick(\ diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index f650a935ea..1c151511af 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -35,7 +35,7 @@ //If they have a hat/helmet and the user is targeting their head. if(affecting == BODY_ZONE_HEAD) - var/obj/item/I = target.get_item_by_slot(SLOT_HEAD) + var/obj/item/I = target.get_item_by_slot(ITEM_SLOT_HEAD) if(I) headarmor = I.armor.melee diff --git a/code/modules/holiday/dynamic.dm b/code/modules/holiday/dynamic.dm new file mode 100644 index 0000000000..f75dd37542 --- /dev/null +++ b/code/modules/holiday/dynamic.dm @@ -0,0 +1,10 @@ +/datum/holiday/dynamic + name = "Dynamic Day" + +/datum/holiday/dynamic/shouldCelebrate(dd, mm, yy, ww, ddd) + var/list/days = CONFIG_GET(keyed_list/dynamic_mode_days) + return lowertext(ddd) in days + +/datum/holiday/dynamic/celebrate() + GLOB.dynamic_forced_threat_level = rand(90, 100) + CONFIG_SET(string/force_gamemode, "dynamic") // prevents the round vote, which prevents extended diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 1ebacf0968..723b404717 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -432,7 +432,7 @@ var/obj/item/W = C.head C.dropItemToGround(W, TRUE) var/jaqc_latern = new /obj/item/clothing/head/hardhat/pumpkinhead/jaqc - C.equip_to_slot(jaqc_latern, SLOT_HEAD, 1, 1) + C.equip_to_slot(jaqc_latern, ITEM_SLOT_HEAD, 1, 1) if(4) visible_message("[src] waves their arms around, \"In your body there's something amiss, you'll find it's a chem made by my sis!\"") jacqrunes("In your body there's something amiss, you'll find it's a chem made by my sis!", C) @@ -449,7 +449,7 @@ var/obj/item/W = H.wear_suit H.dropItemToGround(W, TRUE) var/ghost = new /obj/item/clothing/suit/ghost_sheet/sticky - H.equip_to_slot(ghost, SLOT_WEAR_SUIT, 1, 1) + H.equip_to_slot(ghost, ITEM_SLOT_OCLOTHING, 1, 1) poof() //Blame Fel diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm index 5dc866c556..e1fdc36552 100644 --- a/code/modules/integrated_electronics/subtypes/smart.dm +++ b/code/modules/integrated_electronics/subtypes/smart.dm @@ -97,7 +97,7 @@ return idc.access = assembly.access_card.access var/turf/a_loc = get_turf(assembly) - var/list/P = cir_get_path_to(assembly, locate(get_pin_data(IC_INPUT, 1),get_pin_data(IC_INPUT, 2),a_loc.z), /turf/proc/Distance_cardinal, 0, 200, id=idc, exclude=get_turf(get_pin_data_as_type(IC_INPUT,3, /atom)), simulated_only = 0) + var/list/P = get_path_to(assembly, locate(get_pin_data(IC_INPUT, 1),get_pin_data(IC_INPUT, 2),a_loc.z), 200, id=idc, exclude=get_turf(get_pin_data_as_type(IC_INPUT,3, /atom)), simulated_only = 0) if(!P) activate_pin(3) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 1f5becace8..6eaad5e2dc 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -241,7 +241,7 @@ var/satchel = /obj/item/storage/backpack/satchel var/duffelbag = /obj/item/storage/backpack/duffelbag - var/pda_slot = SLOT_BELT + var/pda_slot = ITEM_SLOT_BELT /datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) var/preference_backpack = preference_source?.prefs.backbag diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index de66c32138..82eae55bde 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -40,7 +40,7 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/atmos/rig @@ -49,4 +49,4 @@ mask = /obj/item/clothing/mask/gas suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index a9e891a303..7789e3c614 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -34,7 +34,7 @@ B.icon_state = GLOB.bible_icon_state B.item_state = GLOB.bible_item_state to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.") - H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK) var/nrt = GLOB.holy_weapon_type || /obj/item/nullrod var/obj/item/nullrod/N = new nrt(H) H.put_in_hands(N) @@ -108,7 +108,7 @@ GLOB.bible_name = B.name GLOB.deity = B.deity_name - H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK) + H.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK) SSblackbox.record_feedback("text", "religion_name", 1, "[new_religion]", 1) SSblackbox.record_feedback("text", "religion_deity", 1, "[new_deity]", 1) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index 804952dbb2..6fbf546e95 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -55,7 +55,7 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET chameleon_extras = /obj/item/stamp/ce /datum/outfit/job/ce/rig @@ -68,4 +68,4 @@ glasses = /obj/item/clothing/glasses/meson/engine gloves = /obj/item/clothing/gloves/color/yellow head = null - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm index 331bad9bfe..b9fc5809e3 100644 --- a/code/modules/jobs/job_types/paramedic.dm +++ b/code/modules/jobs/job_types/paramedic.dm @@ -41,7 +41,7 @@ r_pocket = /obj/item/pinpointer/crew l_pocket = /obj/item/pda/medical backpack_contents = list(/obj/item/roller=1) - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET backpack = /obj/item/storage/backpack/medic satchel = /obj/item/storage/backpack/satchel/med diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index 6c2cb94d13..e70e747ae6 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -63,4 +63,4 @@ mask = /obj/item/clothing/mask/breath suit = /obj/item/clothing/suit/space/hardsuit/rd suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm index b44d536cd2..90dacc0482 100644 --- a/code/modules/jobs/job_types/roboticist.dm +++ b/code/modules/jobs/job_types/roboticist.dm @@ -37,4 +37,4 @@ backpack = /obj/item/storage/backpack/science satchel = /obj/item/storage/backpack/satchel/tox - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 3462fb96c9..1823a2498a 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -84,7 +84,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S if(ears) if(H.ears) qdel(H.ears) - H.equip_to_slot_or_del(new ears(H),SLOT_EARS) + H.equip_to_slot_or_del(new ears(H),ITEM_SLOT_EARS) var/obj/item/card/id/W = H.wear_id W.access |= dep_access diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 0c04380afe..273f74defa 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -60,7 +60,7 @@ mask = /obj/item/clothing/mask/gas/explorer glasses = /obj/item/clothing/glasses/meson suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE backpack_contents = list( /obj/item/flashlight/seclite=1,\ /obj/item/kitchen/knife/combat/survival=1, diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm index 25bd2196a0..83b11b22f6 100644 --- a/code/modules/jobs/job_types/station_engineer.dm +++ b/code/modules/jobs/job_types/station_engineer.dm @@ -43,7 +43,7 @@ satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/survival/engineer - pda_slot = SLOT_L_STORE + pda_slot = ITEM_SLOT_LPOCKET backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/engineer/gloved @@ -56,6 +56,6 @@ suit = /obj/item/clothing/suit/space/hardsuit/engine suit_store = /obj/item/tank/internals/oxygen head = null - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 9c503279d4..9eed296851 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -20,7 +20,7 @@ /obj/item/wormhole_jaunter/equipped(mob/user, slot) . = ..() - if(slot == SLOT_BELT) + if(slot == ITEM_SLOT_BELT) RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROP, .proc/chasm_react) /obj/item/wormhole_jaunter/dropped(mob/user) @@ -68,7 +68,7 @@ var/mob/M = loc if(istype(M)) - if(M.get_item_by_slot(SLOT_BELT) == src) + if(M.get_item_by_slot(ITEM_SLOT_BELT) == src) if(prob(severity)) M.visible_message("[src] overloads and activates!") SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index b005822438..0b394e0fc5 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -307,7 +307,7 @@ var/mob/living/carbon/human/active_owner /obj/item/clothing/neck/necklace/memento_mori/item_action_slot_check(slot, mob/user, datum/action/A) - return slot == SLOT_NECK + return slot == ITEM_SLOT_NECK /obj/item/clothing/neck/necklace/memento_mori/dropped(mob/user) ..() @@ -694,16 +694,20 @@ /datum/reagent/flightpotion/reaction_mob(mob/living/M, method=TOUCH, reac_volume, show_message = 1) if(iscarbon(M) && M.stat != DEAD) - if(!ishumanbasic(M) || reac_volume < 5) // implying xenohumans are holy + var/mob/living/carbon/C = M + if(reac_volume < 5) if(method == INGEST && show_message) - to_chat(M, "You feel nothing but a terrible aftertaste.") + to_chat(C, "You feel nothing but a terrible aftertaste.") return ..() - - to_chat(M, "A terrible pain travels down your back as wings burst out!") - M.set_species(/datum/species/angel) - playsound(M.loc, 'sound/items/poster_ripped.ogg', 50, 1, -1) - M.adjustBruteLoss(20) - M.emote("scream") + var/has_wings = (C.dna.species.mutant_bodyparts["deco_wings"] && C.dna.features["deco_wings"] != "None" || C.dna.species.mutant_bodyparts["insect_wings"] && C.dna.features["insect_wings"] != "None") + var/has_functional_wings = (C.dna.species.mutant_bodyparts["wings"] != null) + to_chat(C, "A terrible pain travels down your back as [has_wings || has_functional_wings ? "your wings transform" : "wings burst out"]!") + C.dna.species.GiveSpeciesFlight(C, has_functional_wings ? TRUE : FALSE) //give them the full list of wing choices if this is their second flight potion + to_chat(C, "You feel blessed!") + ADD_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT) //implying anyone is truly holy in a setting where people throw tantrums when things aren't violent + playsound(C.loc, 'sound/items/poster_ripped.ogg', 50, TRUE, -1) + C.adjustBruteLoss(20) + C.emote("scream") ..() diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm index 1dc50bfe73..08ae75d728 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -28,10 +28,9 @@ for(var/path in typesof(prototype)) if(path == prototype && skip_prototype) continue - if(roundstart) - var/datum/sprite_accessory/P = path - if(initial(P.locked)) - continue + var/datum/sprite_accessory/P = path + if((roundstart && initial(P.locked))) + continue var/datum/sprite_accessory/D = new path() if(D.icon_state) @@ -64,6 +63,7 @@ var/mutant_part_string //Also used in species.handle_mutant_bodyparts() to generate the overlay icon state. var/alpha_mask_state var/matrixed_sections = MATRIX_NONE //if color_src is MATRIXED, how many sections does it have? 1-3 + var/ignore = FALSE //NEVER include in customization if set to TRUE //Special / holdover traits for Citadel specific sprites. var/extra = FALSE diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index c525a13ef8..11fde50a37 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -126,6 +126,11 @@ hide_legs = USE_SNEK_CLIP_MASK matrixed_sections = MATRIX_RED_GREEN +/datum/sprite_accessory/taur/naga/coiled + name = "Naga (coiled)" + icon_state = "naga_coiled" + ignore = TRUE + /datum/sprite_accessory/taur/otie name = "Otie" icon_state = "otie" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm index 800682b8cf..07adec0aa4 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm @@ -1,4 +1,8 @@ -//Angel Wings +//Functional Wings + +/datum/sprite_accessory/wings + icon = 'icons/mob/wings_functional.dmi' + relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/wings/none name = "None" @@ -9,23 +13,12 @@ return (!H.dna.features["wings"] || H.dna.features["wings"] == "None" || (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) /datum/sprite_accessory/wings_open - icon = 'icons/mob/wings.dmi' + icon = 'icons/mob/wings_functional.dmi' relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/wings_open/is_not_visible(var/mob/living/carbon/human/H, var/tauric) return (H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)) || H.dna.species.mutant_bodyparts["wings"]) -/datum/sprite_accessory/wings_open/angel - name = "Angel" - icon_state = "angel" - color_src = 0 - dimension_x = 46 - center = TRUE - dimension_y = 34 - -/datum/sprite_accessory/wings - icon = 'icons/mob/wings.dmi' - relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) /datum/sprite_accessory/wings/angel name = "Angel" @@ -36,6 +29,114 @@ dimension_y = 34 locked = TRUE +/datum/sprite_accessory/wings_open/angel + name = "Angel" + icon_state = "angel" + color_src = 0 + dimension_x = 46 + center = TRUE + dimension_y = 34 + +/datum/sprite_accessory/wings/dragon + name = "Dragon" + icon_state = "dragon" + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/dragon + name = "Dragon" + icon_state = "dragon" + dimension_x = 96 + center = TRUE + dimension_y = 32 + +/datum/sprite_accessory/wings/megamoth + name = "Megamoth" + icon_state = "megamoth" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/megamoth + name = "Megamoth" + icon_state = "megamoth" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + +/datum/sprite_accessory/wings/mothra + name = "Mothra" + icon_state = "mothra" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/mothra + name = "Mothra" + icon_state = "mothra" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + +/datum/sprite_accessory/wings/skeleton + name = "Skeleton" + icon_state = "skele" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/skeleton + name = "Skeleton" + icon_state = "skele" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + +/datum/sprite_accessory/wings/robotic + name = "Robotic" + icon_state = "robotic" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/robotic + name = "Robotic" + icon_state = "robotic" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + +/datum/sprite_accessory/wings/fly + name = "Fly" + icon_state = "fly" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + locked = TRUE + +/datum/sprite_accessory/wings_open/fly + name = "Fly" + icon_state = "fly" + color_src = FALSE + dimension_x = 96 + center = TRUE + dimension_y = 32 + // Decorative wings /datum/sprite_accessory/deco_wings @@ -43,6 +144,10 @@ color_src = WINGCOLOR mutant_part_string = "insect_wings" relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) + var/list/upgrade_to = list() //What the wings change to if the mob consumes a flight potion or gains true wings through other means. If it's an empty list, it will pick the species alternative instead. + +/datum/sprite_accessory/deco_wings/is_not_visible(var/mob/living/carbon/human/H, var/tauric) + return (H.dna.features["wings"] != "None") //true wings will override decorative wings /datum/sprite_accessory/deco_wings/none name = "None" @@ -57,162 +162,201 @@ center = TRUE dimension_y = 34 relevant_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER) + upgrade_to = SPECIES_WINGS_ANGEL //obviously //nonmoth wings /datum/sprite_accessory/deco_wings/bat name = "Bat" icon_state = "bat" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/deco_wings/bee name = "Bee" icon_state = "bee" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/deco_wings/bee2 name = "Small Bee" icon_state = "beewings" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/deco_wings/dragon name = "Dragon" icon_state = "dragon" + upgrade_to = SPECIES_WINGS_DRAGON //lol /datum/sprite_accessory/deco_wings/dragonfly name = "Dragonfly" icon_state = "dragonfly" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/deco_wings/fairy name = "Fairy" icon_state = "fairy" + upgrade_to = SPECIES_WINGS_INSECT //rip people's sparkly wings until someone sprites in some huge fairy wings or something /datum/sprite_accessory/deco_wings/featheredwing name = "Feathery" icon_state = "feathery" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/deco_wings/featheredwingmedium name = "Medium Feathered" icon_state = "feathered3" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/deco_wings/featheredwinglarge name = "Large Feathered" icon_state = "feathered2" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/deco_wings/harpywings name = "Harpy" icon_state = "harpywings" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/deco_wings/roboticwing name = "Robotic" icon_state = "drago" + upgrade_to = SPECIES_WINGS_ROBOT /datum/sprite_accessory/deco_wings/succubusblack name = "Succubus Black" icon_state = "succubusblack" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/deco_wings/succubuspurple name = "Succubus Purple" icon_state = "succubuspurple" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/deco_wings/succubusred name = "Succubus Red" icon_state = "succubusred" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/deco_wings/xenobackplate name = "Xenomorph Backplate" icon_state = "snagbackplate" + upgrade_to = list() //moth wings /datum/sprite_accessory/deco_wings/atlas name = "Atlas" icon_state = "atlas" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/brown name = "Brown" icon_state = "brown" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/deathhead name = "Deathshead" icon_state = "deathhead" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/featherymoth name = "Feathery Moth Wings" icon_state = "featherymoth" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/firewatch name = "Firewatch" icon_state = "firewatch" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/gothic name = "Gothic" icon_state = "gothic" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/jungle name = "Jungle" icon_state = "jungle" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/lovers name = "Lovers" icon_state = "lovers" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/luna name = "Luna" icon_state = "luna" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/monarch name = "Monarch" icon_state = "monarch" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/moonfly name = "Moon Fly" icon_state = "moonfly" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/oakworm name = "Oak Worm" icon_state = "oakworm" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/plain name = "Plain" icon_state = "plain" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/plasmafire name = "Plasma Fire" icon_state = "plasmafire" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/poison name = "Poison" icon_state = "poison" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/punished name = "Burnt Off" icon_state = "punished" + upgrade_to = SPECIES_WINGS_MOTH //through TG code moth wings aren't meant to get upgraded if they're burnt off but... /datum/sprite_accessory/deco_wings/ragged name = "Ragged" icon_state = "ragged" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/reddish name = "Reddish" icon_state = "redish" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/rosy name = "Rosy" icon_state = "rosy" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/royal name = "Royal" icon_state = "royal" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/snow name = "Snow" icon_state = "snow" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/whitefly name = "White Fly" icon_state = "whitefly" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/deco_wings/witchwing name = "Witch Wing" icon_state = "witchwing" + upgrade_to = SPECIES_WINGS_MOTH //INSECT WINGS @@ -220,67 +364,86 @@ icon = 'icons/mob/wings.dmi' color_src = WINGCOLOR relevant_layers = list(BODY_BEHIND_LAYER, BODY_FRONT_LAYER) + var/list/upgrade_to = list() + +/datum/sprite_accessory/insect_wings/is_not_visible(var/mob/living/carbon/human/H, var/tauric) + return (H.dna.features["wings"] != "None") //true wings will override decorative wings //non insect wings -/datum/sprite_accessory/deco_wings/bat +/datum/sprite_accessory/insect_wings/bat name = "Bat" icon_state = "bat" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/insect_wings/bee name = "Bee" icon_state = "bee" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/insect_wings/bee2 name = "Small Bee" icon_state = "beewings" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/insect_wings/dragon name = "Dragon" icon_state = "dragon" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/insect_wings/dragonfly name = "Dragonfly" icon_state = "dragonfly" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/insect_wings/fairy name = "Fairy" icon_state = "fairy" + upgrade_to = SPECIES_WINGS_INSECT /datum/sprite_accessory/insect_wings/featheredwing name = "Feathery" icon_state = "feathery" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/insect_wings/featheredwingmedium name = "Medium Feathered" icon_state = "feathered3" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/insect_wings/featheredwinglarge name = "Large Feathered" icon_state = "feathered2" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/insect_wings/harpywings name = "Harpy" icon_state = "harpywings" + upgrade_to = SPECIES_WINGS_ANGEL /datum/sprite_accessory/insect_wings/roboticwing name = "Robotic" icon_state = "drago" + upgrade_to = SPECIES_WINGS_ROBOT /datum/sprite_accessory/insect_wings/succubusblack name = "Succubus Black" icon_state = "succubusblack" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/insect_wings/succubuspurple name = "Succubus Purple" icon_state = "succubuspurple" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/insect_wings/succubusred name = "Succubus Red" icon_state = "succubusred" + upgrade_to = SPECIES_WINGS_DRAGON /datum/sprite_accessory/insect_wings/xenobackplate name = "Xenomorph Backplate" icon_state = "snagbackplate" + upgrade_to = list() //moth wings @@ -288,98 +451,122 @@ name = "None" icon_state = "none" relevant_layers = null + upgrade_to = list() /datum/sprite_accessory/insect_wings/atlas name = "Atlas" icon_state = "atlas" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/brown name = "Brown" icon_state = "brown" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/deathhead name = "Deathshead" icon_state = "deathhead" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/featherymoth name = "Feathery Moth Wings" icon_state = "featherymoth" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/firewatch name = "Firewatch" icon_state = "firewatch" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/gothic name = "Gothic" icon_state = "gothic" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/jungle name = "Jungle" icon_state = "jungle" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/lovers name = "Lovers" icon_state = "lovers" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/luna name = "Luna" icon_state = "luna" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/monarch name = "Monarch" icon_state = "monarch" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/moonfly name = "Moon Fly" icon_state = "moonfly" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/oakworm name = "Oak Worm" icon_state = "oakworm" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/plain name = "Plain" icon_state = "plain" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/plasmafire name = "Plasma Fire" icon_state = "plasmafire" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/poison name = "Poison" icon_state = "poison" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/punished name = "Burnt Off" icon_state = "punished" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/ragged name = "Ragged" icon_state = "ragged" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/reddish name = "Reddish" icon_state = "redish" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/rosy name = "Rosy" icon_state = "rosy" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/royal name = "Royal" icon_state = "royal" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/snow name = "Snow" icon_state = "snow" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/whitefly name = "White Fly" icon_state = "whitefly" + upgrade_to = SPECIES_WINGS_MOTH /datum/sprite_accessory/insect_wings/witchwing name = "Witch Wing" icon_state = "witchwing" + upgrade_to = SPECIES_WINGS_MOTH //insect markings /datum/sprite_accessory/insect_markings // Extra markings for insects ported from tg. @@ -453,9 +640,11 @@ /datum/sprite_accessory/deco_wings/eyestalks name = "gazer eyestalks" icon_state = "eyestalks" + upgrade_to = list() //and suddenly flight potions become a lot more awkward when they gouge your tentacle eyes out. //ckeys_allowed = list("liquidfirefly","seiga") //At request. /datum/sprite_accessory/insect_wings/eyestalks name = "gazer eyestalks" icon_state = "eyestalks" + upgrade_to = list() //ckeys_allowed = list("liquidfirefly","seiga") //At request. diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 67a95006ab..849bbb9e38 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -182,7 +182,7 @@ held_items[hand_index] = I I.layer = ABOVE_HUD_LAYER I.plane = ABOVE_HUD_PLANE - I.equipped(src, SLOT_HANDS) + I.equipped(src, ITEM_SLOT_HANDS) if(I.pulledby) I.pulledby.stop_pulling() update_inv_hands() @@ -375,14 +375,14 @@ if(!slot_priority) slot_priority = list( \ - SLOT_BACK, SLOT_WEAR_ID,\ - SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\ - SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\ - SLOT_SHOES, SLOT_GLOVES,\ - SLOT_EARS, SLOT_GLASSES,\ - SLOT_BELT, SLOT_S_STORE,\ - SLOT_L_STORE, SLOT_R_STORE,\ - SLOT_GENERC_DEXTROUS_STORAGE\ + ITEM_SLOT_BACK, ITEM_SLOT_ID,\ + ITEM_SLOT_ICLOTHING, ITEM_SLOT_OCLOTHING,\ + ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_NECK,\ + ITEM_SLOT_FEET, ITEM_SLOT_GLOVES,\ + ITEM_SLOT_EARS, ITEM_SLOT_EYES,\ + ITEM_SLOT_BELT, ITEM_SLOT_SUITSTORE,\ + ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET,\ + ITEM_SLOT_DEX_STORAGE\ ) for(var/slot in slot_priority) @@ -424,7 +424,7 @@ if(M.active_storage && M.active_storage.parent && SEND_SIGNAL(M.active_storage.parent, COMSIG_TRY_STORAGE_INSERT, src,M)) return TRUE - var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(SLOT_BELT), M.get_item_by_slot(SLOT_GENERC_DEXTROUS_STORAGE), M.get_item_by_slot(SLOT_BACK)) + var/list/obj/item/possible = list(M.get_inactive_held_item(), M.get_item_by_slot(ITEM_SLOT_BELT), M.get_item_by_slot(ITEM_SLOT_DEX_STORAGE), M.get_item_by_slot(ITEM_SLOT_BACK)) for(var/i in possible) if(!i) continue @@ -446,10 +446,10 @@ //used in code for items usable by both carbon and drones, this gives the proper back slot for each mob.(defibrillator, backpack watertank, ...) /mob/proc/getBackSlot() - return SLOT_BACK + return ITEM_SLOT_BACK /mob/proc/getBeltSlot() - return SLOT_BELT + return ITEM_SLOT_BELT diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index ca2946fd8a..7dedf5a739 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -172,7 +172,7 @@ if(target.dropItemToGround(W)) target.visible_message("[src] tears [W] off of [target]'s face!", \ "[src] tears [W] off of [target]'s face!") - target.equip_to_slot_if_possible(src, SLOT_WEAR_MASK, 0, 1, 1) + target.equip_to_slot_if_possible(src, ITEM_SLOT_MASK, 0, 1, 1) return TRUE // time for a smoke /obj/item/clothing/mask/facehugger/proc/Attach(mob/living/M) @@ -259,7 +259,7 @@ return 1 var/mob/living/carbon/C = M - if(ishuman(C) && !(SLOT_WEAR_MASK in C.dna.species.no_equip)) + if(ishuman(C) && !(ITEM_SLOT_MASK in C.dna.species.no_equip)) var/mob/living/carbon/human/H = C if(H.is_mouth_covered(head_only = 1)) return FALSE diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 61839ce123..cc17928a98 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -261,7 +261,7 @@ // too soon. var/buckle_cd = 600 if(handcuffed) - var/obj/item/restraints/O = src.get_item_by_slot(SLOT_HANDCUFFED) + var/obj/item/restraints/O = src.get_item_by_slot(ITEM_SLOT_HANDCUFFED) buckle_cd = O.breakouttime MarkResistTime() visible_message("[src] attempts to unbuckle [p_them()]self!", \ @@ -845,16 +845,16 @@ update_inv_handcuffed() update_hud_handcuffed() -/mob/living/carbon/proc/can_defib() +/mob/living/carbon/proc/can_revive(ignore_timelimit = FALSE, maximum_brute_dam = MAX_REVIVE_BRUTE_DAMAGE, maximum_fire_dam = MAX_REVIVE_FIRE_DAMAGE, ignore_heart = FALSE) var/tlimit = DEFIB_TIME_LIMIT * 10 var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || AmBloodsucker(src)) return - if((world.time - timeofdeath) > tlimit) + if(!ignore_timelimit && (world.time - timeofdeath) > tlimit) return - if((getBruteLoss() >= MAX_REVIVE_BRUTE_DAMAGE) || (getFireLoss() >= MAX_REVIVE_FIRE_DAMAGE)) + if((getBruteLoss() >= maximum_brute_dam) || (getFireLoss() >= maximum_fire_dam)) return - if(!heart || (heart.organ_flags & ORGAN_FAILING)) + if(!ignore_heart && (!heart || (heart.organ_flags & ORGAN_FAILING))) return var/obj/item/organ/brain/BR = getorgan(/obj/item/organ/brain) if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || suiciding) @@ -1137,15 +1137,15 @@ /mob/living/carbon/check_obscured_slots() if(head) if(head.flags_inv & HIDEMASK) - LAZYOR(., SLOT_WEAR_MASK) + LAZYOR(., ITEM_SLOT_MASK) if(head.flags_inv & HIDEEYES) - LAZYOR(., SLOT_GLASSES) + LAZYOR(., ITEM_SLOT_EYES) if(head.flags_inv & HIDEEARS) - LAZYOR(., SLOT_EARS) + LAZYOR(., ITEM_SLOT_EARS) if(wear_mask) if(wear_mask.flags_inv & HIDEEYES) - LAZYOR(., SLOT_GLASSES) + LAZYOR(., ITEM_SLOT_EYES) // if any of our bodyparts are bleeding /mob/living/carbon/proc/is_bleeding() diff --git a/code/modules/mob/living/carbon/carbon_stripping.dm b/code/modules/mob/living/carbon/carbon_stripping.dm index 45ff02f0d5..afbd6edaeb 100644 --- a/code/modules/mob/living/carbon/carbon_stripping.dm +++ b/code/modules/mob/living/carbon/carbon_stripping.dm @@ -1,10 +1,10 @@ /datum/strippable_item/mob_item_slot/head key = STRIPPABLE_ITEM_HEAD - item_slot = SLOT_HEAD + item_slot = ITEM_SLOT_HEAD /datum/strippable_item/mob_item_slot/back key = STRIPPABLE_ITEM_BACK - item_slot = SLOT_BACK + item_slot = ITEM_SLOT_BACK /datum/strippable_item/mob_item_slot/back/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -18,15 +18,15 @@ /datum/strippable_item/mob_item_slot/mask key = STRIPPABLE_ITEM_MASK - item_slot = SLOT_WEAR_MASK + item_slot = ITEM_SLOT_MASK /datum/strippable_item/mob_item_slot/neck key = STRIPPABLE_ITEM_NECK - item_slot = SLOT_NECK + item_slot = ITEM_SLOT_NECK /datum/strippable_item/mob_item_slot/handcuffs key = STRIPPABLE_ITEM_HANDCUFFS - item_slot = SLOT_HANDCUFFED + item_slot = ITEM_SLOT_HANDCUFFED /datum/strippable_item/mob_item_slot/handcuffs/should_show(atom/source, mob/user) if (!iscarbon(source)) @@ -41,7 +41,7 @@ /datum/strippable_item/mob_item_slot/legcuffs key = STRIPPABLE_ITEM_LEGCUFFS - item_slot = SLOT_LEGCUFFED + item_slot = ITEM_SLOT_LEGCUFFED /datum/strippable_item/mob_item_slot/legcuffs/should_show(atom/source, mob/user) if (!iscarbon(source)) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index c3fb82de36..32a4fac90f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -31,7 +31,7 @@ . += "[t_He] [t_is] a [spec_trait_examine_font()][dna.custom_species ? dna.custom_species : dna.species.name]!" //uniform - if(w_uniform && !(SLOT_W_UNIFORM in obscured)) + if(w_uniform && !(ITEM_SLOT_ICLOTHING in obscured)) //accessory var/accessory_msg if(istype(w_uniform, /obj/item/clothing/under)) @@ -47,7 +47,7 @@ if(wear_suit && !(wear_suit.obj_flags & EXAMINE_SKIP)) . += "[t_He] [t_is] wearing [wear_suit.get_examine_string(user)]." //suit/armor storage - if(s_store && !(SLOT_S_STORE in obscured)) + if(s_store && !(ITEM_SLOT_SUITSTORE in obscured)) . += "[t_He] [t_is] carrying [s_store.get_examine_string(user)] on [t_his] [wear_suit.name]." //back if(back) @@ -59,7 +59,7 @@ . += "[t_He] [t_is] holding [I.get_examine_string(user)] in [t_his] [get_held_index_name(get_held_index_of_item(I))]." //gloves - if(gloves && !(SLOT_GLOVES in obscured)) + if(gloves && !(ITEM_SLOT_GLOVES in obscured)) . += "[t_He] [t_has] [gloves.get_examine_string(user)] on [t_his] hands." else if(length(blood_DNA)) var/hand_number = get_num_arms(FALSE) @@ -78,18 +78,18 @@ . += "[t_He] [t_has] [belt.get_examine_string(user)] about [t_his] waist." //shoes - if(shoes && !(SLOT_SHOES in obscured)) + if(shoes && !(ITEM_SLOT_FEET in obscured)) . += "[t_He] [t_is] wearing [shoes.get_examine_string(user)] on [t_his] feet." //mask - if(wear_mask && !(SLOT_WEAR_MASK in obscured)) + if(wear_mask && !(ITEM_SLOT_MASK in obscured)) . += "[t_He] [t_has] [wear_mask.get_examine_string(user)] on [t_his] face." - if(wear_neck && !(SLOT_NECK in obscured)) + if(wear_neck && !(ITEM_SLOT_NECK in obscured)) . += "[t_He] [t_is] wearing [wear_neck.get_examine_string(user)] around [t_his] neck." //eyes - if(!(SLOT_GLASSES in obscured)) + if(!(ITEM_SLOT_EYES in obscured)) if(glasses) . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." else if((left_eye_color == BLOODCULT_EYE || right_eye_color == BLOODCULT_EYE) && iscultist(src) && HAS_TRAIT(src, TRAIT_CULT_EYES)) @@ -100,7 +100,7 @@ . += "[t_His] eyes are flickering a bright yellow!" //ears - if(ears && !(SLOT_EARS in obscured)) + if(ears && !(ITEM_SLOT_EARS in obscured)) . += "[t_He] [t_has] [ears.get_examine_string(user)] on [t_his] ears." //ID diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4fc60cc6ac..0f149928df 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -372,11 +372,11 @@ . = ..() if(wear_suit) if(wear_suit.flags_inv & HIDEGLOVES) - LAZYOR(., SLOT_GLOVES) + LAZYOR(., ITEM_SLOT_GLOVES) if(wear_suit.flags_inv & HIDEJUMPSUIT) - LAZYOR(., SLOT_W_UNIFORM) + LAZYOR(., ITEM_SLOT_ICLOTHING) if(wear_suit.flags_inv & HIDESHOES) - LAZYOR(., SLOT_SHOES) + LAZYOR(., ITEM_SLOT_FEET) /mob/living/carbon/human/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) if(judgement_criteria & JUDGE_EMAGGED) @@ -942,15 +942,15 @@ . += "[t_He] [t_is] a [spec_trait_examine_font()][dna.custom_species ? dna.custom_species : dna.species.name]" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .) +/mob/living/carbon/human/chestonly + bodyparts = list(/obj/item/bodypart/chest) + /mob/living/carbon/human/species/abductor race = /datum/species/abductor /mob/living/carbon/human/species/android race = /datum/species/android -/mob/living/carbon/human/species/angel - race = /datum/species/angel - /mob/living/carbon/human/species/corporate race = /datum/species/corporate diff --git a/code/modules/mob/living/carbon/human/human_stripping.dm b/code/modules/mob/living/carbon/human/human_stripping.dm index 6197241ef3..cd05e06731 100644 --- a/code/modules/mob/living/carbon/human/human_stripping.dm +++ b/code/modules/mob/living/carbon/human/human_stripping.dm @@ -35,15 +35,15 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/eyes key = STRIPPABLE_ITEM_EYES - item_slot = SLOT_GLASSES + item_slot = ITEM_SLOT_EYES /datum/strippable_item/mob_item_slot/ears key = STRIPPABLE_ITEM_EARS - item_slot = SLOT_EARS + item_slot = ITEM_SLOT_EARS /datum/strippable_item/mob_item_slot/jumpsuit key = STRIPPABLE_ITEM_JUMPSUIT - item_slot = SLOT_W_UNIFORM + item_slot = ITEM_SLOT_ICLOTHING /datum/strippable_item/mob_item_slot/jumpsuit/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -75,7 +75,7 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/suit key = STRIPPABLE_ITEM_SUIT - item_slot = SLOT_WEAR_SUIT + item_slot = ITEM_SLOT_OCLOTHING /datum/strippable_item/mob_item_slot/suit/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -108,11 +108,11 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/gloves key = STRIPPABLE_ITEM_GLOVES - item_slot = SLOT_GLOVES + item_slot = ITEM_SLOT_GLOVES /datum/strippable_item/mob_item_slot/feet key = STRIPPABLE_ITEM_FEET - item_slot = SLOT_SHOES + item_slot = ITEM_SLOT_FEET /datum/strippable_item/mob_item_slot/feet/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -141,7 +141,7 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/suit_storage key = STRIPPABLE_ITEM_SUIT_STORAGE - item_slot = SLOT_S_STORE + item_slot = ITEM_SLOT_SUITSTORE /datum/strippable_item/mob_item_slot/suit_storage/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -155,11 +155,11 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/id key = STRIPPABLE_ITEM_ID - item_slot = SLOT_WEAR_ID + item_slot = ITEM_SLOT_ID /datum/strippable_item/mob_item_slot/belt key = STRIPPABLE_ITEM_BELT - item_slot = SLOT_BELT + item_slot = ITEM_SLOT_BELT /datum/strippable_item/mob_item_slot/belt/get_alternate_action(atom/source, mob/user) if(..() == FALSE) @@ -212,12 +212,12 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list( /datum/strippable_item/mob_item_slot/pocket/left key = STRIPPABLE_ITEM_LPOCKET - item_slot = SLOT_L_STORE + item_slot = ITEM_SLOT_LPOCKET pocket_side = "left" /datum/strippable_item/mob_item_slot/pocket/right key = STRIPPABLE_ITEM_RPOCKET - item_slot = SLOT_R_STORE + item_slot = ITEM_SLOT_RPOCKET pocket_side = "right" /proc/get_strippable_alternate_action_internals(obj/item/item, atom/source) diff --git a/code/modules/mob/living/carbon/human/innate_abilities/coiling.dm b/code/modules/mob/living/carbon/human/innate_abilities/coiling.dm new file mode 100644 index 0000000000..52e2a87a7d --- /dev/null +++ b/code/modules/mob/living/carbon/human/innate_abilities/coiling.dm @@ -0,0 +1,89 @@ + +/datum/action/innate/ability/coiling + name = "Coil Grabbed Mob" + check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "coil_icon" + icon_icon = 'icons/mob/actions/actions_snake.dmi' + background_icon_state = "bg_alien" + required_mobility_flags = MOBILITY_STAND + var/currently_coiling = FALSE + var/mob/living/carbon/human/currently_coiled + var/mutable_appearance/tracked_overlay + +/datum/action/innate/ability/coiling/Activate() + // make sure they meet the mobility/check flags + if(IsAvailable()) + // check that the user has grabbed someone and they are not currently coiling someone + if(ishuman(owner.pulling) && !currently_coiling) + coil_mob(owner.pulling) + +/datum/action/innate/ability/coiling/proc/update_coil_offset(atom/source, old_dir, new_dir) + // update the coiling offset on the coiled user depending on the way the owner is facing + switch(new_dir) + if(NORTH) + currently_coiled.pixel_x = -12 + if(EAST) + currently_coiled.pixel_x = -12 + if(SOUTH) + currently_coiled.pixel_x = 12 + if(WEST) + currently_coiled.pixel_x = 12 + +/datum/action/innate/ability/coiling/proc/coil_mob(var/mob/living/carbon/human/H) + // begin the coiling action + H.visible_message("[owner] coils [H] with their tail!", \ + "[owner] coils you with their tail!") + currently_coiling = TRUE + currently_coiled = H + + H.layer -= 0.1 // LISTEN I HATE TOUCHING MOB LAYERS TOO BUT THIS IS JUST SO THEY RENDER UNDER THE OTHER PLAYER SDFHSDFHDSFHDSH + + // move user to same tile + H.forceMove(get_turf(owner)) + + // cancel the coiling action if certain things are done + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, .proc/cancel_coil) + RegisterSignal(owner, COMSIG_LIVING_RESTING, .proc/cancel_coil) + RegisterSignal(owner, COMSIG_LIVING_STOPPED_PULLING, .proc/cancel_coil) + + // update the coil offset, update again if owner changes direction + RegisterSignal(owner, COMSIG_ATOM_DIR_CHANGE, .proc/update_coil_offset) + update_coil_offset(null, null, owner.dir) + + // set our overlay to new image + var/mob/living/carbon/human/user = owner + user.dna.species.mutant_bodyparts["taur"] = "Naga (coiled)" + user.dna.features["taur"] = "Naga (coiled)" + user.update_mutant_bodyparts() + +/datum/action/innate/ability/coiling/proc/cancel_coil() + var/mob/living/carbon/human/H = owner + + // cancel the coiling action by removing the overlay + currently_coiled.pixel_x = 0 + + currently_coiling = FALSE + currently_coiled = null + + // unregister signals + UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) + UnregisterSignal(owner, COMSIG_LIVING_RESTING) + UnregisterSignal(owner, COMSIG_LIVING_STOPPED_PULLING) + UnregisterSignal(owner, COMSIG_ATOM_DIR_CHANGE) + + // change overlay back to original image + H.dna.species.mutant_bodyparts["taur"] = "Naga" + H.dna.features["taur"] = "Naga" + H.update_mutant_bodyparts() + + H.update_body() + + H.layer += 0.1 + + // remove the added overlay + owner.cut_overlay(tracked_overlay) + tracked_overlay = null + +/datum/action/innate/ability/coiling/Remove(mob/M) + cancel_coil() + ..(M) diff --git a/code/modules/mob/living/carbon/human/innate_abilities/customization.dm b/code/modules/mob/living/carbon/human/innate_abilities/customization.dm index 363f6ecbb2..463cdfde1e 100644 --- a/code/modules/mob/living/carbon/human/innate_abilities/customization.dm +++ b/code/modules/mob/living/carbon/human/innate_abilities/customization.dm @@ -135,6 +135,8 @@ var/datum/sprite_accessory/taur/instance = GLOB.taur_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(S.ignore) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(H.client.ckey))) snowflake_taur_list[S.name] = path var/new_taur diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 199a6b44be..4c30a1d742 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -17,39 +17,39 @@ // Return the item currently in the slot ID /mob/living/carbon/human/get_item_by_slot(slot_id) switch(slot_id) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) return back - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) return wear_mask - if(SLOT_NECK) + if(ITEM_SLOT_NECK) return wear_neck - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) return handcuffed - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) return legcuffed - if(SLOT_BELT) + if(ITEM_SLOT_BELT) return belt - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) return wear_id - if(SLOT_EARS) + if(ITEM_SLOT_EARS) return ears - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) return glasses - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) return gloves - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return head - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) return shoes - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) return wear_suit - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) return w_uniform - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) return l_store - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) return r_store - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) return s_store return null @@ -98,17 +98,17 @@ var/not_handled = FALSE //Added in case we make this type path deeper one day switch(slot) - if(SLOT_BELT) + if(ITEM_SLOT_BELT) belt = I update_inv_belt() - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) wear_id = I sec_hud_set_ID() update_inv_wear_id() - if(SLOT_EARS) + if(ITEM_SLOT_EARS) ears = I update_inv_ears() - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) glasses = I var/obj/item/clothing/glasses/G = I if(G.glass_colour_type) @@ -121,13 +121,13 @@ if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha)) update_sight() update_inv_glasses() - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) gloves = I update_inv_gloves() - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) shoes = I update_inv_shoes() - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) wear_suit = I if(I.flags_inv & HIDEJUMPSUIT) update_inv_w_uniform() @@ -135,17 +135,17 @@ stop_pulling() //can't pull if restrained update_action_buttons_icon() //certain action buttons will no longer be usable. update_inv_wear_suit() - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) w_uniform = I update_suit_sensors() update_inv_w_uniform() - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) l_store = I update_inv_pockets() - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) r_store = I update_inv_pockets() - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) s_store = I update_inv_s_store() else @@ -296,7 +296,7 @@ if(incapacitated()) return var/obj/item/thing = get_active_held_item() - var/obj/item/equipped_back = get_item_by_slot(SLOT_BACK) + var/obj/item/equipped_back = get_item_by_slot(ITEM_SLOT_BACK) if(!equipped_back) // We also let you equip a backpack like this if(!thing) to_chat(src, "You have no backpack to take something out of!") @@ -327,7 +327,7 @@ if(incapacitated()) return var/obj/item/thing = get_active_held_item() - var/obj/item/equipped_belt = get_item_by_slot(SLOT_BELT) + var/obj/item/equipped_belt = get_item_by_slot(ITEM_SLOT_BELT) if(!equipped_belt) // We also let you equip a belt like this if(!thing) to_chat(src, "You have no belt to take something out of!") diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 22e97290ad..ee98288c5d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -142,6 +142,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) /// A path to an outfit that is important for species life e.g. plasmaman outfit var/datum/outfit/outfit_important_for_life + ///Is this species a flying species? Used as an easy check for some things + var/flying_species = FALSE + ///The actual flying ability given to flying species + var/datum/action/innate/flight/fly + ///Current wings icon + var/wings_icon = "Angel" + //Dictates which wing icons are allowed for a given species. If count is >1 a radial menu is used to choose between all icons in list + var/list/wings_icons = SPECIES_WINGS_ANGEL + ///Species-only traits. Can be found in [code/__DEFINES/DNA.dm] var/list/species_traits = list(HAS_FLESH,HAS_BONE) //by default they can scar and have bones/flesh unless set to something else ///Generic traits tied to having the species. @@ -495,6 +504,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) for(var/datum/disease/A in C.diseases) A.cure(FALSE) + if(flying_species && isnull(fly)) + fly = new + fly.Grant(C) + if(ishuman(C)) var/mob/living/carbon/human/H = C if(NOGENITALS in H.dna.species.species_traits) @@ -569,6 +582,16 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(F) qdel(F) + if(flying_species) + if(C.movement_type & FLYING) + ToggleFlight(C) + fly.Remove(C) + QDEL_NULL(fly) + if(C.dna && C.dna.species && (C.dna.features["wings"] == wings_icon)) + if("wings" in C.dna.species.mutant_bodyparts) + C.dna.species.mutant_bodyparts -= "wings" + C.dna.features["wings"] = "None" + C.update_body() if(ROBOTIC_LIMBS in species_traits) for(var/obj/item/bodypart/B in C.bodyparts) @@ -589,7 +612,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(Q.type in blacklisted_quirks) removed_quirks += Q.type . += 1 - qdel(Q) + qdel(Q) else var/point_overhead = 0 for(var/datum/quirk/Q as anything in C.roundstart_quirks) @@ -883,6 +906,22 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/tauric = mutant_bodyparts["taur"] && H.dna.features["taur"] && H.dna.features["taur"] != "None" + // stuff for adding/removing the coiling ability if you have a taur part + // if another action is ever based on mutant parts we should probably make a system for it so it's all done in one proc with less overhead + var/datum/action/found_action + + for(var/datum/action/A in H.actions) + if(A.type == /datum/action/innate/ability/coiling) + found_action = A + + if(found_action && (!tauric || (H.dna.features["taur"] != "Naga" && H.dna.features["taur"] != "Naga (coiled)"))) + found_action.Remove(H) + + if(!found_action && tauric && H.dna.features["taur"] == "Naga") + found_action = new /datum/action/innate/ability/coiling() + found_action.Grant(H) + + for(var/mutant_part in mutant_bodyparts) var/reference_list = GLOB.mutant_reference_list[mutant_part] if(reference_list) @@ -1186,6 +1225,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return move_trail */ /datum/species/proc/spec_life(mob/living/carbon/human/H) + if(flying_species) //turns off flight automatically if they can't. + HandleFlight(H) if(HAS_TRAIT(H, TRAIT_NOBREATH)) H.setOxyLoss(0) H.losebreath = 0 @@ -1195,7 +1236,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!HAS_TRAIT(H, TRAIT_ROBOTIC_ORGANISM)) H.adjustBruteLoss(1) else - H.adjustFireLoss(1) //Robots melt instead of taking brute. + H.adjustFireLoss(1) //Robots melt instead of taking brute. /datum/species/proc/spec_death(gibbed, mob/living/carbon/human/H) if(H) @@ -1219,11 +1260,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/num_legs = H.get_num_legs(FALSE) switch(slot) - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(H.get_empty_held_indexes()) return TRUE return FALSE - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) if(H.wear_mask) return FALSE if(!(I.slot_flags & ITEM_SLOT_MASK)) @@ -1231,25 +1272,25 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_NECK) + if(ITEM_SLOT_NECK) if(H.wear_neck) return FALSE if( !(I.slot_flags & ITEM_SLOT_NECK) ) return FALSE return TRUE - if(SLOT_BACK) + if(ITEM_SLOT_BACK) if(H.back) return FALSE if( !(I.slot_flags & ITEM_SLOT_BACK) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) if(H.wear_suit) return FALSE if( !(I.slot_flags & ITEM_SLOT_OCLOTHING) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_GLOVES) + if(ITEM_SLOT_GLOVES) if(H.gloves) return FALSE if( !(I.slot_flags & ITEM_SLOT_GLOVES) ) @@ -1257,7 +1298,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(num_arms < 2) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_SHOES) + if(ITEM_SLOT_FEET) if(H.shoes) return FALSE if( !(I.slot_flags & ITEM_SLOT_FEET) ) @@ -1270,7 +1311,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_BELT) + if(ITEM_SLOT_BELT) if(H.belt) return FALSE if(!(I.item_flags & NO_UNIFORM_REQUIRED)) @@ -1282,7 +1323,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!(I.slot_flags & ITEM_SLOT_BELT)) return return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_GLASSES) + if(ITEM_SLOT_EYES) if(H.glasses) return FALSE if(!(I.slot_flags & ITEM_SLOT_EYES)) @@ -1290,7 +1331,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(H.head) return FALSE if(!(I.slot_flags & ITEM_SLOT_HEAD)) @@ -1298,7 +1339,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_EARS) + if(ITEM_SLOT_EARS) if(H.ears) return FALSE if(!(I.slot_flags & ITEM_SLOT_EARS)) @@ -1306,13 +1347,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!H.get_bodypart(BODY_ZONE_HEAD)) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_W_UNIFORM) + if(ITEM_SLOT_ICLOTHING) if(H.w_uniform) return FALSE if( !(I.slot_flags & ITEM_SLOT_ICLOTHING) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_WEAR_ID) + if(ITEM_SLOT_ID) if(H.wear_id) return FALSE if(!(I.item_flags & NO_UNIFORM_REQUIRED)) @@ -1324,7 +1365,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if( !(I.slot_flags & ITEM_SLOT_ID) ) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) - if(SLOT_L_STORE) + if(ITEM_SLOT_LPOCKET) if(HAS_TRAIT(I, TRAIT_NODROP)) //Pockets aren't visible, so you can't move TRAIT_NODROP items into them. return FALSE if(H.l_store) @@ -1336,11 +1377,9 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(return_warning) return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE - if(I.slot_flags & ITEM_SLOT_DENYPOCKET) - return FALSE - if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKET) ) + if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKETS) ) return TRUE - if(SLOT_R_STORE) + if(ITEM_SLOT_RPOCKET) if(HAS_TRAIT(I, TRAIT_NODROP)) return FALSE if(H.r_store) @@ -1352,12 +1391,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(return_warning) return_warning[1] = "You need a jumpsuit before you can attach this [I.name]!" return FALSE - if(I.slot_flags & ITEM_SLOT_DENYPOCKET) - return FALSE - if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKET) ) + if( I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & ITEM_SLOT_POCKETS) ) return TRUE return FALSE - if(SLOT_S_STORE) + if(ITEM_SLOT_SUITSTORE) if(HAS_TRAIT(I, TRAIT_NODROP)) return FALSE if(H.s_store) @@ -1377,7 +1414,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if( istype(I, /obj/item/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, H.wear_suit.allowed) ) return TRUE return FALSE - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) if(H.handcuffed) return FALSE if(!istype(I, /obj/item/restraints/handcuffs)) @@ -1385,7 +1422,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(num_arms < 2) return FALSE return TRUE - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) if(H.legcuffed) return FALSE if(!istype(I, /obj/item/restraints/legcuffs)) @@ -1393,7 +1430,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(num_legs < 2) return FALSE return TRUE - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(H.back) if(SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_CAN_INSERT, I, H, TRUE)) return TRUE @@ -2388,10 +2425,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) return //////////// -//Stun// +// Stun // //////////// /datum/species/proc/spec_stun(mob/living/carbon/human/H,amount) + if(flying_species && H.movement_type & FLYING) + ToggleFlight(H,0) + flyslip(H) if(H) stop_wagging_tail(H) . = stunmod * H.physiology.stun_mod * amount @@ -2401,10 +2441,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) ////////////// /datum/species/proc/space_move(mob/living/carbon/human/H) - return 0 + if(H.movement_type & FLYING) + return TRUE + return FALSE /datum/species/proc/negates_gravity(mob/living/carbon/human/H) - return 0 + if(H.movement_type & FLYING) + return TRUE + return FALSE //////////////// //Tail Wagging// @@ -2438,3 +2482,130 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) mutant_bodyparts["spines"] = mutant_bodyparts["waggingspines"] mutant_bodyparts -= "waggingspines" H.update_body() + +/////////////// +//FLIGHT SHIT// +/////////////// + +/datum/species/proc/GiveSpeciesFlight(mob/living/carbon/human/H, all_wings = FALSE) + if(flying_species) //grant them the choice of all wings if they don't have them + all_wings = TRUE + flying_species = TRUE + //CITADEL CHANGE: check if they already have wings, and "evolve" them based off of the wings they have. If they have none, use their species wings basis. + var/list/wingslist + if(all_wings) //give them the full list of wing choices to pick from, typically if they drink a second flight potion + wingslist = SPECIES_WINGS_ALL + else + //why the fuck do we have two different wing types anyways? they're literally almost both using the same wing shit too. + var/datum/sprite_accessory/deco_wings/D = GLOB.deco_wings_list[H.dna.features["deco_wings"]] + var/datum/sprite_accessory/insect_wings/I = GLOB.insect_wings_list[H.dna.features["insect_wings"]] + if(mutant_bodyparts["deco_wings"] && D?.upgrade_to.len) //species check to see if they were allowed to have deco wings + wingslist = D.upgrade_to + else if(mutant_bodyparts["insect_wings"] && I?.upgrade_to.len) //species check to see if they were allowed to have insect wings + wingslist = I.upgrade_to + else + wingslist = wings_icons + + if(wingslist.len > 1) + if(!H.client) + wings_icon = pick(wingslist) + else + var/list/wings = list() + for(var/W in wingslist) + var/datum/sprite_accessory/S = GLOB.wings_list[W] //Gets the datum for every wing this species has, then prompts user with a radial menu + var/image/img = image(icon = 'icons/mob/wings_functional.dmi', icon_state = "m_wingsopen_[S.icon_state]_BEHIND") //Process the HUD elements + img.transform *= 0.5 + img.pixel_x = -32 + if(wings[S.name]) + stack_trace("Different wing types with repeated names. Please fix as this may cause issues.") + else + wings[S.name] = img + wings_icon = show_radial_menu(H, H, wings, tooltips = TRUE) + if(!wings_icon) + wings_icon = pick(wings_icons) + else + wings_icon = wingslist[1] + if(isnull(fly)) + fly = new + fly.Grant(H) + if(H.dna.features["wings"] != wings_icon) + mutant_bodyparts["wings"] = wings_icon + H.dna.features["wings"] = wings_icon + H.update_body() + +/datum/species/proc/HandleFlight(mob/living/carbon/human/H) + if(H.movement_type & FLYING) + if(!CanFly(H)) + ToggleFlight(H) + return FALSE + return TRUE + else + return FALSE + +/datum/species/proc/CanFly(mob/living/carbon/human/H) + if(H.stat || !(H.mobility_flags & MOBILITY_STAND)) + return FALSE + if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) //Jumpsuits have tail holes, so it makes sense they have wing holes too + to_chat(H, "Your suit blocks your wings from extending!") + return FALSE + var/turf/T = get_turf(H) + if(!T) + return FALSE + var/datum/gas_mixture/environment = T.return_air() + if(environment && !(environment.return_pressure() > 30)) + to_chat(H, "The atmosphere is too thin for you to fly!") + return FALSE + else + return TRUE + +/datum/species/proc/flyslip(mob/living/carbon/human/H) + var/obj/buckled_obj + if(H.buckled) + buckled_obj = H.buckled + to_chat(H, "Your wings spazz out and launch you!") + playsound(H.loc, 'sound/misc/slip.ogg', 50, TRUE, -3) + for(var/obj/item/I in H.held_items) + H.accident(I) + var/olddir = H.dir + H.stop_pulling() + if(buckled_obj) + buckled_obj.unbuckle_mob(H) + step(buckled_obj, olddir) + else + new /datum/forced_movement(H, get_ranged_target_turf(H, olddir, 4), 1, FALSE, CALLBACK(H, /mob/living/carbon/.proc/spin, 1, 1)) + return TRUE + +//UNSAFE PROC, should only be called through the Activate or other sources that check for CanFly +/datum/species/proc/ToggleFlight(mob/living/carbon/human/H) + if(!(H.movement_type & FLYING) && CanFly(H)) + stunmod *= 2 + speedmod -= 0.35 + H.setMovetype(H.movement_type | FLYING) + override_float = TRUE + H.pass_flags |= PASSTABLE + H.OpenWings() + H.update_mobility() + else + stunmod *= 0.5 + speedmod += 0.35 + H.setMovetype(H.movement_type & ~FLYING) + override_float = FALSE + H.pass_flags &= ~PASSTABLE + H.CloseWings() + +/datum/action/innate/flight + name = "Toggle Flight" + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUN + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "flight" + +/datum/action/innate/flight/Activate() + var/mob/living/carbon/human/H = owner + var/datum/species/S = H.dna.species + if(S.CanFly(H)) + S.ToggleFlight(H) + if(!(H.movement_type & FLYING)) + to_chat(H, "You settle gently back onto the ground...") + else + to_chat(H, "You beat your wings and begin to hover gently above the ground...") + H.set_resting(FALSE, TRUE) diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 3c6a2a8e13..d9edfc240d 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -12,3 +12,4 @@ species_language_holder = /datum/language_holder/synthetic limbs_id = SPECIES_SYNTH species_category = SPECIES_CATEGORY_ROBOT + wings_icons = SPECIES_WINGS_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm deleted file mode 100644 index 977e8aaab3..0000000000 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ /dev/null @@ -1,145 +0,0 @@ -/datum/species/angel - name = "Angel" - id = SPECIES_ANGEL - default_color = "FFFFFF" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) - mutant_bodyparts = list("tail_human" = "None", "ears" = "None", "wings" = "Angel") - use_skintones = USE_SKINTONES_GRAYSCALE_CUSTOM - no_equip = list(SLOT_BACK) - blacklisted = 1 - limbs_id = SPECIES_HUMAN - skinned_type = /obj/item/stack/sheet/animalhide/human - species_category = SPECIES_CATEGORY_BASIC //they're a kind of human - - var/datum/action/innate/flight/fly - -/datum/species/angel/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) - ..() - if(H.dna && H.dna.species && (H.dna.features["wings"] != "Angel")) - if(!H.dna.species.mutant_bodyparts["wings"]) - H.dna.species.mutant_bodyparts["wings"] = "Angel" - H.dna.features["wings"] = "Angel" - H.update_body() - if(ishuman(H) && !fly) - fly = new - fly.Grant(H) - ADD_TRAIT(H, TRAIT_HOLY, SPECIES_TRAIT) - -/datum/species/angel/on_species_loss(mob/living/carbon/human/H) - if(fly) - fly.Remove(H) - if(H.movement_type & FLYING) - H.setMovetype(H.movement_type & ~FLYING) - ToggleFlight(H,0) - if(H.dna && H.dna.species && (H.dna.features["wings"] == "Angel")) - if(H.dna.species.mutant_bodyparts["wings"]) - H.dna.species.mutant_bodyparts -= "wings" - H.dna.features["wings"] = "None" - H.update_body() - REMOVE_TRAIT(H, TRAIT_HOLY, SPECIES_TRAIT) - ..() - -/datum/species/angel/spec_life(mob/living/carbon/human/H) - HandleFlight(H) - -/datum/species/angel/proc/HandleFlight(mob/living/carbon/human/H) - if(H.movement_type & FLYING) - if(!CanFly(H)) - ToggleFlight(H,0) - return 0 - return 1 - else - return 0 - -/datum/species/angel/proc/CanFly(mob/living/carbon/human/H) - if(!CHECK_MOBILITY(H, MOBILITY_MOVE)) - return FALSE - if(H.wear_suit && ((H.wear_suit.flags_inv & HIDEJUMPSUIT) && (!H.wear_suit.species_exception || !is_type_in_list(src, H.wear_suit.species_exception)))) //Jumpsuits have tail holes, so it makes sense they have wing holes too - to_chat(H, "Your suit blocks your wings from extending!") - return FALSE - var/turf/T = get_turf(H) - if(!T) - return FALSE - - var/datum/gas_mixture/environment = T.return_air() - if(environment && !(environment.return_pressure() > 30)) - to_chat(H, "The atmosphere is too thin for you to fly!") - return FALSE - return TRUE - -/datum/action/innate/flight - name = "Toggle Flight" - check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_STUN - icon_icon = 'icons/mob/actions/actions_items.dmi' - button_icon_state = "flight" - -/datum/action/innate/flight/Activate() - var/mob/living/carbon/human/H = owner - var/datum/species/angel/A = H.dna.species - if(A.CanFly(H)) - if(H.movement_type & FLYING) - to_chat(H, "You settle gently back onto the ground...") - A.ToggleFlight(H,0) - H.update_mobility() - else - to_chat(H, "You beat your wings and begin to hover gently above the ground...") - H.set_resting(FALSE, TRUE) - A.ToggleFlight(H,1) - H.update_mobility() - -/datum/species/angel/proc/flyslip(mob/living/carbon/human/H) - var/obj/buckled_obj - if(H.buckled) - buckled_obj = H.buckled - - to_chat(H, "Your wings spazz out and launch you!") - - playsound(H.loc, 'sound/misc/slip.ogg', 50, 1, -3) - - for(var/obj/item/I in H.held_items) - H.accident(I) - - var/olddir = H.dir - - H.stop_pulling() - if(buckled_obj) - buckled_obj.unbuckle_mob(H) - step(buckled_obj, olddir) - else - for(var/i=1, i<5, i++) - spawn (i) - step(H, olddir) - H.spin(1,1) - return 1 - - -/datum/species/angel/spec_stun(mob/living/carbon/human/H,amount) - if(H.movement_type & FLYING) - ToggleFlight(H,0) - flyslip(H) - . = ..() - -/datum/species/angel/negates_gravity(mob/living/carbon/human/H) - if(H.movement_type & FLYING) - return 1 - -/datum/species/angel/space_move(mob/living/carbon/human/H) - if(H.movement_type & FLYING) - return 1 - -/datum/species/angel/proc/ToggleFlight(mob/living/carbon/human/H,flight) - if(flight && CanFly(H)) - stunmod = 2 - speedmod = -0.1 - H.setMovetype(H.movement_type | FLYING) - override_float = TRUE - H.pass_flags |= PASSTABLE - H.OpenWings() - else - stunmod = 1 - speedmod = 0 - H.setMovetype(H.movement_type & ~FLYING) - override_float = FALSE - H.pass_flags &= ~PASSTABLE - H.CloseWings() - update_species_slowdown(H) diff --git a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm index b79c281b3b..c9af50de9d 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthropomorph.dm @@ -57,4 +57,5 @@ exotic_bloodtype = "S" exotic_blood_color = BLOOD_COLOR_OIL allowed_limb_ids = list("mammal","aquatic","avian", "human") - species_category = "robot" + species_category = SPECIES_CATEGORY_ROBOT + wings_icons = SPECIES_WINGS_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/arachnid.dm b/code/modules/mob/living/carbon/human/species_types/arachnid.dm index 454625cf36..7495e2500e 100644 --- a/code/modules/mob/living/carbon/human/species_types/arachnid.dm +++ b/code/modules/mob/living/carbon/human/species_types/arachnid.dm @@ -21,6 +21,7 @@ var/web_cooldown = 200 var/web_ready = TRUE var/spinner_rate = 25 + wings_icons = SPECIES_WINGS_MOTH //Arachnids' phylum is arthropods, which include butterflies. Might as well hit them with moth wings. /datum/species/arachnid/random_name(gender,unique,lastname) if(unique) diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index f87f425b5f..df4abf864a 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -19,6 +19,7 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" species_category = SPECIES_CATEGORY_INSECT + wings_icons = SPECIES_WINGS_INSECT allowed_limb_ids = list("insect","apid","moth","moth_not_greyscale") diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index e9baa786da..48b5032129 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -19,3 +19,4 @@ sexes = 0 gib_types = /obj/effect/gibspawner/robot species_category = SPECIES_CATEGORY_ROBOT + wings_icons = SPECIES_WINGS_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index 7cd582d050..facc3dfd8d 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -16,6 +16,7 @@ has_field_of_vision = FALSE //Too much of a trouble, their vision is already bound to their severed head. species_category = SPECIES_CATEGORY_UNDEAD var/pumpkin = FALSE + wings_icons = SPECIES_WINGS_SKELETAL //seems suitable for an undead. var/obj/item/dullahan_relay/myhead diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 5a185cbeb8..86720289fe 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -13,6 +13,7 @@ exotic_bloodtype = "BUG" exotic_blood_color = BLOOD_COLOR_BUG species_category = SPECIES_CATEGORY_INSECT + wings_icons = SPECIES_WINGS_INSECT /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(istype(chem, /datum/reagent/toxin/pestkiller)) diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index ac25c9e021..f90199c8ee 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -12,7 +12,7 @@ punchdamagelow = 5 punchdamagehigh = 14 punchstunthreshold = 10 - no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM, SLOT_S_STORE) + no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING, ITEM_SLOT_SUITSTORE) nojumpsuit = 1 sexes = 1 damage_overlay_type = "" diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index c3fd9e21fc..8c9e6bcd4f 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -35,6 +35,7 @@ exotic_bloodtype = "S" exotic_blood_color = BLOOD_COLOR_OIL species_category = SPECIES_CATEGORY_ROBOT + wings_icons = SPECIES_WINGS_ROBOT var/datum/action/innate/monitor_change/screen diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 0693bf64e1..66402de911 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -29,6 +29,7 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" species_category = SPECIES_CATEGORY_JELLY + wings_icons = SPECIES_WINGS_JELLY ass_image = 'icons/ass/assslime.png' /datum/species/jelly/on_species_loss(mob/living/carbon/C) @@ -69,6 +70,7 @@ to_chat(H, "You feel drained!") if(H.blood_volume < (BLOOD_VOLUME_BAD*H.blood_ratio)) Cannibalize_Body(H) + ..() /datum/species/jelly/proc/Cannibalize_Body(mob/living/carbon/human/H) var/list/limbs_to_consume = list(BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG) - H.get_missing_limbs() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 07fa78a88a..ef8fd35c45 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -29,6 +29,7 @@ tail_type = "tail_lizard" wagging_type = "waggingtail_lizard" species_category = SPECIES_CATEGORY_LIZARD + wings_icons = SPECIES_WINGS_DRAGON ass_image = 'icons/ass/asslizard.png' diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 0655b28197..afcec291e9 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -16,7 +16,7 @@ punchdamagehigh = 12 //still better than humans punchstunthreshold = 10 - no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM) + no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING) burnmod = 1.25 heatmod = 1.5 diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 547d017c23..9c29856084 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -23,6 +23,7 @@ outfit_important_for_life = /datum/outfit/plasmaman species_category = SPECIES_CATEGORY_SKELETON + wings_icons = SPECIES_WINGS_SKELETAL ass_image = 'icons/ass/assplasma.png' diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 4c82a25b4b..f412099831 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -16,6 +16,7 @@ mutanteyes = /obj/item/organ/eyes/night_vision species_category = SPECIES_CATEGORY_SHADOW + wings_icons = SPECIES_WINGS_SKELETAL //not sure what's more spooky for these guys - skeleton or dragon? /datum/species/shadow/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() @@ -36,7 +37,7 @@ limbs_id = SPECIES_SHADOW burnmod = 1.5 blacklisted = TRUE - no_equip = list(SLOT_WEAR_MASK, SLOT_WEAR_SUIT, SLOT_GLOVES, SLOT_SHOES, SLOT_W_UNIFORM, SLOT_S_STORE) + no_equip = list(ITEM_SLOT_MASK, ITEM_SLOT_OCLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_ICLOTHING, ITEM_SLOT_SUITSTORE) species_traits = list(NOBLOOD,NO_UNDERWEAR,NO_DNA_COPY,NOTRANSSTING,NOEYES,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_NOBREATH,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOHUNGER) mutanteyes = /obj/item/organ/eyes/night_vision/nightmare diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index 8175f505fa..5a927397fb 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -16,6 +16,7 @@ burnmod = 1.25 species_category = SPECIES_CATEGORY_SKELETON //they have their own category that's disassociated from undead, paired with plasmapeople + wings_icons = SPECIES_WINGS_SKELETAL /datum/species/skeleton/New() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) //skeletons are stronger during the spooky season! diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index c692370030..aa853ee551 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -35,3 +35,4 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" species_category = SPECIES_CATEGORY_ROBOT + wings_icons = SPECIES_WINGS_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 91711b5c39..316b129ee8 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -18,6 +18,7 @@ var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged species_language_holder = /datum/language_holder/synthetic species_category = SPECIES_CATEGORY_ROBOT + wings_icons = SPECIES_WINGS_ROBOT /datum/species/synth/military name = "Military Synth" diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index e708835ed1..3e54a4e638 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -15,8 +15,10 @@ skinned_type = /obj/item/stack/sheet/animalhide/human var/info_text = "You are a Vampire. You will slowly but constantly lose blood if outside of a coffin. If inside a coffin, you will slowly heal. You may gain more blood by grabbing a live victim and using your drain ability." species_category = SPECIES_CATEGORY_UNDEAD + wings_icons = SPECIES_WINGS_DRAGON //closest to "bat" wings. var/batform_enabled = TRUE + /datum/species/vampire/roundstart id = SPECIES_VAMPIRE_WEAK batform_enabled = FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/xeno.dm b/code/modules/mob/living/carbon/human/species_types/xeno.dm index d3249edd96..ffb8ac5a80 100644 --- a/code/modules/mob/living/carbon/human/species_types/xeno.dm +++ b/code/modules/mob/living/carbon/human/species_types/xeno.dm @@ -17,3 +17,4 @@ disliked_food = JUNKFOOD liked_food = GROSS | MEAT species_category = SPECIES_CATEGORY_ALIEN + wings_icons = SPECIES_WINGS_DRAGON //most depictions of xenomorphs with wings are closest to this. diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 57a11481d7..0dc08eeedb 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -16,6 +16,7 @@ disliked_food = NONE liked_food = GROSS | MEAT | RAW species_category = SPECIES_CATEGORY_UNDEAD + wings_icons = SPECIES_WINGS_SKELETAL //eh. /datum/species/zombie/notspaceproof id = "notspaceproofzombie" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 52d736f9ce..cb2458e376 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -128,7 +128,7 @@ There are several things that need to be remembered: remove_overlay(UNIFORM_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_W_UNIFORM] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_ICLOTHING) + 1] inv.update_icon() if(istype(w_uniform, /obj/item/clothing/under)) @@ -180,7 +180,7 @@ There are several things that need to be remembered: remove_overlay(ID_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_ID] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_ID) + 1] inv.update_icon() var/mutable_appearance/id_overlay = overlays_standing[ID_LAYER] @@ -204,8 +204,8 @@ There are several things that need to be remembered: if(!HAS_TRAIT(src, TRAIT_HUMAN_NO_RENDER)) remove_overlay(GLOVES_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_GLOVES]) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_GLOVES] + if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_GLOVES) + 1]) + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_GLOVES) + 1] inv.update_icon() if(!gloves && bloody_hands) @@ -242,7 +242,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_GLASSES] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EYES) + 1] inv.update_icon() if(glasses) @@ -269,7 +269,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_EARS] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_EARS) + 1] inv.update_icon() if(ears) @@ -295,7 +295,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_SHOES] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_FEET) + 1] inv.update_icon() if(dna.species.mutant_bodyparts["taur"]) @@ -330,7 +330,7 @@ There are several things that need to be remembered: remove_overlay(SUIT_STORE_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_S_STORE] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_SUITSTORE) + 1] inv.update_icon() if(s_store) @@ -357,7 +357,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_HEAD) + 1] inv.update_icon() if(head) @@ -394,7 +394,7 @@ There are several things that need to be remembered: remove_overlay(BELT_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_BELT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BELT) + 1] inv.update_icon() if(belt) @@ -416,7 +416,7 @@ There are several things that need to be remembered: remove_overlay(SUIT_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_SUIT] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_OCLOTHING) + 1] inv.update_icon() if(wear_suit) @@ -479,10 +479,10 @@ There are several things that need to be remembered: if(client && hud_used) var/atom/movable/screen/inventory/inv - inv = hud_used.inv_slots[SLOT_L_STORE] + inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_LPOCKET) + 1] inv.update_icon() - inv = hud_used.inv_slots[SLOT_R_STORE] + inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_RPOCKET) + 1] inv.update_icon() if(l_store) @@ -506,7 +506,7 @@ There are several things that need to be remembered: return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1] inv.update_icon() if(wear_mask) diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 13f811196e..2422528d21 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -1,16 +1,16 @@ /mob/living/carbon/get_item_by_slot(slot_id) switch(slot_id) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) return back - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) return wear_mask - if(SLOT_NECK) + if(ITEM_SLOT_NECK) return wear_neck - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return head - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) return handcuffed - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) return legcuffed return null @@ -20,17 +20,17 @@ return slot if(critical) //it is CRITICAL they get this item, no matter what //do they have a backpack? - var/obj/item/backpack = get_item_by_slot(SLOT_BACK) + var/obj/item/backpack = get_item_by_slot(ITEM_SLOT_BACK) if(!backpack) //nothing on their back backpack = new /obj/item/storage/backpack(get_turf(src)) - if(equip_to_slot(backpack, SLOT_BACK)) //worst-case-scenario, something that shouldnt wear a backpack gets one + if(equip_to_slot(backpack, ITEM_SLOT_BACK)) //worst-case-scenario, something that shouldnt wear a backpack gets one I.forceMove(backpack) - return SLOT_BACK + return ITEM_SLOT_BACK else if(istype(backpack) && SEND_SIGNAL(backpack, COMSIG_CONTAINS_STORAGE)) //place it in here, regardless of storage capacity I.forceMove(backpack) - return SLOT_BACK + return ITEM_SLOT_BACK else //this should NEVER happen, but if it does, report it with the appropriate information var/conclusion = qdel_on_fail ? "deleted" : "not moved, staying at current position [I.x], [I.y], [I.z]" @@ -69,28 +69,28 @@ I.appearance_flags |= NO_CLIENT_COLOR var/not_handled = FALSE switch(slot) - if(SLOT_BACK) + if(ITEM_SLOT_BACK) back = I update_inv_back() - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) wear_mask = I wear_mask_update(I, toggle_off = 0) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) head = I head_update(I) - if(SLOT_NECK) + if(ITEM_SLOT_NECK) wear_neck = I update_inv_neck(I) - if(SLOT_HANDCUFFED) + if(ITEM_SLOT_HANDCUFFED) handcuffed = I update_handcuffed() - if(SLOT_LEGCUFFED) + if(ITEM_SLOT_LEGCUFFED) legcuffed = I update_inv_legcuffed() - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) put_in_hands(I) update_inv_hands() - if(SLOT_IN_BACKPACK) + if(ITEM_SLOT_BACKPACK) if(!back || !SEND_SIGNAL(back, COMSIG_TRY_STORAGE_INSERT, I, src, TRUE)) not_handled = TRUE else @@ -170,7 +170,7 @@ if(!offered_item) to_chat(src, "You're not holding anything to give!") return - + if(IS_DEAD_OR_INCAP(src)) to_chat(src, span_warning("You're unable to offer anything in your current state!")) return @@ -184,7 +184,7 @@ visible_message(span_notice("[src] is offering [offered_item]."), \ span_notice("You offer [offered_item]."), null, 2) - + apply_status_effect(STATUS_EFFECT_OFFERING, offered_item) /** diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 182ae1afb8..27f795015e 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -676,7 +676,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put /mob/living/carbon/proc/get_cooling_efficiency() if(!HAS_TRAIT(src, TRAIT_ROBOTIC_ORGANISM)) return 1 - + var/integration_bonus = min(blood_volume * SYNTH_INTEGRATION_COOLANT_CAP, integrating_blood * SYNTH_INTEGRATION_COOLANT_PENALTY) //Integration blood somewhat helps, though only at 40% impact and to a cap of 25% of current blood level. var/blood_effective_volume = blood_volume + integration_bonus var/coolant_efficiency = min(blood_effective_volume / BLOOD_VOLUME_SAFE, 1) //Low coolant is only a negative, adding more than needed will not help you. @@ -706,13 +706,13 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put return total_environment_efficiency /mob/living/carbon/proc/check_suitlinking() - var/suit_item = get_item_by_slot(SLOT_WEAR_SUIT) - var/head_item = get_item_by_slot(SLOT_HEAD) + var/suit_item = get_item_by_slot(ITEM_SLOT_OCLOTHING) + var/head_item = get_item_by_slot(ITEM_SLOT_HEAD) var/turf/T = get_turf(src) - + if(istype(head_item, /obj/item/clothing/head/helmet/space) && istype(suit_item, /obj/item/clothing/suit/space)) return 1 - + if(T && is_mining_level(T.z) && istype(head_item, /obj/item/clothing/head/hooded/explorer) && istype(suit_item, /obj/item/clothing/suit/hooded/explorer)) return 1 diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 13d234092c..0c9895c729 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -30,7 +30,7 @@ return 0 if(myPath.len <= 0) - myPath = get_path_to(src, get_turf(target), /turf/proc/Distance, MAX_RANGE_FIND + 1, 250,1) + myPath = get_path_to(src, target, 250, 1) if(myPath) if(myPath.len > 0) diff --git a/code/modules/mob/living/carbon/monkey/inventory.dm b/code/modules/mob/living/carbon/monkey/inventory.dm index 34599028f7..156eef9b6b 100644 --- a/code/modules/mob/living/carbon/monkey/inventory.dm +++ b/code/modules/mob/living/carbon/monkey/inventory.dm @@ -5,29 +5,29 @@ return FALSE switch(slot) - if(SLOT_HANDS) + if(ITEM_SLOT_HANDS) if(get_empty_held_indexes()) return TRUE return FALSE - if(SLOT_WEAR_MASK) + if(ITEM_SLOT_MASK) if(wear_mask) return FALSE if( !(I.slot_flags & ITEM_SLOT_MASK) ) return FALSE return TRUE - if(SLOT_NECK) + if(ITEM_SLOT_NECK) if(wear_neck) return FALSE if( !(I.slot_flags & ITEM_SLOT_NECK) ) return FALSE return TRUE - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(head) return FALSE if( !(I.slot_flags & ITEM_SLOT_HEAD) ) return FALSE return TRUE - if(SLOT_BACK) + if(ITEM_SLOT_BACK) if(back) return FALSE if( !(I.slot_flags & ITEM_SLOT_BACK) ) diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index f8ac8c6716..8a029613e2 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -184,5 +184,5 @@ GLOBAL_LIST_INIT(strippable_monkey_items, create_strippable_list(list( . = ..() if(prob(10)) var/obj/item/clothing/head/helmet/justice/escape/helmet = new(src) - equip_to_slot_or_del(helmet,SLOT_HEAD) + equip_to_slot_or_del(helmet,ITEM_SLOT_HEAD) INVOKE_ASYNC(helmet, /obj/item.proc/attack_self, src) // todo encapsulate toggle diff --git a/code/modules/mob/living/carbon/monkey/punpun.dm b/code/modules/mob/living/carbon/monkey/punpun.dm index c59218a8a3..d71a989c1d 100644 --- a/code/modules/mob/living/carbon/monkey/punpun.dm +++ b/code/modules/mob/living/carbon/monkey/punpun.dm @@ -29,9 +29,9 @@ if(ancestor_chain > 1) generate_fake_scars(rand(ancestor_chain, ancestor_chain * 4)) if(relic_hat) - equip_to_slot_or_del(new relic_hat, SLOT_HEAD) + equip_to_slot_or_del(new relic_hat, ITEM_SLOT_HEAD) if(relic_mask) - equip_to_slot_or_del(new relic_mask, SLOT_WEAR_MASK) + equip_to_slot_or_del(new relic_mask, ITEM_SLOT_MASK) /mob/living/carbon/monkey/punpun/BiologicalLife(seconds, times_fired) if(!(. = ..())) diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 43e0db1f08..cd9cd5db4c 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -91,7 +91,7 @@ return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_MASK) + 1] inv?.update_icon() if(wear_mask) @@ -104,8 +104,8 @@ /mob/living/carbon/update_inv_neck() remove_overlay(NECK_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_NECK]) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_NECK] + if(client && hud_used && hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1]) + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_NECK) + 1] inv.update_icon() if(wear_neck) @@ -119,7 +119,7 @@ remove_overlay(BACK_LAYER) if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_BACK] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_BACK) + 1] inv?.update_icon() if(back) @@ -135,7 +135,7 @@ return if(client && hud_used) - var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] + var/atom/movable/screen/inventory/inv = hud_used.inv_slots[TOBITSHIFT(ITEM_SLOT_HEAD) + 1] inv?.update_icon() if(head) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 2070d07e14..bf3094cb08 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -395,6 +395,7 @@ ..() update_pull_movespeed() update_pull_hud_icon() + SEND_SIGNAL(src, COMSIG_LIVING_STOPPED_PULLING) /mob/living/verb/stop_pulling1() set name = "Stop Pulling" diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index af34fb54cf..6aed30ab83 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -9,6 +9,8 @@ resting = new_resting if(!silent) to_chat(src, "You are now [resting? "resting" : "getting up"].") + if(resting == 1) + SEND_SIGNAL(src, COMSIG_LIVING_RESTING) update_resting(updating) /mob/living/proc/update_resting(update_mobility = TRUE) diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 2b1c2de17a..e9bf3c5d49 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -2,7 +2,10 @@ ..() //Mind updates sync_mind() - mind.show_memory(src, 0) +//ambition start + if(mind.memory || mind.antag_datums) + to_chat(src, "[mind.show_memory()]") +//ambition end //Round specific stuff if(SSticker.mode) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index ca9ca75e6c..3aec65f6fb 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -551,7 +551,7 @@ Pass a positive integer as an argument to override a bot's default speed. var/datum/job/captain/All = new/datum/job/captain all_access.access = All.get_access() - set_path(get_path_to(src, waypoint, /turf/proc/Distance_cardinal, 0, 200, id=all_access)) + set_path(get_path_to(src, waypoint, 200, id=all_access)) calling_ai = caller //Link the AI to the bot! ai_waypoint = waypoint @@ -730,6 +730,7 @@ Pass a positive integer as an argument to override a bot's default speed. access_card.access = user_access + prev_access //Adds the user's access, if any. mode = BOT_SUMMON speak("Responding.", radio_channel) + calc_summon_path() if("ejectpai") @@ -765,12 +766,12 @@ Pass a positive integer as an argument to override a bot's default speed. // given an optional turf to avoid /mob/living/simple_animal/bot/proc/calc_path(turf/avoid) check_bot_access() - set_path(get_path_to(src, patrol_target, /turf/proc/Distance_cardinal, 0, 120, id=access_card, exclude=avoid)) + set_path(get_path_to(src, patrol_target, 120, id=access_card, exclude=avoid)) /mob/living/simple_animal/bot/proc/calc_summon_path(turf/avoid) check_bot_access() spawn() - set_path(get_path_to(src, summon_target, /turf/proc/Distance_cardinal, 0, 150, id=access_card, exclude=avoid)) + set_path(get_path_to(src, summon_target, 150, id=access_card, exclude=avoid)) if(!path.len) //Cannot reach target. Give up and announce the issue. speak("Summon command failed, destination unreachable.",radio_channel) bot_reset() diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index c683267a58..ed68d4d272 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -302,7 +302,7 @@ if(!path || path.len == 0) //No path, need a new one //Try to produce a path to the target, and ignore airlocks to which it has access. - path = get_path_to(src, target.loc, /turf/proc/Distance_cardinal, 0, 30, id=access_card) + path = get_path_to(src, target, 30, id=access_card) if(!bot_move(target)) add_to_ignore(target) target = null diff --git a/code/modules/mob/living/simple_animal/bot/firebot.dm b/code/modules/mob/living/simple_animal/bot/firebot.dm index 66d1955502..9eea7a85b1 100644 --- a/code/modules/mob/living/simple_animal/bot/firebot.dm +++ b/code/modules/mob/living/simple_animal/bot/firebot.dm @@ -223,7 +223,7 @@ if(target_fire && (get_dist(src, target_fire) > 2)) - path = get_path_to(src, get_turf(target_fire), /turf/proc/Distance_cardinal, 0, 30, 1, id=access_card) + path = get_path_to(src, target_fire, 30, 1, id=access_card) mode = BOT_MOVING if(!path.len) soft_reset() diff --git a/code/modules/mob/living/simple_animal/bot/floorbot.dm b/code/modules/mob/living/simple_animal/bot/floorbot.dm index 5f0075aaa2..c8b502f032 100644 --- a/code/modules/mob/living/simple_animal/bot/floorbot.dm +++ b/code/modules/mob/living/simple_animal/bot/floorbot.dm @@ -263,9 +263,9 @@ if(path.len == 0) if(!isturf(target)) var/turf/TL = get_turf(target) - path = get_path_to(src, TL, /turf/proc/Distance_cardinal, 0, 30, id=access_card,simulated_only = 0) + path = get_path_to(src, TL, 30, id=access_card,simulated_only = 0) else - path = get_path_to(src, target, /turf/proc/Distance_cardinal, 0, 30, id=access_card,simulated_only = 0) + path = get_path_to(src, target, 30, id=access_card,simulated_only = 0) if(!bot_move(target)) add_to_ignore(target) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index e00adfd8e8..0b21f4a825 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -492,10 +492,10 @@ return if(patient && path.len == 0 && (get_dist(src,patient) > 1)) - path = get_path_to(src, get_turf(patient), /turf/proc/Distance_cardinal, 0, 30,id=access_card) + path = get_path_to(src, patient, 30, id=access_card) mode = BOT_MOVING if(!path.len) //try to get closer if you can't reach the patient directly - path = get_path_to(src, get_turf(patient), /turf/proc/Distance_cardinal, 0, 30,1,id=access_card) + path = get_path_to(src, patient, 30, 1, id=access_card) if(!path.len) //Do not chase a patient we cannot reach. soft_reset() diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index dcb5e5f237..56e2f66feb 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -530,7 +530,7 @@ // calculates a path to the current destination // given an optional turf to avoid /mob/living/simple_animal/bot/mulebot/calc_path(turf/avoid = null) - path = get_path_to(src, target, /turf/proc/Distance_cardinal, 0, 250, id=access_card, exclude=avoid) + path = get_path_to(src, target, 250, id=access_card, exclude=avoid) // sets the current destination // signals all beacons matching the delivery code diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index ecd5db3ccf..dfb00f2657 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -88,10 +88,10 @@ if(default_storage) var/obj/item/I = new default_storage(src) - equip_to_slot_or_del(I, SLOT_GENERC_DEXTROUS_STORAGE) + equip_to_slot_or_del(I, ITEM_SLOT_DEX_STORAGE) if(default_hatmask) var/obj/item/I = new default_hatmask(src) - equip_to_slot_or_del(I, SLOT_HEAD) + equip_to_slot_or_del(I, ITEM_SLOT_HEAD) ADD_TRAIT(access_card, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index 948be53abc..df4d1e0673 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -61,7 +61,7 @@ if(!D.default_hatmask && seasonal_hats && possible_seasonal_hats.len) var/hat_type = pick(possible_seasonal_hats) var/obj/item/new_hat = new hat_type(D) - D.equip_to_slot_or_del(new_hat, SLOT_HEAD) + D.equip_to_slot_or_del(new_hat, ITEM_SLOT_HEAD) D.flags_1 |= (flags_1 & ADMIN_SPAWNED_1) user.transfer_ckey(D, FALSE) qdel(src) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm index 00be08bb1d..4c112858da 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm @@ -21,13 +21,13 @@ /mob/living/simple_animal/drone/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) switch(slot) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) if(head) return 0 if(!((I.slot_flags & ITEM_SLOT_HEAD) || (I.slot_flags & ITEM_SLOT_MASK))) return 0 return 1 - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) if(internal_storage) return 0 return 1 @@ -36,9 +36,9 @@ /mob/living/simple_animal/drone/get_item_by_slot(slot_id) switch(slot_id) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) return head - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) return internal_storage return ..() @@ -63,10 +63,10 @@ I.plane = ABOVE_HUD_PLANE switch(slot) - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) head = I update_inv_head() - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) internal_storage = I update_inv_internal_storage() else @@ -77,7 +77,7 @@ I.equipped(src, slot) /mob/living/simple_animal/drone/getBackSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE /mob/living/simple_animal/drone/getBeltSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index a079507a63..6d421d326e 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -52,7 +52,7 @@ /mob/living/simple_animal/hostile/guardian/dextrous/can_equip(obj/item/I, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE, clothing_check = FALSE, list/return_warning) switch(slot) - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) if(internal_storage) return 0 return 1 @@ -63,17 +63,17 @@ return switch(slot) - if(SLOT_GENERC_DEXTROUS_STORAGE) + if(ITEM_SLOT_DEX_STORAGE) internal_storage = I update_inv_internal_storage() else to_chat(src, "You are trying to equip this item to an unsupported inventory slot. Report this to a coder!") /mob/living/simple_animal/hostile/guardian/dextrous/getBackSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE /mob/living/simple_animal/hostile/guardian/dextrous/getBeltSlot() - return SLOT_GENERC_DEXTROUS_STORAGE + return ITEM_SLOT_DEX_STORAGE /mob/living/simple_animal/hostile/guardian/dextrous/proc/update_inv_internal_storage() if(internal_storage && client && hud_used && hud_used.hud_shown) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index fa67fd8e3b..6bd55d06ae 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -191,7 +191,7 @@ continue visible_message("[src] grabs hold of [L]!") var/mob/living/carbon/C = L - var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/S = C.get_item_by_slot(ITEM_SLOT_OCLOTHING) if(S && S.resistance_flags & GOLIATH_RESISTANCE) L.Stun(25) else if(S && S.resistance_flags & GOLIATH_WEAKNESS) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 7c7a684cf3..4cc66bc4bd 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -655,7 +655,7 @@ GLOBAL_LIST_INIT(strippable_parrot_items, create_strippable_list(list( item = I break if(item) - if(!AStar(src, get_turf(item), /turf/proc/Distance_cardinal)) + if(!get_path_to(src, item)) item = null continue return item diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 03c5e76e87..4b8fa75aee 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -439,7 +439,11 @@ set category = "IC" set desc = "View your character's notes memory." if(mind) - mind.show_memory(src) +//ambition start + var/datum/browser/popup = new(src, "memory", "Memory and Notes") + popup.set_content(mind.show_memory()) + popup.open() +//ambition end else to_chat(src, "You don't have a mind datum for some reason, so you can't look at your notes, if you had any.") diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index 1f8fd6f7a6..84ddab9e37 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -79,7 +79,6 @@ if(id_card?.registered_account) if((ACCESS_HEADS in id_card.access) || (ACCESS_QM in id_card.access)) requestonly = FALSE - buyer = SSeconomy.get_dep_account(id_card.registered_account.account_job.paycheck_department) can_approve_requests = TRUE else requestonly = TRUE @@ -236,8 +235,7 @@ return if(!self_paid && ishuman(usr) && !account) - var/obj/item/card/id/id_card = card_slot?.GetID() - account = SSeconomy.get_dep_account(id_card?.registered_account?.account_job.paycheck_department) + account = SSeconomy.get_dep_account(ACCOUNT_CAR) var/turf/T = get_turf(src) var/datum/supply_order/SO = new(pack, name, rank, ckey, reason, account) @@ -263,9 +261,7 @@ var/id = text2num(params["id"]) for(var/datum/supply_order/SO in SSshuttle.requestlist) if(SO.id == id) - var/obj/item/card/id/id_card = card_slot?.GetID() - if(id_card && id_card?.registered_account) - SO.paying_account = SSeconomy.get_dep_account(id_card?.registered_account?.account_job.paycheck_department) + SO.paying_account = SSeconomy.get_dep_account(ACCOUNT_CAR) SSshuttle.requestlist -= SO SSshuttle.shoppinglist += SO . = TRUE diff --git a/code/modules/ninja/energy_katana.dm b/code/modules/ninja/energy_katana.dm index cf895924b0..f59a06dc69 100644 --- a/code/modules/ninja/energy_katana.dm +++ b/code/modules/ninja/energy_katana.dm @@ -111,7 +111,7 @@ if(user.put_in_hands(src)) msg = "Your Energy Katana teleports into your hand!" - else if(user.equip_to_slot_if_possible(src, SLOT_BELT, 0, 1, 1)) + else if(user.equip_to_slot_if_possible(src, ITEM_SLOT_BELT, 0, 1, 1)) msg = "Your Energy Katana teleports back to you, sheathing itself as it does so!" else msg = "Your Energy Katana teleports to your location!" diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index ca740d9ad7..f9ce438ed9 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -11,7 +11,7 @@ l_pocket = /obj/item/grenade/plastic/c4/ninja r_pocket = /obj/item/hypospray/mkii/CMO/combat suit_store = /obj/item/tank/internals/oxygen - internals_slot = SLOT_S_STORE + internals_slot = ITEM_SLOT_SUITSTORE belt = /obj/item/energy_katana implants = list(/obj/item/implant/explosive) diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm index 6fba60a6ef..4f46a1bfc6 100644 --- a/code/modules/ninja/suit/shoes.dm +++ b/code/modules/ninja/suit/shoes.dm @@ -22,7 +22,7 @@ /obj/item/clothing/shoes/space_ninja/equipped(mob/user, slot) . = ..() - if(slot == SLOT_SHOES) + if(slot == ITEM_SLOT_FEET) ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) /obj/item/clothing/shoes/space_ninja/dropped(mob/user) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 201200a95d..22ce4e7ce5 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -469,15 +469,20 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) //((((some value between 0.5 and 1 * temp - ((273.15 + 40) * some values between 1 and 10)) * some number between 0.25 and knock your socks off / 150) * 0.25 //Heat and mols account for each other, a lot of hot mols are more damaging then a few //Mols start to have a positive effect on damage after 350 + var/spaced = 0 + for(var/turf/open/space/_space_turf in range(2,src)) + spaced++ damage = max(damage + (max(clamp(removed.total_moles() / 200, 0.5, 1) * removed.return_temperature() - ((T0C + HEAT_PENALTY_THRESHOLD)*dynamic_heat_resistance), 0) * mole_heat_penalty / 150 ) * DAMAGE_INCREASE_MULTIPLIER, 0) //Power only starts affecting damage when it is above 5000 damage = max(damage + (max(power - POWER_PENALTY_THRESHOLD, 0)/500) * DAMAGE_INCREASE_MULTIPLIER, 0) //Molar count only starts affecting damage when it is above 1800 damage = max(damage + (max(combined_gas - MOLE_PENALTY_THRESHOLD, 0)/80) * DAMAGE_INCREASE_MULTIPLIER, 0) + damage = max(damage + spaced * 0.1 * DAMAGE_INCREASE_MULTIPLIER, 0) + //There might be a way to integrate healing and hurting via heat //healing damage - if(combined_gas < MOLE_PENALTY_THRESHOLD) + if(combined_gas < MOLE_PENALTY_THRESHOLD && !spaced) //Only has a net positive effect when the temp is below 313.15, heals up to 2 damage. Psycologists increase this temp min by up to 45 damage = max(damage + (min(removed.return_temperature() - (T0C + HEAT_PENALTY_THRESHOLD), 0) / 150), 0) diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index f07ad0bc39..8c26f40d8b 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -163,7 +163,7 @@ icon = 'icons/obj/ammo.dmi' icon_state = "shotgunclip" caliber = "shotgun" // slapped in to allow shell mix n match - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKETS w_class = WEIGHT_CLASS_NORMAL w_volume = ITEM_VOLUME_STRIPPER_CLIP ammo_type = /obj/item/ammo_casing/shotgun diff --git a/code/modules/projectiles/boxes_magazines/external/rechargable.dm b/code/modules/projectiles/boxes_magazines/external/rechargable.dm index 5b774b111a..76d8f217ab 100644 --- a/code/modules/projectiles/boxes_magazines/external/rechargable.dm +++ b/code/modules/projectiles/boxes_magazines/external/rechargable.dm @@ -54,7 +54,7 @@ desc = "A miniature battery for an energy weapon." icon = 'icons/obj/ammo.dmi' icon_state = "mws_batt" - slot_flags = SLOT_BELT | SLOT_EARS + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_EARS throwforce = 1 caliber = "mws" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bbd77ad665..a1c7c312ab 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -619,7 +619,7 @@ . += knife_overlay /obj/item/gun/item_action_slot_check(slot, mob/user, datum/action/A) - if(istype(A, /datum/action/item_action/toggle_scope_zoom) && slot != SLOT_HANDS) + if(istype(A, /datum/action/item_action/toggle_scope_zoom) && slot != ITEM_SLOT_HANDS) return FALSE return ..() diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index e7f26670d4..1f0601ac77 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -140,6 +140,6 @@ recoil = 0.1 inaccuracy_modifier = 0.25 dualwield_spread_mult = 1.4 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM diff --git a/code/modules/projectiles/guns/energy/laser_gatling.dm b/code/modules/projectiles/guns/energy/laser_gatling.dm index a0274d76d7..2bb1ece906 100644 --- a/code/modules/projectiles/guns/energy/laser_gatling.dm +++ b/code/modules/projectiles/guns/energy/laser_gatling.dm @@ -32,7 +32,7 @@ /obj/item/minigunpack/on_attack_hand(var/mob/living/carbon/user) if(src.loc == user) if(!armed) - if(user.get_item_by_slot(SLOT_BACK) == src) + if(user.get_item_by_slot(ITEM_SLOT_BACK) == src) armed = 1 if(!user.put_in_hands(gun)) armed = 0 diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 2899f0ca11..d233866f80 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -14,6 +14,7 @@ GLOB.chemical_reagents_list[path] = D /proc/build_chemical_reactions_list() + message_admins("STARTY START START!") //Chemical Reactions - Initialises all /datum/chemical_reaction into a list // It is filtered into multiple lists within a list. // For example: @@ -26,11 +27,20 @@ //Randomized need to go last since they need to check against conflicts with normal recipes var/paths = subtypesof(/datum/chemical_reaction) - typesof(/datum/chemical_reaction/randomized) + subtypesof(/datum/chemical_reaction/randomized) GLOB.chemical_reactions_list = list() + GLOB.normalized_chemical_reactions_list = list() // chemistry pda + GLOB.drink_reactions_list = list() // bartender pda for(var/path in paths) var/datum/chemical_reaction/D = new path() var/list/reaction_ids = list() + // store recipes separately for bartender/chemistry cartridges + if(D.id && !D.is_secret) // don't show things like secretcatchem or secret sauce + var/datum/reagent/r = D.id + if(ispath(D.id, /datum/reagent/consumable)) + GLOB.drink_reactions_list[initial(r.name)] = D + if(ispath(D.id, /datum/reagent)) + GLOB.normalized_chemical_reactions_list[initial(r.name)] = D if(D.required_reagents && D.required_reagents.len) for(var/reaction in D.required_reagents) @@ -43,6 +53,31 @@ GLOB.chemical_reactions_list[id] += D break // Don't bother adding ourselves to other reagent ids, it is redundant +/proc/recipe_search(mob/M, list/reaction_list) + var/option = input(M, "Enter keyword to return a recipe.") + if(option) + option = lowertext(option) + var/list/reagents_required + var/found_reagent_name + var/required_temp + for(var/reagent_name in reaction_list) + if(findtext(lowertext(reagent_name), option)) + var/datum/chemical_reaction/reaction = reaction_list[reagent_name] + found_reagent_name = reagent_name + reagents_required = reaction.required_reagents + required_temp = reaction.required_temp + break + if(length(reagents_required)) + to_chat(M, "Recipe found: [found_reagent_name][required_temp ? "
    Required Temperature: [required_temp]K" : ""]
    Required Reagents:") + var/reagents_required_string = "" + for(var/r in reagents_required) + var/datum/reagent/reagent = r + reagents_required_string += "
    [initial(reagent.name)]: [reagents_required[r]]" + to_chat(M, reagents_required_string) + return + else + to_chat(M, "Reagent with term: [option] could not be located!") + /////////////////////////////////////////////////////////////////////////////////// /datum/reagents @@ -199,6 +234,7 @@ var/transfer_amount = T.volume * part if(preserve_data) trans_data = copy_data(T) + post_copy_data(T) transferred += "[T] - [transfer_amount]" R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered. @@ -239,7 +275,8 @@ var/datum/reagent/T = reagent var/copy_amount = T.volume * part if(preserve_data) - trans_data = T.data + trans_data = copy_data(T) + post_copy_data(T) R.add_reagent(T.type, copy_amount * multiplier, trans_data) src.update_total() @@ -266,7 +303,8 @@ var/datum/reagent/current_reagent = CR if(current_reagent.type == reagent) if(preserve_data) - trans_data = current_reagent.data + trans_data = copy_data(current_reagent) + post_copy_data(current_reagent) R.add_reagent(current_reagent.type, amount, trans_data, chem_temp, current_reagent.purity, pH, no_react = TRUE) remove_reagent(current_reagent.type, amount, 1) if(log && amount > 0) @@ -1117,6 +1155,11 @@ return trans_data +/// +// Should be ran after using copy_data. Calls the reagent's post_copy_data, which usually does nothing. +/datum/reagents/proc/post_copy_data(datum/reagent/current_reagent) + return current_reagent.post_copy_data() + /datum/reagents/proc/get_reagent(type) var/list/cached_reagents = reagent_list . = locate(type) in cached_reagents diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 9845903e21..8d009ffb2e 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -199,6 +199,10 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) M.reagents.add_reagent(impure_chem, impureVol, FALSE, other_purity = 1-cached_purity) log_reagent("MOB ADD: on_merge() (mixed purity): merged [volume - impureVol] of [type] and [volume] of [impure_chem]") +//Ran by a reagent holder on a specific reagent after copying its data. +/datum/reagent/proc/post_copy_data() + return + /datum/reagent/proc/on_update(atom/A) return diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index df49474992..4d1ded3913 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -997,11 +997,11 @@ if(M.stat == DEAD) if(M.suiciding || M.hellbound) //they are never coming back M.visible_message("[M]'s body does not react...") - return + return ..() if(M.getBruteLoss() >= 100 || M.getFireLoss() >= 100 || HAS_TRAIT(M, TRAIT_HUSK)) //body is too damaged to be revived M.visible_message("[M]'s body convulses a bit, and then falls still once more.") M.do_jitter_animation(10) - return + return ..() else M.visible_message("[M]'s body starts convulsing!") M.notify_ghost_cloning(source = M) @@ -1013,27 +1013,31 @@ if(iscarbon(M)) var/mob/living/carbon/C = M if(!(C.dna && C.dna.species && (NOBLOOD in C.dna.species.species_traits))) - C.blood_volume = max(C.blood_volume, BLOOD_VOLUME_NORMAL*C.blood_ratio) //so you don't instantly re-die from a lack of blood - for(var/organ in C.internal_organs) - var/obj/item/organ/O = organ - if(O.damage > O.maxHealth/2) - O.setOrganDamage(O.maxHealth/2) //so you don't instantly die from organ damage when being revived + C.blood_volume = max(C.blood_volume, BLOOD_VOLUME_BAD*C.blood_ratio) //so you don't instantly re-die from a lack of blood. You'll still need help if you had none though. + var/obj/item/organ/heart/H = C.getorganslot(ORGAN_SLOT_HEART) + if(H && H.organ_flags & ORGAN_FAILING) + H.applyOrganDamage(-15) + for(var/obj/item/organ/O as anything in C.internal_organs) + if(O.organ_flags & ORGAN_FAILING) + O.applyOrganDamage(-5) M.adjustOxyLoss(-20, 0) M.adjustToxLoss(-20, 0) M.updatehealth() + if(iscarbon(M)) + var/mob/living/carbon/C = M + if(!C.can_revive(ignore_timelimit = TRUE, maximum_brute_dam = 100, maximum_fire_dam = 100, ignore_heart = TRUE)) + return var/tplus = world.time - M.timeofdeath if(M.revive()) M.grab_ghost() M.emote("gasp") log_combat(M, M, "revived", src) var/list/policies = CONFIG_GET(keyed_list/policy) - var/timelimit = CONFIG_GET(number/defib_cmd_time_limit) * 10 //the config is in seconds, not deciseconds - var/late = timelimit && (tplus > timelimit) - var/policy = late? policies[POLICYCONFIG_ON_DEFIB_LATE] : policies[POLICYCONFIG_ON_DEFIB_INTACT] + var/policy = policies[POLICYCONFIG_ON_DEFIB_LATE] //Always causes memory loss due to the nature of strange reagent. if(policy) to_chat(M, policy) - M.log_message("revived using strange reagent, [tplus] deciseconds from time of death, considered [late? "late" : "memory-intact"] revival under configured policy limits.", LOG_GAME) + M.log_message("revived using strange reagent, [tplus] deciseconds from time of death, considered late revival due to usage of strange reagent.", LOG_GAME) ..() diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index 41c0ed717e..aab46bc3e4 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -38,6 +38,8 @@ var/clear_conversion //bitflags for clear conversions; REACTION_CLEAR_IMPURE or REACTION_CLEAR_INVERSE var/PurityMin = 0.15 //If purity is below 0.15, it explodes too. Set to 0 to disable this. + var/is_secret = FALSE // If it should show in recipe searchers such as the bartender/chemistry PDA functions + /datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, multiplier, specialreact) set waitfor = FALSE diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index fddff17a9d..03b0e1b715 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -581,7 +581,7 @@ if(istype(extract)) if(extract.Uses > 0) var/mob/lastheld = get_mob_by_key(holder.my_atom.fingerprintslast) - if(lastheld && !lastheld.equip_to_slot_if_possible(extract, SLOT_HANDS, disable_warning = TRUE)) + if(lastheld && !lastheld.equip_to_slot_if_possible(extract, ITEM_SLOT_HANDS, disable_warning = TRUE)) extract.forceMove(get_turf(lastheld)) use_slime_core(holder) diff --git a/code/modules/reagents/chemistry/recipes/special.dm b/code/modules/reagents/chemistry/recipes/special.dm index ad277ef4ff..4aab8e4046 100644 --- a/code/modules/reagents/chemistry/recipes/special.dm +++ b/code/modules/reagents/chemistry/recipes/special.dm @@ -54,6 +54,8 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related var/max_result_reagents = 1 var/list/possible_results = list() + is_secret = TRUE + /datum/chemical_reaction/randomized/proc/GenerateRecipe() created = world.time if(randomize_container) diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 6e1b753c32..cc7ff43bab 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -300,14 +300,14 @@ resistance_flags = NONE armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 50) //Weak melee protection, because you can wear it on your head slot_equipment_priority = list( \ - SLOT_BACK, SLOT_WEAR_ID,\ - SLOT_W_UNIFORM, SLOT_WEAR_SUIT,\ - SLOT_WEAR_MASK, SLOT_HEAD, SLOT_NECK,\ - SLOT_SHOES, SLOT_GLOVES,\ - SLOT_EARS, SLOT_GLASSES,\ - SLOT_BELT, SLOT_S_STORE,\ - SLOT_L_STORE, SLOT_R_STORE,\ - SLOT_GENERC_DEXTROUS_STORAGE + ITEM_SLOT_BACK, ITEM_SLOT_ID,\ + ITEM_SLOT_ICLOTHING, ITEM_SLOT_OCLOTHING,\ + ITEM_SLOT_MASK, ITEM_SLOT_HEAD, ITEM_SLOT_NECK,\ + ITEM_SLOT_FEET, ITEM_SLOT_GLOVES,\ + ITEM_SLOT_EARS, ITEM_SLOT_EYES,\ + ITEM_SLOT_BELT, ITEM_SLOT_SUITSTORE,\ + ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET,\ + ITEM_SLOT_DEX_STORAGE ) container_flags = APTFT_ALTCLICK|APTFT_VERB container_HP = 1 @@ -330,11 +330,11 @@ /obj/item/reagent_containers/glass/bucket/equipped(mob/user, slot) ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) if(reagents.total_volume) to_chat(user, "[src]'s contents spill all over you!") var/R = reagents.log_list() - log_reagent("SPLASH: [user] splashed [src] on their head via bucket/equipped(self, SLOT_HEAD) - [R]") + log_reagent("SPLASH: [user] splashed [src] on their head via bucket/equipped(self, ITEM_SLOT_HEAD) - [R]") reagents.reaction(user, TOUCH) reagents.clear_reagents() reagent_flags = NONE @@ -345,10 +345,10 @@ /obj/item/reagent_containers/glass/bucket/equip_to_best_slot(var/mob/M) if(reagents.total_volume) //If there is water in a bucket, don't quick equip it to the head - var/index = slot_equipment_priority.Find(SLOT_HEAD) - slot_equipment_priority.Remove(SLOT_HEAD) + var/index = slot_equipment_priority.Find(ITEM_SLOT_HEAD) + slot_equipment_priority.Remove(ITEM_SLOT_HEAD) . = ..() - slot_equipment_priority.Insert(index, SLOT_HEAD) + slot_equipment_priority.Insert(index, ITEM_SLOT_HEAD) return return ..() diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 55f44a505e..a6b6640ead 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -491,7 +491,7 @@ return var/fp_verb = mode == HYPO_SPRAY ? "spray" : "inject" - var/method = mode == HYPO_SPRAY ? TOUCH : INJECT + var/method = mode == HYPO_SPRAY ? PATCH : INJECT //Medsprays use patch when spraying, feels like an inconsistancy here. if(L != user) L.visible_message("[user] is trying to [fp_verb] [L] with [src]!", \ diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm index c26ed4db31..78cb9d43ea 100644 --- a/code/modules/reagents/reagent_containers/rags.dm +++ b/code/modules/reagents/reagent_containers/rags.dm @@ -150,11 +150,11 @@ /obj/item/reagent_containers/rag/towel/equipped(mob/living/user, slot) . = ..() switch(slot) - if(SLOT_BELT) + if(ITEM_SLOT_BELT) body_parts_covered = GROIN|LEGS - if(SLOT_WEAR_SUIT) + if(ITEM_SLOT_OCLOTHING) body_parts_covered = CHEST|GROIN|LEGS - if(SLOT_HEAD) + if(ITEM_SLOT_HEAD) body_parts_covered = HEAD flags_inv = HIDEHAIR diff --git a/code/modules/research/anomaly/explosive_compressor.dm b/code/modules/research/anomaly/explosive_compressor.dm index 23983e31dc..54236e3763 100644 --- a/code/modules/research/anomaly/explosive_compressor.dm +++ b/code/modules/research/anomaly/explosive_compressor.dm @@ -1,4 +1,4 @@ -#define MAX_RADIUS_REQUIRED 8000 //tritbomb +#define MAX_RADIUS_REQUIRED 175 //tritbomb #define MIN_RADIUS_REQUIRED 20 //maxcap /** * # Explosive compressor machines diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 8da18c453c..e30cdfb5ef 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -2,6 +2,18 @@ //////////Limb Grower Designs /////// ///////////////////////////////////// + +/datum/design/chestmob + name = "Synthetic Humanoid Framework Chest" + id = "chestmob" + // Mobs don't make very good roundstart icons + research_icon = 'icons/mob/human_parts.dmi' + research_icon_state = "default_human_chest" + build_type = LIMBGROWER + reagents_list = list(/datum/reagent/medicine/synthflesh = 100, /datum/reagent/blood = BLOOD_VOLUME_SURVIVE) + build_path = /mob/living/carbon/human/chestonly + category = list("initial","human","lizard","fly","insect","plasmaman","mammal","xeno") + /datum/design/leftarm name = "Left Arm" id = "leftarm" diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index e3cc63c3a0..4603b04b1d 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -234,7 +234,7 @@ var/mob/living/carbon/C = host_mob if(C.get_ghost()) return FALSE - return C.can_defib() + return C.can_revive() /datum/nanite_program/defib/proc/zap() var/mob/living/carbon/C = host_mob diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index 1ac09652b5..b30a53c27d 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -19,7 +19,7 @@ Slimecrossing Armor /obj/item/clothing/mask/nobreath/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_WEAR_MASK) + if(slot == ITEM_SLOT_MASK) ADD_TRAIT(user, TRAIT_NOBREATH, "breathmask_[REF(src)]") user.failed_last_breath = FALSE user.clear_alert("not_enough_oxy") @@ -39,7 +39,7 @@ Slimecrossing Armor var/glasses_color = "#FFFFFF" /obj/item/clothing/glasses/prism_glasses/item_action_slot_check(slot) - if(slot == SLOT_GLASSES) + if(slot == ITEM_SLOT_EYES) return TRUE /obj/structure/light_prism @@ -111,7 +111,7 @@ Slimecrossing Armor /obj/item/clothing/head/peaceflower/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == SLOT_HEAD) + if(slot == ITEM_SLOT_HEAD) ADD_TRAIT(user, TRAIT_PACIFISM, "peaceflower_[REF(src)]") /obj/item/clothing/head/peaceflower/dropped(mob/living/carbon/human/user) diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index dee7b1cf45..f871cac778 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -127,10 +127,10 @@ Regenerative extracts: /obj/item/slimecross/regenerative/darkpurple/core_effect(mob/living/target, mob/user) var/equipped = 0 - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/purple(null), SLOT_SHOES) - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(null), SLOT_W_UNIFORM) - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/purple(null), SLOT_GLOVES) - equipped += target.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(null), SLOT_HEAD) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/purple(null), ITEM_SLOT_FEET) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/under/color/lightpurple(null), ITEM_SLOT_ICLOTHING) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/purple(null), ITEM_SLOT_GLOVES) + equipped += target.equip_to_slot_or_del(new /obj/item/clothing/head/soft/purple(null), ITEM_SLOT_HEAD) if(equipped > 0) target.visible_message("The milky goo congeals into clothing!") @@ -142,13 +142,13 @@ Regenerative extracts: return var/mob/living/carbon/human/H = target var/fireproofed = FALSE - if(H.get_item_by_slot(SLOT_WEAR_SUIT)) + if(H.get_item_by_slot(ITEM_SLOT_OCLOTHING)) fireproofed = TRUE - var/obj/item/clothing/C = H.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/C = H.get_item_by_slot(ITEM_SLOT_OCLOTHING) fireproof(C) - if(H.get_item_by_slot(SLOT_HEAD)) + if(H.get_item_by_slot(ITEM_SLOT_HEAD)) fireproofed = TRUE - var/obj/item/clothing/C = H.get_item_by_slot(SLOT_HEAD) + var/obj/item/clothing/C = H.get_item_by_slot(ITEM_SLOT_HEAD) fireproof(C) if(fireproofed) target.visible_message("Some of [target]'s clothing gets coated in the goo, and turns blue!") diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index fbe7a0ea40..bf6051c87c 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -63,9 +63,9 @@ H.dropItemToGround(H.w_uniform) H.dropItemToGround(H.wear_suit) H.dropItemToGround(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), SLOT_WEAR_SUIT) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), SLOT_HEAD) - H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), ITEM_SLOT_OCLOTHING) + H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), ITEM_SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), ITEM_SLOT_ICLOTHING) // you only get one phylactery. M.mind.RemoveSpell(src) @@ -132,10 +132,10 @@ var/mob/old_body = mind.current var/mob/living/carbon/human/lich = new(item_turf) - lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), SLOT_SHOES) - lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), SLOT_W_UNIFORM) - lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), SLOT_WEAR_SUIT) - lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), SLOT_HEAD) + lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), ITEM_SLOT_FEET) + lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), ITEM_SLOT_ICLOTHING) + lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), ITEM_SLOT_OCLOTHING) + lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), ITEM_SLOT_HEAD) lich.real_name = mind.name mind.transfer_to(lich) diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index 28103f7f97..2a09fd2b93 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -49,6 +49,8 @@ to_chat(target, "A new compulsion fills your mind... you feel forced to obey it!") brainwash(target, objective) message_admins("[ADMIN_LOOKUPFLW(user)] surgically brainwashed [ADMIN_LOOKUPFLW(target)] with the objective '[objective]'.") + user.log_message("has brainwashed [key_name(target)] with the objective '[objective]' using brainwashing surgery.", LOG_ATTACK) + target.log_message("has been brainwashed with the objective '[objective]' by [key_name(user)] using brainwashing surgery.", LOG_VICTIM, log_globally=FALSE) log_game("[key_name(user)] surgically brainwashed [key_name(target)] with the objective '[objective]'.") return TRUE diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index a3c6ea06c8..05f3f06b06 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -156,12 +156,14 @@ return FALSE if(organ_flags & ORGAN_SYNTHETIC_EMP) //Synthetic organ has been emped, is now failing. applyOrganDamage(maxHealth * decay_factor) - return + return FALSE + if(organ_flags & ORGAN_SYNTHETIC) + return TRUE if(!is_cold() && damage) ///Damage decrements by a percent of its maxhealth var/healing_amount = -(maxHealth * healing_factor) ///Damage decrements again by a percent of its maxhealth, up to a total of 4 extra times depending on the owner's satiety - healing_amount -= owner.satiety > 0 ? 4 * healing_factor * owner.satiety / MAX_SATIETY : 0 + healing_amount -= owner.satiety > 0 ? 4 * (maxHealth * healing_factor) * (owner.satiety / MAX_SATIETY) : 0 if(healing_amount) applyOrganDamage(healing_amount) //to FERMI_TWEAK return TRUE diff --git a/code/modules/surgery/organs/stomach.dm b/code/modules/surgery/organs/stomach.dm index f7b84eab20..3b3aa72749 100644 --- a/code/modules/surgery/organs/stomach.dm +++ b/code/modules/surgery/organs/stomach.dm @@ -131,6 +131,13 @@ name = "ipc cell" icon_state = "stomach-ipc" +/obj/item/organ/stomach/ipc/on_life() + . = ..() + if(!.) + return + if(HAS_TRAIT(owner, TRAIT_ROBOTIC_ORGANISM) && owner.nutrition >= NUTRITION_LEVEL_FED) + owner.satiety += 5 //We don't need to cap the value as it's already automatically capped during nutrition level handling. Also effectively only +4 as you lose 1 per life tick. 300 seconds of sufficient charge to reach full satiety. + /obj/item/organ/stomach/ipc/emp_act(severity) . = ..() if(!owner || . & EMP_PROTECT_SELF) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 3e0e71446d..d4a87a0f1e 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -102,7 +102,7 @@ var/atom/throw_target = get_edge_target_turf(H, pick(GLOB.cardinals)) unbuckle_mob(H) H.throw_at(throw_target, 3, 2) - var/head_slot = H.get_item_by_slot(SLOT_HEAD) + var/head_slot = H.get_item_by_slot(ITEM_SLOT_HEAD) if(!head_slot || !(istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) H.updatehealth() @@ -281,7 +281,7 @@ H.throw_at(throw_target, 4, 3) H.DefaultCombatKnockdown(30) H.adjustStaminaLoss(30) - var/head_slot = H.get_item_by_slot(SLOT_HEAD) + var/head_slot = H.get_item_by_slot(ITEM_SLOT_HEAD) if(!head_slot || !(istype(head_slot,/obj/item/clothing/head/helmet) || istype(head_slot,/obj/item/clothing/head/hardhat))) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1) H.updatehealth() diff --git a/config/entries/logging.txt b/config/entries/logging.txt index 31692afccb..6483a371f0 100644 --- a/config/entries/logging.txt +++ b/config/entries/logging.txt @@ -34,6 +34,9 @@ LOG_EMOTE ## log attack messages LOG_ATTACK +## log victim messages +LOG_VICTIM + ## log pda messages LOG_PDA diff --git a/dependencies.sh b/dependencies.sh index 4474cc8736..0a27dd623f 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -18,7 +18,7 @@ export NODE_VERSION_PRECISE=12.22.4 export SPACEMAN_DMM_VERSION=suite-1.7 # Python version for mapmerge and other tools -export PYTHON_VERSION=3.6.8 +export PYTHON_VERSION=3.7.9 # Auxmos git tag export AUXMOS_VERSION=v0.3.0 diff --git a/html/changelogs/archive/2022-02.yml b/html/changelogs/archive/2022-02.yml index ab94ea975b..12ad63274c 100644 --- a/html/changelogs/archive/2022-02.yml +++ b/html/changelogs/archive/2022-02.yml @@ -78,3 +78,99 @@ '[Timberpoes](https://github.com/Timberpoes)': - admin: Re-added the button to the player playtime panel that lets admins toggle a player's job playtime exemption status. +2022-02-19: + timothyteakettle: + - rscadd: polychromic clown outfit and mask +2022-02-20: + jupyterkat: + - refactor: switched equalization method to katmos +2022-02-21: + BlueWildrose and tralezab, Wjohnston, Mey Ha Zah, ArcaneDefense, Jack7D1, Papaporo, Sheits & Mqiib from TG and Yog: + - rscadd: TG wing port - All species can now use flight potions and grow wings. + Your wing sprite will be based off of what wings you have on your character, + or otherwise what species you are if you have no wings. + - bugfix: Jellypeople did not call the species parent proc on spec_life. Fixed. + Putnam3145: + - bugfix: Default features on linux auxmos compile now formatted correctly + - bugfix: reinforced plasma glass windows are buildable + TripleShades: + - rscadd: '[Omega] Gateway shutter button' + - rscadd: '[Omega] Signs to the airlocks that lead to space that say SPACE' + - rscadd: '[Omega] Air Alarm for the Turbine itself' + - rscadd: '[Omega] SMES Unit for the Turbine itself' + - rscadd: '[Omega] Firelock to Robotics airlock' + - rscadd: '[Omega] Captain''s Office now has a hand teleporter and medal box' + - rscadd: '[Omega] Screwdriver to Chemistry' + - rscadd: '[Omega] Space Cleaner bottle to Medbay' + - rscadd: '[Omega] Limb Grower and Spare Limb Crate to Surgery' + - rscadd: '[Omega] Kinkmate in Dorms' + - rscadd: '[Omega] Lightbulb fixture to Secure Tech Storage' + - rscadd: '[Omega] Armsky is now in the Armoury' + - rscdel: '[Omega] Extra automated announcement machine' + - rscdel: '[Omega] Wall inside of southwest Solar Array window' + - rscdel: '[Omega] Wall inside library maint airlock' + - rscdel: '[Omega] Duplicate Robotics airlock tweak: [Omega] HoS gun now spawns + in HoS locker instead of Captain''s locker tweak: [Omega] Both Solar Arrays + now have more windows tweak: [Omega] PACMAN moved out from behind a Command + airlock in Engineering tweak: [Omega] A few cameras so that they''re not sitting + improperly on windows tweak: [Omega] Medbay Surgery now has a surgical duffel + instead of strewn about tools tweak: [Omega] Security Cell 1 is now properly + named and has a bed instead of a chair tweak: [Omega] Toxins scrubber piping + now goes through a wall tweak: [Omega] Robotics trash can is now moved to the + small hallway between Robotics and Toxins tweak: [Omega] Maint Pool drain moved + down a tile so it''s easier to retrieve lost items' + - bugfix: '[Omega] Lawyer Office access' + - bugfix: '[Omega] Both Solar Arrays are now wired up to power the station properly' + - bugfix: '[Omega] Wire leading to the single Supermatter Emitter should now be + properly connected and not diagonal' + - bugfix: '[Omega] Gateway Maint airlock access' + - bugfix: '[Omega] Toxins Launch not being connected to the main air supply' + - bugfix: '[Omega] Toxins Mix Chamber no longer starts bolted' + - bugfix: '[Omega] Missing pipe above Security leading into Perma' + - bugfix: '[Omega] Secure Tech Storage now properly has an area' +2022-02-23: + SandPoot: + - bugfix: You know the training targets? You can grab them again now with your own + hands, instead of using telekinesis. + TripleShades: + - rscadd: '[Omega] Trash chute to space in Virology' + - rscadd: '[Omega] Trash chute to space in Xenobiology' + - rscadd: '[Omega] Airlock leading out to Supermatter cooling pipeline' + - rscadd: '[Omega] Two more air pumps to Toxins' + - rscadd: '[Omega] Robotics circuitry printer' + - rscadd: '[Omega] Windoor to Cargo delivery flaps' + - rscdel: '[Omega] Backdoor to Gravity Generator' + - rscdel: '[Omega] Bunched up cameras tweak: [Omega] Pipes leading to the Incinerator + burn chamber are now black tweak: [Omega] Gravity Generator airlocks are now + accessible by engineers tweak: [Omega] Chapel mass driver and mass driver bulkhead + are now controlled by one button instead of two' + - bugfix: '[Omega] Lawyer''s carpet is no longer airless' +2022-02-25: + TripleShades: + - rscadd: '[Omega] Additional Solar Panels to both existing arrays' + - rscadd: '[Omega] Floor tile underneath library maint airlock' + - rscadd: '[Omega] Contraband locker to Armoury' + - bugfix: '[Omega] Solar Array SMES Units actually connect to the grid properly + now' + timothyteakettle: + - rscadd: adds snake coiling +2022-02-26: + Putnam3145: + - balance: Now slightly easier to get 50,000 points with toxins (50,000 point baseline + changed from 200 light range to 175) +2022-02-28: + Arturlang: + - rscadd: The limbgrower can make human chest parts that you can build onto into + a person. + Putnam3145: + - rscadd: Configurable weekly high-chaos days + SandPoot: + - refactor: Kills off SLOT_ in favor of ITEM_SLOT_ + SandPoot and Crowbar764: + - rscadd: TGUI for the player playtimes menu. + bunny232: + - rscadd: Cold weather gear can now provide insulation against temperatures of up + to 57C (330K) + timothyteakettle: + - rscadd: adds a cartridge for the bartender's PDA that lets them search drink recipes + - rscadd: updates chemist cartridge to be able to search all chemical recipes diff --git a/html/statbrowser.html b/html/statbrowser.html index 1cb089a189..ecb47c419c 100644 --- a/html/statbrowser.html +++ b/html/statbrowser.html @@ -12,16 +12,27 @@ font-size: 12px !important; margin: 0 !important; padding: 0 !important; + overflow-x: hidden; + overflow-y: scroll; } + body.dark { background-color: #131313; - color: #abc6ec; + color: #b2c4dd; + scrollbar-base-color: #1c1c1c; + scrollbar-face-color: #3b3b3b; + scrollbar-3dlight-color: #252525; + scrollbar-highlight-color: #252525; + scrollbar-track-color: #1c1c1c; + scrollbar-arrow-color: #929292; + scrollbar-shadow-color: #3b3b3b; } #menu { background-color: #F0F0F0; position: fixed; width: 100%; + z-index: 100; } .dark #menu { @@ -38,7 +49,7 @@ } .dark a { - color: #abc6ec; + color: #b2c4dd; } a:hover, .dark a:hover { @@ -80,73 +91,115 @@ .button { background-color: #dfdfdf; - border-color: #cecece; - border-width: 1px; - border-style: solid; + border: 1px solid #cecece; + border-bottom-width: 2px; color: rgba(0, 0, 0, 0.7); - padding: 6px 4px; + padding: 6px 4px 4px; text-align: center; text-decoration: none; font-size: 12px; margin: 0; cursor: pointer; - transition-duration: 0.25s; + transition-duration: 100ms; order: 3; min-width: 40px; } .dark button { - background-color: #444444; + background-color: #222222; border-color: #343434; - color: rgba(255, 255, 255, 0.7); + color: rgba(255, 255, 255, 0.5); } .button:hover { background-color: #ececec; + transition-duration: 0; } .dark button:hover { - background-color: #4d4d4d; + background-color: #2e2e2e; } .button:active, .button.active { background-color: #ffffff; color: black; - border-top: 1px solid #cecece; - border-left: 1px solid #cecece; - border-right: 1px solid #cecece; - border-bottom: 1px solid #ffffff; + border-top-color: #cecece; + border-left-color: #cecece; + border-right-color: #cecece; + border-bottom-color: #ffffff; } .dark .button:active, .dark .button.active { - background-color: #131313; + background-color: #444444; color: white; - border-top: 1px solid #343434; - border-left: 1px solid #343434; - border-right: 1px solid #343434; - border-bottom: 1px solid #131313; + border-top-color: #343434; + border-left-color: #343434; + border-right-color: #343434; + border-bottom-color: #ffffff; } .grid-container { - display: inline-flex; - flex-wrap: wrap; - justify-content: flex-start; - align-items: flex-start; - min-width: 0; - min-height: 0; - white-space: pre-wrap; + margin: -2px; + margin-right: -15px; } .grid-item { - color: black; - width: 150px; - font-size: 11px; - line-height: 24px; - text-align: left; - min-width: 0; - min-height: 0; - white-space: pre-wrap; - padding-right: 12px; /* A little more than two spaces, to look good in IE8 where flex-justify does nothing */ + position: relative; + display: inline-block; + width: 100%; + box-sizing: border-box; + overflow: visible; + padding: 3px 2px; + text-decoration: none; + } + + @media only screen and (min-width: 300px) { + .grid-item { + width: 50%; + } + } + + @media only screen and (min-width: 430px) { + .grid-item { + width: 33%; + } + } + + @media only screen and (min-width: 560px) { + .grid-item { + width: 25%; + } + } + + @media only screen and (min-width: 770px) { + .grid-item { + width: 20%; + } + } + + .grid-item:hover { + z-index: 1; + } + + .grid-item:hover .grid-item-text { + width: auto; + text-decoration: underline; + } + + .grid-item-text { + display: inline-block; + width: 100%; + background-color: #ffffff; + margin: 0 -6px; + padding: 0 6px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + pointer-events: none; + } + + .dark .grid-item-text { + background-color: #131313; } .link { @@ -173,6 +226,10 @@ -ms-interpolation-mode: nearest-neighbor; image-rendering: pixelated; } + + .interview_panel_controls, .interview_panel_stats { + margin-bottom: 10px; + } @@ -242,53 +299,6 @@ if (!String.prototype.trim) { }, 0, 'test'); }()) -// Browser passthrough code --------------------------------------------------- -if (window.location) { - var anti_spam = []; // wow I wish I could use e.repeat but IE is dumb and doesn't have it. - document[addEventListenerKey]("keydown", function(e) { - if(e.target && (e.target.localName == "input" || e.target.localName == "textarea")) - return; - if(e.defaultPrevented) - return; // do e.preventDefault() to prevent this behavior. - if(e.which) { - if(!anti_spam[e.which]) { - anti_spam[e.which] = true; - var key = String.fromCharCode(e.which); - var x = event.x || event.clientX; - var y = event.y || event.clientY; - if(x || y ) // if either of these exist this is happening after a click - return; - window.location.href = "byond://winset?command=keyDown " + e.key; - } - } - }); - document[addEventListenerKey]("keyup", function(e) { - if(e.target && (e.target.localName == "input" || e.target.localName == "textarea")) - return; - if(e.defaultPrevented) - return; - if(e.which) { - anti_spam[e.which] = false; - var key = String.fromCharCode(e.which); - var x = event.x || event.clientX; - var y = event.y || event.clientY; - if( x || y ) // if either of these exist this is happening after a click - return; - - window.location.href = "byond://winset?command=keyUp " + e.key; - } - }); -} -/* document.addEventListener("mousedown", function(e){ - var shiftPressed=0; - var evt = e?e:window.event; - shiftPressed=evt.shiftKey; - if (shiftPressed) { - return false; - } - return true; -}); */ - // Status panel implementation ------------------------------------------------ var status_tab_parts = ["Loading..."]; var current_tab = null; @@ -300,20 +310,80 @@ var spell_tabs = []; var verb_tabs = []; var verbs = [["", ""]]; // list with a list inside var tickets = []; +var interviewManager = {status: "", interviews: []}; var sdql2 = []; var permanent_tabs = []; // tabs that won't be cleared by wipes var turfcontents = []; var turfname = ""; var imageRetryDelay = 500; var imageRetryLimit = 50; -var menu = document.querySelector('#menu'); -var under_menu = document.querySelector('#under_menu'); -var statcontentdiv = document.querySelector('#statcontent'); +var menu = document.getElementById('menu'); +var under_menu = document.getElementById('under_menu'); +var statcontentdiv = document.getElementById('statcontent'); var storedimages = []; +var split_admin_tabs = false; + +var connected = false; +var commandQueue = []; + +// Any BYOND verb call must go through this, as if a verb is sent during reconnect then +// it will cause the reconnect to fail. +// This function will either call immediately, or queue until +// BYOND confirms we are connected. +function send_byond_command(command) { + var href = "byond://winset?command=" + command; + + if (connected) { + window.location.href = href; + } else { + commandQueue.push(href); + } +} + +// Any BYOND commands that could result in the client's focus changing go through this +// to ensure that when we relinquish our focus, we don't do it after the result of +// a command has already taken focus for itself. +function run_after_focus(callback) { + setTimeout(callback, 0); +} + +function connected_to_server() { + if (connected) { + return; + } + + connected = true; + + for (var index = 0; index < commandQueue.length; index++) { + // This is just setting it a lot, is this not going to cancel? + window.location.href = commandQueue[index]; + } + + commandQueue = []; +} + +function update_split_admin_tabs(status) { + status = (status == true); + + if (split_admin_tabs !== status) { + if (split_admin_tabs === true) { + removeStatusTab("Events"); + removeStatusTab("Fun"); + removeStatusTab("Game"); + } + update_verbs(); + } + split_admin_tabs = status; +} function createStatusTab(name) { - if (name.indexOf(".") != -1) - name = name.split(".")[0]; + if (name.indexOf(".") != -1) { + var splitName = name.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + name = splitName[1]; + else + name = splitName[0]; + } if(document.getElementById(name) || name.trim() == "") return; if(!verb_tabs.includes(name) && !permanent_tabs.includes(name)) @@ -386,6 +456,7 @@ function checkStatusTab() { if(!verb_tabs.includes(menu.children[i].id) && !permanent_tabs.includes(menu.children[i].id)) menu.removeChild(menu.children[i]); } + function remove_verb(v) { var verb_to_remove = v; // to_remove = [verb:category, verb:name] for(var i = verbs.length - 1; i >= 0; i--){ @@ -403,7 +474,14 @@ function check_verbs() { } function verbs_cat_check(cat) { - var tabCat = cat.indexOf(".") != -1 ? cat.split(".")[0] : cat; + var tabCat = cat; + if (cat.indexOf(".") != -1) { + var splitName = cat.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + tabCat = splitName[1]; + else + tabCat = splitName[0]; + } var verbs_in_cat = 0; var verbcat = ""; if(!verb_tabs.includes(tabCat)){ @@ -412,7 +490,14 @@ function verbs_cat_check(cat) { } for(var v = 0; v < verbs.length; v++){ var part = verbs[v]; - verbcat = part[0].indexOf(".") != -1 ? part[0].split(".")[0] : part[0]; + verbcat = part[0]; + if (verbcat.indexOf(".") != -1) { + var splitName = verbcat.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + verbcat = splitName[1]; + else + verbcat = splitName[0]; + } if(verbcat != tabCat || verbcat.trim() == ""){ continue; } @@ -441,6 +526,11 @@ function wipe_verbs() { checkStatusTab(); // remove all empty verb tabs } +function update_verbs() { + wipe_verbs(); + send_byond_command("Update-Verbs"); +} + function add_verb_list(v) { var to_add = JSON.parse(v); // list of a list with category and verb inside it to_add.sort(); // sort what we're adding @@ -448,7 +538,14 @@ function add_verb_list(v) { var part = to_add[i]; if(!part[0]) continue; - var category = part[0].indexOf(".") == -1 ? part[0] : part[0].split(".")[0]; + var category = part[0]; + if (category.indexOf(".") != -1) { + var splitName = category.split("."); + if (split_admin_tabs && splitName[0] === "Admin") + category = splitName[1]; + else + category = splitName[0]; + } if(findVerbindex(part[1], verbs)) continue; if(verb_tabs.includes(category)){ @@ -478,6 +575,7 @@ function remove_verb_list(v) { // passes a 2D list of (verbcategory, verbname) creates tabs and adds verbs to respective list // example (IC, Say) function init_verbs(c, v) { + connected_to_server(); wipe_verbs(); // remove all verb categories so we can replace them checkStatusTab(); // remove all status tabs verb_tabs = JSON.parse(c); @@ -510,12 +608,12 @@ function SendTabsToByond(){ } function SendTabToByond(tab) { - window.location.href = "byond://winset?command=Send-Tabs " + tab; + send_byond_command("Send-Tabs " + tab); } //Byond can't have this tab anymore since we're removing it function TakeTabFromByond(tab) { - window.location.href = "byond://winset?command=Remove-Tabs " + tab; + send_byond_command("Remove-Tabs " + tab); } function update(global_data, ping_entry, other_entries) { @@ -625,6 +723,7 @@ function tab_change(tab) { draw_debug(); } else if(tab == "Tickets") { draw_tickets(); +// draw_interviews(); } else if(tab == "SDQL2") { draw_sdql2(); }else if(tab == turfname) { @@ -636,8 +735,9 @@ function tab_change(tab) { } function set_byond_tab(tab){ - window.location.href = "byond://winset?command=Set-Tab " + tab; + send_byond_command("Set-Tab " + tab); } + function draw_debug() { statcontentdiv[textContentKey] = ""; var wipeverbstabs = document.createElement("div"); @@ -646,12 +746,26 @@ function draw_debug() { link[textContentKey] = "Wipe All Verbs"; wipeverbstabs.appendChild(link); document.getElementById("statcontent").appendChild(wipeverbstabs); + var wipeUpdateVerbsTabs = document.createElement("div"); + var updateLink = document.createElement("a"); + updateLink.onclick = function() {update_verbs()}; + updateLink[textContentKey] = "Wipe and Update All Verbs"; + wipeUpdateVerbsTabs.appendChild(updateLink); + document.getElementById("statcontent").appendChild(wipeUpdateVerbsTabs); var text = document.createElement("div"); text[textContentKey] = "Verb Tabs:"; document.getElementById("statcontent").appendChild(text); var table1 = document.createElement("table"); for(var i=0; i < verb_tabs.length ; i++) { var part = verb_tabs[i]; + // Hide subgroups except admin subgroups if they are split + if (verb_tabs[i].lastIndexOf(".") != -1) { + var splitName = verb_tabs[i].split("."); + if (split_admin_tabs && splitName[0] === "Admin") + part = splitName[1]; + else + continue; + } var tr = document.createElement("tr"); var td1 = document.createElement("td"); td1[textContentKey] = part; @@ -740,7 +854,7 @@ function draw_status() { } if(verb_tabs.length == 0 || !verbs) { - window.location.href = "byond://winset?command=Fix-Stat-Panel"; + send_byond_command("Fix-Stat-Panel"); } } @@ -776,6 +890,11 @@ function update_tickets(T){ if(current_tab == "Tickets") draw_tickets(); } +function update_interviews(I){ + interviewManager = JSON.parse(I); + if(current_tab == "Tickets") + draw_interviews(); +} function update_sdql2(S) { sdql2 = JSON.parse(S); if(sdql2.length > 0 && !verb_tabs.includes("SDQL2")) { @@ -805,12 +924,21 @@ function remove_tickets() { } checkStatusTab(); } + +function remove_interviews() { + if(tickets) { + tickets = []; + } + checkStatusTab(); +} + // removes MC, Tickets and MC tabs. function remove_admin_tabs() { href_token = null; remove_mc(); remove_tickets(); remove_sdql2(); +// remove_interviews(); } function add_admin_tabs(ht) { @@ -875,7 +1003,17 @@ function draw_listedturf() { // rather than every onmousedown getting the "part" of the last entry. return function(e) { e.preventDefault(); - clickcatcher = "?src=_statpanel_;statpanel_item_target=" + part[1] + ";statpanel_item_click=1"; + clickcatcher = "?src=_statpanel_;statpanel_item_target=" + part[1]; + switch(e.button){ + case 1: + clickcatcher += ";statpanel_item_click=middle" + break; + case 2: + clickcatcher += ";statpanel_item_click=right" + break; + default: + clickcatcher += ";statpanel_item_click=left" + } if(e.shiftKey){ clickcatcher += ";statpanel_item_shiftclick=1"; } @@ -912,7 +1050,7 @@ function draw_sdql2(){ var td2 = document.createElement("td"); if(part[2]) { var a = document.createElement("a"); - a.href = "?src=" + "_statpanel_" + ";statpanel_item_target=" + part[2] + ";statpanel_item_click=1"; + a.href = "?src=" + "_statpanel_" + ";statpanel_item_target=" + part[2] + ";statpanel_item_click=left"; a[textContentKey] = part[1]; td2.appendChild(a); } else { @@ -938,12 +1076,12 @@ function draw_tickets() { var td2 = document.createElement("td"); if(part[2]) { var a = document.createElement("a"); - a.href = "?_src_=holder;admin_token=" + href_token + ";ahelp=" + part[2] + ";ahelp_action=ticket;statpanel_item_click=1;action=ticket" ; + a.href = "?_src_=holder;admin_token=" + href_token + ";ahelp=" + part[2] + ";ahelp_action=ticket;statpanel_item_click=left;action=ticket" ; a[textContentKey] = part[1]; td2.appendChild(a); } else if(part[3]){ var a = document.createElement("a"); - a.href = "?src=_statpanel_" + ";statpanel_item_target=" + part[3] + ";statpanel_item_click=1"; + a.href = "?src=_statpanel_" + ";statpanel_item_target=" + part[3] + ";statpanel_item_click=left"; a[textContentKey] = part[1]; td2.appendChild(a); } else { @@ -956,6 +1094,55 @@ function draw_tickets() { document.getElementById("statcontent").appendChild(table); } +function draw_interviews() { + var body = document.createElement("div"); + var header = document.createElement("h3"); + header[textContentKey] = "Interviews"; + body.appendChild(header); + var manDiv = document.createElement("div"); + manDiv.className = "interview_panel_controls" + var manLink = document.createElement("a"); + manLink[textContentKey] = "Open Interview Manager Panel"; + manLink.href = "?_src_=holder;admin_token=" + href_token + ";interview_man=1;statpanel_item_click=left"; + manDiv.appendChild(manLink); + body.appendChild(manDiv); + + // List interview stats + var statsDiv = document.createElement("table"); + statsDiv.className="interview_panel_stats"; + for (var key in interviewManager.status) { + var d = document.createElement("div"); + var tr = document.createElement("tr"); + var stat_name = document.createElement("td"); + var stat_text = document.createElement("td"); + stat_name[textContentKey] = key; + stat_text[textContentKey] = interviewManager.status[key]; + tr.appendChild(stat_name); + tr.appendChild(stat_text); + statsDiv.appendChild(tr); + } + body.appendChild(statsDiv); + document.getElementById("statcontent").appendChild(body); + + // List interviews if any are open + var table = document.createElement("table"); + table.className = "interview_panel_table"; + if(!interviewManager) + return; + for(var i = 0; i < interviewManager.interviews.length; i++) { + var part = interviewManager.interviews[i]; + var tr = document.createElement("tr"); + var td = document.createElement("td"); + var a = document.createElement("a"); + a[textContentKey] = part["status"]; + a.href = "?_src_=holder;admin_token=" + href_token + ";interview=" + part["ref"] + ";statpanel_item_click=left"; + td.appendChild(a); + tr.appendChild(td); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); +} + function draw_spells(cat) { statcontentdiv[textContentKey] = ""; var table = document.createElement("table"); @@ -968,7 +1155,7 @@ function draw_spells(cat) { var td2 = document.createElement("td"); if(part[3]) { var a = document.createElement("a"); - a.href = "?src=" + part[3] + ";statpanel_item_click=1"; + a.href = "?src=" + part[3] + ";statpanel_item_click=left"; a[textContentKey] = part[2]; td2.appendChild(a); } else { @@ -981,16 +1168,34 @@ function draw_spells(cat) { document.getElementById("statcontent").appendChild(table); } +function make_verb_onclick(command) { + return function() { + run_after_focus(function() { + send_byond_command(command); + }); + }; +} + function draw_verbs(cat){ statcontentdiv[textContentKey] = ""; var table = document.createElement("div"); var additions = {}; // additional sub-categories to be rendered table.className = "grid-container"; sortVerbs(); + if (split_admin_tabs && cat.lastIndexOf(".") != -1) { + var splitName = cat.split("."); + if (splitName[0] === "Admin") + cat = splitName[1]; + } verbs.reverse(); // sort verbs backwards before we draw for (var i = 0; i < verbs.length; ++i) { var part = verbs[i]; var name = part[0]; + if (split_admin_tabs && name.lastIndexOf(".") != -1) { + var splitName = name.split("."); + if (splitName[0] === "Admin") + name = splitName[1]; + } var command = part[1]; if (command && name.lastIndexOf(cat, 0) != -1 && (name.length == cat.length || name.charAt(cat.length) == ".")) { @@ -1002,9 +1207,13 @@ function draw_verbs(cat){ } var a = document.createElement("a"); - a.href = "byond://winset?command=" + command.replace(/\s/g, "-"); - a[textContentKey] = command; + a.href = "#" + a.onclick = make_verb_onclick(command.replace(/\s/g, "-")); a.className = "grid-item"; + var t = document.createElement("span"); + t[textContentKey] = command; + t.className = "grid-item-text"; + a.appendChild(t); (subCat ? additions[subCat] : table).appendChild(a); } } @@ -1029,7 +1238,7 @@ function set_theme(which) { if (which == "light") { document.body.className = ""; set_style_sheet("browserOutput_white"); - } else if (which == "dark" || which == "default") { + } else if (which == "dark") { document.body.className = "dark"; set_style_sheet("browserOutput"); } @@ -1040,7 +1249,7 @@ function set_style_sheet(sheet) { var currentSheet = document.getElementById("goonStyle"); currentSheet.parentElement.removeChild(currentSheet); } - var head = document.getElementsByTagName('head')[0]; + var head = document.getElementsByTagName('head')[0]; var sheetElement = document.createElement("link"); sheetElement.id = "goonStyle"; sheetElement.rel = "stylesheet"; @@ -1050,9 +1259,14 @@ function set_style_sheet(sheet) { head.appendChild(sheetElement); } -document[addEventListenerKey]("click", function(e) { - window.location.href = "byond://winset?map.focus=true"; -}); +function restoreFocus() { + run_after_focus(function() { + window.location.href = "byond://winset?map.focus=true"; + }); +} + +document[addEventListenerKey]("mouseup", restoreFocus); +document[addEventListenerKey]("keyup", restoreFocus); if(!current_tab) { addPermanentTab("Status"); @@ -1061,7 +1275,7 @@ if(!current_tab) { window.onload = function() { NotifyByondOnload(); - }; +}; function NotifyByondOnload() { window.location.href = "byond://winset?command=Panel-Ready"; diff --git a/icons/mob/actions/actions_snake.dmi b/icons/mob/actions/actions_snake.dmi new file mode 100644 index 0000000000..6856171b0d Binary files /dev/null and b/icons/mob/actions/actions_snake.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index b0cbc3b623..2413b52d71 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 7f1717b8ca..04d9b20a75 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/wings.dmi b/icons/mob/wings.dmi index 92de5c150c..49d9e4d4a8 100644 Binary files a/icons/mob/wings.dmi and b/icons/mob/wings.dmi differ diff --git a/icons/mob/wings_functional.dmi b/icons/mob/wings_functional.dmi new file mode 100644 index 0000000000..5d1a82a245 Binary files /dev/null and b/icons/mob/wings_functional.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index ebc7140dae..f5bc9e7046 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 3a5dfb97a9..c16b416cd8 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 8992f4a4a1..f968d15860 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/interface/skin.dmf b/interface/skin.dmf index ccfcd76571..82a35160e6 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -2,21 +2,21 @@ macro "default" menu "menu" - elem + elem name = "&File" command = "" saved-params = "is-checked" - elem + elem name = "&Quick screenshot\tF2" command = ".screenshot auto" category = "&File" saved-params = "is-checked" - elem + elem name = "&Save screenshot as...\tShift+F2" command = ".screenshot" category = "&File" saved-params = "is-checked" - elem + elem name = "" command = "" category = "&File" @@ -26,21 +26,21 @@ menu "menu" command = ".reconnect" category = "&File" saved-params = "is-checked" - elem + elem name = "&Quit\tAlt-F4" command = ".quit" category = "&File" saved-params = "is-checked" - elem + elem name = "&Help" command = "" saved-params = "is-checked" - elem + elem name = "&Admin Help\tF1" command = "adminhelp" category = "&Help" saved-params = "is-checked" - elem + elem name = "&Hotkeys" command = "hotkeys-help" category = "&Help" @@ -56,6 +56,7 @@ window "mainwindow" anchor2 = none is-default = true saved-params = "pos;size;is-minimized;is-maximized" + statusbar = false icon = 'icons\\ss13_64.png' macro = "default" menu = "menu" @@ -95,6 +96,7 @@ window "mapwindow" anchor2 = none saved-params = "pos;size;is-minimized;is-maximized" is-pane = true + on-status = ".winset \"status_bar.text=[[*]]\" " elem "map" type = MAP pos = 0,0 @@ -107,6 +109,16 @@ window "mapwindow" is-default = true saved-params = "zoom;letterbox;zoom-mode" style = ".center { text-align: center; } .maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .command_headset { font-weight: bold;\tfont-size: 8px; } .small { font-size: 6px; } .big { font-size: 8px; } .reallybig { font-size: 8px; } .extremelybig { font-size: 8px; } .greentext { color: #00FF00; font-size: 7px; } .redtext { color: #FF0000; font-size: 7px; } .clown { color: #FF69Bf; font-size: 7px; font-weight: bold; } .his_grace { color: #15D512; } .hypnophrase { color: #0d0d0d; font-weight: bold; } .yell { font-weight: bold; } .italics { font-size: 6px; }" + elem "status_bar" + type = LABEL + pos = 0,1008 + size = 280x16 + anchor1 = 0,100 + text = "" + align = left + background-color = #222222 + text-color = #ffffff + border = line window "infowindow" elem "infowindow" diff --git a/modular_citadel/code/datums/components/souldeath.dm b/modular_citadel/code/datums/components/souldeath.dm index ab45210a46..01e6acb795 100644 --- a/modular_citadel/code/datums/components/souldeath.dm +++ b/modular_citadel/code/datums/components/souldeath.dm @@ -32,4 +32,4 @@ playsound(wearer, 'sound/misc/souldeath.ogg', 100, FALSE) /datum/component/souldeath/neck - equip_slot = SLOT_NECK + equip_slot = ITEM_SLOT_NECK diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index f2c7b398cf..fe53574470 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -2,289 +2,289 @@ /datum/gear/donator name = "IF YOU SEE THIS, PING A CODER RIGHT NOW!" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bikehorn/golden category = LOADOUT_CATEGORY_DONATOR ckeywhitelist = list("This entry should never appear with this variable set.") //If it does, then that means somebody fucked up the whitelist system pretty hard /datum/gear/donator/pet name = "Pet Beacon" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/choice_beacon/pet ckeywhitelist = list() donator_group_id = DONATOR_GROUP_TIER_1 // can be accessed by all donators /datum/gear/donator/carpet name = "Carpet Beacon" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/choice_beacon/box/carpet ckeywhitelist = list() donator_group_id = DONATOR_GROUP_TIER_1 /datum/gear/donator/chameleon_bedsheet name = "Chameleon Bedsheet" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/bedsheet/chameleon ckeywhitelist = list() donator_group_id = DONATOR_GROUP_TIER_1 /datum/gear/donator/donortestingbikehorn name = "Donor item testing bikehorn" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bikehorn geargroupID = list("DONORTEST") //This is a list mainly for the sake of testing, but geargroupID works just fine with ordinary strings /datum/gear/donator/kevhorn name = "Airhorn" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bikehorn/airhorn ckeywhitelist = list("kevinz000") /datum/gear/donator/kiaracloak name = "Kiara's cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/inferno ckeywhitelist = list("inferno707") /datum/gear/donator/kiaracollar name = "Kiara's collar" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/inferno ckeywhitelist = list("inferno707") /datum/gear/donator/kiaramedal name = "Insignia of Steele" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/accessory/medal/steele ckeywhitelist = list("inferno707") /datum/gear/donator/hheart name = "The Hollow Heart" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/hheart ckeywhitelist = list("inferno707") /datum/gear/donator/engravedzippo name = "Engraved zippo" - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS path = /obj/item/lighter/gold ckeywhitelist = list("dirtyoldharry") /datum/gear/donator/geisha name = "Geisha suit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/geisha ckeywhitelist = list("atiefling") /datum/gear/donator/specialscarf name = "Special scarf" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/scarf/zomb ckeywhitelist = list("zombierobin") /datum/gear/donator/redmadcoat name = "The Mad's labcoat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/toggle/labcoat/mad/red ckeywhitelist = list("zombierobin") /datum/gear/donator/santahat name = "Santa hat" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/santa/fluff ckeywhitelist = list("illotafv") /datum/gear/donator/reindeerhat name = "Reindeer hat" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/hardhat/reindeer/fluff ckeywhitelist = list("illotafv") /datum/gear/donator/treeplushie name = "Christmas tree plushie" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/tree ckeywhitelist = list("illotafv") /datum/gear/donator/santaoutfit name = "Santa costume" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/space/santa/fluff ckeywhitelist = list("illotafv") /datum/gear/donator/treecloak name = "Christmas tree cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/festive ckeywhitelist = list("illotafv") /datum/gear/donator/carrotplush name = "Carrot plushie" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/carrot ckeywhitelist = list("improvedname") /datum/gear/donator/carrotcloak name = "Carrot cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/carrot ckeywhitelist = list("improvedname") /datum/gear/donator/albortorosamask name = "Alborto Rosa mask" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/luchador/zigfie ckeywhitelist = list("zigfie") /datum/gear/donator/mankini name = "Mankini" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/misc/stripper/mankini ckeywhitelist = list("zigfie") /datum/gear/donator/pinkshoes name = "Pink shoes" - slot = SLOT_SHOES + slot = ITEM_SLOT_FEET path = /obj/item/clothing/shoes/sneakers/pink ckeywhitelist = list("zigfie") /datum/gear/donator/reecesgreatcoat name = "Reece's Great Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/trenchcoat/green ckeywhitelist = list("geemiesif") /datum/gear/donator/russianflask name = "Russian flask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/reagent_containers/food/drinks/flask/russian cost = 2 ckeywhitelist = list("slomka") /datum/gear/donator/stalkermask name = "S.T.A.L.K.E.R. mask" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/gas/stalker ckeywhitelist = list("slomka") /datum/gear/donator/stripedcollar name = "Striped collar" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/stripe ckeywhitelist = list("jademanique") /datum/gear/donator/performersoutfit name = "Bluish performer's outfit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/singer/yellow/custom ckeywhitelist = list("killer402402") /datum/gear/donator/vermillion name = "Vermillion clothing" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/suit/vermillion ckeywhitelist = list("fractious") /datum/gear/donator/AM4B name = "Foam Force AM4-B" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/gun/ballistic/automatic/AM4B ckeywhitelist = list("zeronetalpha") /datum/gear/donator/carrotsatchel name = "Carrot Satchel" - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS path = /obj/item/storage/backpack/satchel/carrot ckeywhitelist = list("improvedname") /datum/gear/donator/naomisweater name = "worn black sweater" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/sweater/black/naomi ckeywhitelist = list("technicalmagi") /datum/gear/donator/naomicollar name = "worn pet collar" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/naomi ckeywhitelist = list("technicalmagi") /datum/gear/donator/gladiator name = "Gladiator Armor" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/under/costume/gladiator ckeywhitelist = list("aroche") /datum/gear/donator/bloodredtie name = "Blood Red Tie" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/tie/bloodred ckeywhitelist = list("kyutness") /datum/gear/donator/puffydress name = "Puffy Dress" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/puffydress ckeywhitelist = list("stallingratt") /datum/gear/donator/labredblack name = "Black and Red Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/toggle/labcoat/labredblack ckeywhitelist = list("blakeryan", "durandalphor") /datum/gear/donator/torisword name = "Rainbow Zweihander" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/dualsaber/hypereutactic/toy/rainbow ckeywhitelist = list("annoymous35") /datum/gear/donator/darksabre name = "Dark Sabre" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/darksabre ckeywhitelist = list("inferno707") /datum/gear/donator/darksabresheath name = "Dark Sabre Sheath" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/storage/belt/sabre/darksabre ckeywhitelist = list("inferno707") /datum/gear/donator/toriball name = "Rainbow Tennis Ball" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/fluff/tennis_poly/tri/squeak/rainbow ckeywhitelist = list("annoymous35") /datum/gear/donator/izzyball name = "Katlin's Ball" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/fluff/tennis_poly/tri/squeak/izzy ckeywhitelist = list("izzyinbox") /datum/gear/donator/cloak name = "Green Cloak" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/cloak/green ckeywhitelist = list("killer402402") /datum/gear/donator/steelflask name = "Steel Flask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/reagent_containers/food/drinks/flask/steel cost = 2 ckeywhitelist = list("nik707") /datum/gear/donator/paperhat name = "Paper Hat" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/paperhat ckeywhitelist = list("kered2") /datum/gear/donator/cloakce name = "Polychromic CE Cloak" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/neck/cloak/polychromic/polyce ckeywhitelist = list("worksbythesea", "blakeryan") loadout_flags = LOADOUT_CAN_COLOR_POLYCHROMIC @@ -292,290 +292,290 @@ /datum/gear/donator/ssk name = "Stun Sword Kit" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/ssword_kit ckeywhitelist = list("phillip458") /datum/gear/donator/techcoat name = "Techomancers Labcoat" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/suit/toggle/labcoat/mad/techcoat ckeywhitelist = list("wilchen") /datum/gear/donator/leechjar name = "Jar of Leeches" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/custom/leechjar ckeywhitelist = list("sgtryder") /datum/gear/donator/darkarmor name = "Dark Armor" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/suit/armor/vest/darkcarapace ckeywhitelist = list("inferno707") /datum/gear/donator/devilwings name = "Strange Wings" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/devilwings ckeywhitelist = list("kitsun") /datum/gear/donator/flagcape name = "US Flag Cape" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/neck/flagcape ckeywhitelist = list("darnchacha") /datum/gear/donator/luckyjack name = "Lucky Jackboots" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/shoes/lucky ckeywhitelist = list("donaldtrumpthecommunist") /datum/gear/donator/raiqbawks name = "Miami Boombox" - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS cost = 2 path = /obj/item/boombox/raiq ckeywhitelist = list("chefferz") /datum/gear/donator/m41 name = "Toy M41" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/gun/m41 ckeywhitelist = list("thalverscholen") /datum/gear/donator/Divine_robes name = "Divine robes" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/lunasune ckeywhitelist = list("invader4352") /datum/gear/donator/gothcoat name = "Goth Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/gothcoat ckeywhitelist = list("norko") /datum/gear/donator/corgisuit name = "Corgi Suit" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/hooded/ian_costume ckeywhitelist = list("cathodetherobot") /datum/gear/donator/sharkcloth name = "Leon's Skimpy Outfit" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/under/custom/leoskimpy ckeywhitelist = list("spectrosis") /datum/gear/donator/mimemask name = "Mime Mask" - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK path = /obj/item/clothing/mask/gas/mime ckeywhitelist = list("pireamaineach") /datum/gear/donator/mimeoveralls name = "Mime's Overalls" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/under/custom/mimeoveralls ckeywhitelist = list("pireamaineach") /datum/gear/donator/soulneck name = "Soul Necklace" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/undertale ckeywhitelist = list("twilightic") /datum/gear/donator/frenchberet name = "French Beret" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/frenchberet ckeywhitelist = list("notazoltan") /datum/gear/donator/zuliecloak name = "Project: Zul-E" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/hooded/cloak/zuliecloak ckeywhitelist = list("asky") /datum/gear/donator/blackredgold name = "Black, Red, and Gold Coat" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/blackredgold ckeywhitelist = list("ttbnc") /datum/gear/donator/fritzplush name = "Fritz Plushie" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/mammal/dog/fritz ckeywhitelist = list("analwerewolf") /datum/gear/donator/kimono name = "Kimono" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/kimono ckeywhitelist = list("sfox63") /datum/gear/donator/commjacket name = "Dusty Commisar's Cloak" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/commjacket ckeywhitelist = list("sadisticbatter") /datum/gear/donator/mw2_russian_para name = "Russian Paratrooper Jumper" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/mw2_russian_para ckeywhitelist = list("investigator77") /datum/gear/donator/longblackgloves name = "Luna's Gauntlets" - slot = SLOT_GLOVES + slot = ITEM_SLOT_GLOVES path = /obj/item/clothing/gloves/longblackgloves ckeywhitelist = list("bigmanclancy") /datum/gear/donator/trendy_fit name = "Trendy Fit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/trendy_fit ckeywhitelist = list("midgetdragon") /datum/gear/donator/singery name = "Yellow Performer Outfit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/singer/yellow ckeywhitelist = list("maxlynchy") /datum/gear/donator/csheet name = "NT Bedsheet" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/bedsheet/captain ckeywhitelist = list("tikibomb") /datum/gear/donator/borgplush name = "Robot Plush" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/toy/plush/borgplushie ckeywhitelist = list("nicholaiavenicci") /datum/gear/donator/donorberet name = "Atmos Beret" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/blueberet ckeywhitelist = list("foxystalin") /datum/gear/donator/donorgoggles name = "Flight Goggles" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/flight ckeywhitelist = list("maxlynchy") /datum/gear/donator/onionneck name = "Onion Necklace" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/necklace/onion ckeywhitelist = list("cdrcross") /datum/gear/donator/mikubikini name = "starlight singer bikini" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/mikubikini ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikujacket name = "starlight singer jacket" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/mikujacket ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikuhair name = "starlight singer hair" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/head/mikuhair ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikugloves name = "starlight singer gloves" - slot = SLOT_GLOVES + slot = ITEM_SLOT_GLOVES path = /obj/item/clothing/gloves/mikugloves ckeywhitelist = list("grandvegeta") /datum/gear/donator/mikuleggings name = "starlight singer leggings" - slot = SLOT_SHOES + slot = ITEM_SLOT_FEET path = /obj/item/clothing/shoes/sneakers/mikuleggings ckeywhitelist = list("grandvegeta") /datum/gear/donator/cosmos name = "cosmic space bedsheet" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/bedsheet/cosmos ckeywhitelist = list("grunnyyy") /datum/gear/donator/customskirt name = "custom atmos skirt" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/under/custom/customskirt ckeywhitelist = list("thakyz") /datum/gear/donator/hisakaki name = "halo" - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD path = /obj/item/clothing/head/halo ckeywhitelist = list("hisakaki") /datum/gear/donator/vest name = "vest and shirt" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/custom/vest ckeywhitelist = list("maylowfox") /datum/gear/donator/exo name = "exo frame" - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/custom/exo ckeywhitelist = list("jesterz7") /datum/gear/donator/choker name = "NT Choker" - slot = SLOT_NECK + slot = ITEM_SLOT_NECK path = /obj/item/clothing/neck/petcollar/donorchoker ckeywhitelist = list("trigillass") /datum/gear/donator/strangemask name = "Strange Metal Mask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/mask/breath/mmask ckeywhitelist = list("sneka") /datum/gear/donator/smaiden name = "shrine maiden outfit" - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/smaiden ckeywhitelist = list("ultimarifox") /datum/gear/donator/mgasmask name = "Military Gas Mask" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/clothing/mask/gas/military ckeywhitelist = list("unclebourbon") /datum/gear/donator/clownmask name = "Clown Mask" - path = SLOT_WEAR_MASK + path = ITEM_SLOT_MASK path = /obj/item/clothing/mask/gas/clown_hat ckeywhitelist = list("djkouta") /datum/gear/donator/spacehoodie name = "Space Hoodie" - path = SLOT_WEAR_SUIT + path = ITEM_SLOT_OCLOTHING path = /obj/item/clothing/suit/spacehoodie ckeywhitelist = list("bidlink2") /datum/gear/donator/pokerchips name = "pokerchip set" - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK path = /obj/item/storage/box/pockerchips ckeywhitelist = list("greed2323") diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm index 466ee50474..3824993009 100644 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -1,7 +1,7 @@ /datum/gear/backpack category = LOADOUT_CATEGORY_BACKPACK subcategory = LOADOUT_SUBCATEGORY_BACKPACK_GENERAL - slot = SLOT_IN_BACKPACK + slot = ITEM_SLOT_BACKPACK /datum/gear/backpack/plushbox name = "Plushie Choice Box" diff --git a/modular_citadel/code/modules/client/loadout/glasses.dm b/modular_citadel/code/modules/client/loadout/glasses.dm index f3b07657f4..fe44abc3de 100644 --- a/modular_citadel/code/modules/client/loadout/glasses.dm +++ b/modular_citadel/code/modules/client/loadout/glasses.dm @@ -1,6 +1,6 @@ /datum/gear/glasses category = LOADOUT_CATEGORY_GLASSES - slot = SLOT_GLASSES + slot = ITEM_SLOT_EYES /datum/gear/glasses/blindfold name = "Blindfold" diff --git a/modular_citadel/code/modules/client/loadout/gloves.dm b/modular_citadel/code/modules/client/loadout/gloves.dm index 09694ddec7..2a80d43bb1 100644 --- a/modular_citadel/code/modules/client/loadout/gloves.dm +++ b/modular_citadel/code/modules/client/loadout/gloves.dm @@ -1,6 +1,6 @@ /datum/gear/gloves category = LOADOUT_CATEGORY_GLOVES - slot = SLOT_GLOVES + slot = ITEM_SLOT_GLOVES /datum/gear/gloves/fingerless name = "Fingerless Gloves" @@ -9,7 +9,7 @@ /datum/gear/gloves/evening name = "Evening gloves" path = /obj/item/clothing/gloves/evening - + /datum/gear/gloves/midnight name = "Midnight gloves" path = /obj/item/clothing/gloves/evening/black diff --git a/modular_citadel/code/modules/client/loadout/hands.dm b/modular_citadel/code/modules/client/loadout/hands.dm index eb496ed78c..5dbe8b33dd 100644 --- a/modular_citadel/code/modules/client/loadout/hands.dm +++ b/modular_citadel/code/modules/client/loadout/hands.dm @@ -1,6 +1,6 @@ /datum/gear/hands category = LOADOUT_CATEGORY_HANDS - slot = SLOT_HANDS + slot = ITEM_SLOT_HANDS /datum/gear/hands/cane name = "Cane" diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm index 6d6c803ef1..f2a7ead5be 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -1,7 +1,7 @@ /datum/gear/head category = LOADOUT_CATEGORY_HEAD subcategory = LOADOUT_SUBCATEGORY_HEAD_GENERAL - slot = SLOT_HEAD + slot = ITEM_SLOT_HEAD /datum/gear/head/baseball name = "Ballcap" @@ -156,12 +156,12 @@ /*Commenting out Until next Christmas or made automatic /datum/gear/santahatr name = "Red Santa Hat" - category = SLOT_HEAD + category = ITEM_SLOT_HEAD path = /obj/item/clothing/head/christmashat /datum/gear/santahatg name = "Green Santa Hat" - category = SLOT_HEAD + category = ITEM_SLOT_HEAD path = /obj/item/clothing/head/christmashatg */ diff --git a/modular_citadel/code/modules/client/loadout/mask.dm b/modular_citadel/code/modules/client/loadout/mask.dm index 576b29cddc..16b47e60e7 100644 --- a/modular_citadel/code/modules/client/loadout/mask.dm +++ b/modular_citadel/code/modules/client/loadout/mask.dm @@ -1,6 +1,6 @@ /datum/gear/mask category = LOADOUT_CATEGORY_MASK - slot = SLOT_WEAR_MASK + slot = ITEM_SLOT_MASK /datum/gear/mask/balaclava name = "Balaclava" @@ -30,4 +30,8 @@ name = "Paper mask" path = /obj/item/clothing/mask/paper cost = 2 - + +/datum/gear/mask/polychromic_clown + name = "polychromic clown wig and mask" + path = /obj/item/clothing/mask/gas/clown_hat_polychromic + restricted_roles = list("Clown") diff --git a/modular_citadel/code/modules/client/loadout/neck.dm b/modular_citadel/code/modules/client/loadout/neck.dm index 128285628a..b07ddf98db 100644 --- a/modular_citadel/code/modules/client/loadout/neck.dm +++ b/modular_citadel/code/modules/client/loadout/neck.dm @@ -1,7 +1,7 @@ /datum/gear/neck category = LOADOUT_CATEGORY_NECK subcategory = LOADOUT_SUBCATEGORY_NECK_GENERAL - slot = SLOT_NECK + slot = ITEM_SLOT_NECK /datum/gear/neck/bluetie name = "Blue tie" diff --git a/modular_citadel/code/modules/client/loadout/shoes.dm b/modular_citadel/code/modules/client/loadout/shoes.dm index e2b3916ae0..394c957f36 100644 --- a/modular_citadel/code/modules/client/loadout/shoes.dm +++ b/modular_citadel/code/modules/client/loadout/shoes.dm @@ -1,6 +1,6 @@ /datum/gear/shoes category = LOADOUT_CATEGORY_SHOES - slot = SLOT_SHOES + slot = ITEM_SLOT_FEET /datum/gear/shoes/laceup name = "Laceup shoes" diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 066bcf14c7..1d4a29ef3e 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -1,7 +1,7 @@ /datum/gear/suit category = LOADOUT_CATEGORY_SUIT subcategory = LOADOUT_SUBCATEGORY_SUIT_GENERAL - slot = SLOT_WEAR_SUIT + slot = ITEM_SLOT_OCLOTHING /datum/gear/suit/poncho name = "Poncho" diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 86fcc867a3..2b2f3b53e4 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -1,7 +1,7 @@ /datum/gear/uniform category = LOADOUT_CATEGORY_UNIFORM subcategory = LOADOUT_SUBCATEGORY_UNIFORM_GENERAL - slot = SLOT_W_UNIFORM + slot = ITEM_SLOT_ICLOTHING /datum/gear/uniform/suit name = "Black suit" @@ -636,27 +636,27 @@ /*Commenting out Until next Christmas or made automatic /datum/gear/uniform/christmasmaler name = "Red Masculine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas /datum/gear/uniform/christmasmaleg name = "Green Masculine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas/green /datum/gear/uniform/christmasfemaler name = "Red Feminine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas/croptop /datum/gear/uniform/christmasfemaleg name = "Green Feminine Christmas Suit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/costume/christmas/croptop/green /datum/gear/uniform/pinkstripper name = "Pink stripper outfit" - category = SLOT_W_UNIFORM + category = ITEM_SLOT_ICLOTHING path = /obj/item/clothing/under/misc/stripper cost = 3 */ @@ -739,3 +739,9 @@ path = /obj/item/clothing/under/rank/cargo/tech/long subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS restricted_roles = list("Cargo Technician") + +/datum/gear/uniform/clown_polychromic + name = "polychromic clown suit" + path = /obj/item/clothing/under/rank/civilian/polychromic_clown + subcategory = LOADOUT_SUBCATEGORY_UNIFORM_JOBS + restricted_roles = list("Clown") diff --git a/modular_citadel/code/modules/client/loadout/unlockable.dm b/modular_citadel/code/modules/client/loadout/unlockable.dm index 67e0c06d8c..9db05a66e9 100644 --- a/modular_citadel/code/modules/client/loadout/unlockable.dm +++ b/modular_citadel/code/modules/client/loadout/unlockable.dm @@ -1,6 +1,6 @@ /datum/gear/unlockable category = LOADOUT_CATEGORY_UNLOCKABLE - slot = SLOT_NECK + slot = ITEM_SLOT_NECK var/progress_required //what does our progress need to be to unlock it var/progress_key //what is the key used to retrieve existing progress for this unlockable diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index cb1b9728af..b8ee221e73 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -77,7 +77,7 @@ item_state = "gold_zippo" w_class = WEIGHT_CLASS_TINY flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT heat = 1500 resistance_flags = FIRE_PROOF light_color = LIGHT_COLOR_FIRE @@ -404,7 +404,7 @@ mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak body_parts_covered = CHEST|GROIN|ARMS - slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? + slot_flags = ITEM_SLOT_OCLOTHING | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? mutantrace_variation = NONE /obj/item/clothing/head/hooded/cloakhood/zuliecloak diff --git a/modular_citadel/code/modules/custom_loadout/load_to_mob.dm b/modular_citadel/code/modules/custom_loadout/load_to_mob.dm index 79f17afc74..1d28c7320c 100644 --- a/modular_citadel/code/modules/custom_loadout/load_to_mob.dm +++ b/modular_citadel/code/modules/custom_loadout/load_to_mob.dm @@ -52,7 +52,7 @@ loaded_atom.forceMove(T) continue var/obj/item/loaded = loaded_atom - var/obj/item/storage/S = H.get_item_by_slot(SLOT_BACK) + var/obj/item/storage/S = H.get_item_by_slot(ITEM_SLOT_BACK) if(istype(S)) SEND_SIGNAL(S, COMSIG_TRY_STORAGE_INSERT,loaded, TRUE, H) //Force it into their backpack continue diff --git a/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm b/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm index dbf5ad0648..85bbf109bf 100644 --- a/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm +++ b/modular_citadel/code/modules/eventmaps/Spookystation/JTGSZwork.dm @@ -1024,7 +1024,7 @@ GLOBAL_LIST_EMPTY(rain_sounds) lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' icon_state = "umbrella_closed" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 5 throwforce = 5 w_class = WEIGHT_CLASS_SMALL diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 537eb76a66..bc598e81e3 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -48,7 +48,7 @@ var/obj/item/W = M.head M.dropItemToGround(W, TRUE) var/hat = new /obj/item/clothing/head/hattip() - M.equip_to_slot(hat, SLOT_HEAD, 1, 1) + M.equip_to_slot(hat, ITEM_SLOT_HEAD, 1, 1) /datum/reagent/fermi/hatmium/on_mob_life(mob/living/carbon/human/M) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index bb255a4194..6695194008 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -98,8 +98,8 @@ description = "Synthetic tissue used for grafting onto damaged organs during surgery, or for treating limb damage. Has a very tight growth window between 305-320, any higher and the temperature will cause the cells to die. Additionally, growth time is considerably long, so chemists are encouraged to leave beakers with said reaction ongoing, while they tend to their other duties." pH = 7.6 metabolization_rate = 0.05 //Give them time to graft - data = list("grown_volume" = 0, "injected_vol" = 0) - var/borrowed_health + data = list("grown_volume" = 0, "injected_vol" = 0, "borrowed_health" = 0) + var/borrowed_health = 0 color = "#FFDADA" value = REAGENT_VALUE_COMMON @@ -107,31 +107,51 @@ if(iscarbon(M)) var/mob/living/carbon/C = M var/healing_factor = (((data["grown_volume"] / 100) + 1)*reac_volume) - if(method in list(PATCH, TOUCH)) - if (M.stat == DEAD) - M.visible_message("The synthetic tissue rapidly grafts into [M]'s wounds, attemping to repair the damage as quickly as possible.") - borrowed_health += healing_factor - M.adjustBruteLoss(-healing_factor*2) - M.adjustFireLoss(-healing_factor*2) - M.adjustToxLoss(-healing_factor) - M.adjustCloneLoss(-healing_factor) - M.updatehealth() + if(method == PATCH) //Needs to actually be applied via patch / hypo / medspray and not just beakersplashed. + if (C.stat == DEAD) + C.visible_message("The synthetic tissue rapidly grafts into [M]'s wounds, attempting to repair the damage as quickly as possible.") + var/preheal_brute = C.getBruteLoss() + var/preheal_burn = C.getFireLoss() + var/preheal_tox = C.getToxLoss() + var/preheal_oxy = C.getOxyLoss() + C.adjustBruteLoss(-healing_factor*2) + C.adjustFireLoss(-healing_factor*2) + C.adjustToxLoss(-healing_factor) + C.adjustCloneLoss(-healing_factor) + borrowed_health += (preheal_brute - C.getBruteLoss()) + (preheal_burn - C.getFireLoss()) + (preheal_tox - C.getToxLoss()) + ((preheal_oxy - C.getOxyLoss()) / 2) //Ironically this means that while slimes get damaged by the toxheal, it will reduce borrowed health and longterm effects. Funky! + C.updatehealth() if(data["grown_volume"] > 135 && ((C.health + C.oxyloss)>=80)) - if(M.revive()) - M.emote("gasp") + var/tplus = world.time - M.timeofdeath + if(C.can_revive(ignore_timelimit = TRUE, maximum_brute_dam = MAX_REVIVE_BRUTE_DAMAGE / 2, maximum_fire_dam = MAX_REVIVE_FIRE_DAMAGE / 2, ignore_heart = TRUE) && C.revive()) + C.grab_ghost() + C.emote("gasp") borrowed_health *= 2 if(borrowed_health < 100) borrowed_health = 100 - log_combat(M, M, "revived", src) + log_combat(C, C, "revived", src) + var/list/policies = CONFIG_GET(keyed_list/policy) + var/policy = policies[POLICYCONFIG_ON_DEFIB_LATE] //Always causes memory loss due to the nature of synthtissue + if(policy) + to_chat(C, policy) + C.log_message("revived using synthtissue, [tplus] deciseconds from time of death, considered late revival due to usage of synthtissue.", LOG_GAME) else + var/preheal_brute = C.getBruteLoss() + var/preheal_burn = C.getFireLoss() M.adjustBruteLoss(-healing_factor) M.adjustFireLoss(-healing_factor) - to_chat(M, "You feel your flesh merge with the synthetic tissue! It stings like hell!") + var/datum/reagent/synthtissue/active_tissue = M.reagents.has_reagent(/datum/reagent/synthtissue) + var/imperfect = FALSE //Merging with synthtissue that has borrowed health + if(active_tissue && active_tissue.borrowed_health) + borrowed_health += (preheal_brute - C.getBruteLoss()) + (preheal_burn - C.getFireLoss()) + imperfect = TRUE + to_chat(M, "You feel your flesh [imperfect ? "partially and painfully" : ""] merge with the synthetic tissue! It stings like hell[imperfect ? " and is making you feel terribly sick" : ""]!") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + data["borrowed_health"] += borrowed_health //Preserve health offset + borrowed_health = 0 //We are applying this to someone else, so this info will be transferred via data. if(method==INJECT) data["injected_vol"] = reac_volume var/obj/item/organ/heart/H = C.getorganslot(ORGAN_SLOT_HEART) - if(data["grown_volume"] > 50 && H.organ_flags & ORGAN_FAILING) + if(H && data["grown_volume"] > 50 && H.organ_flags & ORGAN_FAILING) H.applyOrganDamage(-20) ..() @@ -145,16 +165,19 @@ C.reagents.remove_reagent(type, 15) to_chat(C, "You feel something reform inside of you!") - data["injected_vol"] -= metabolization_rate + data["injected_vol"] = max(0, data["injected_vol"] - metabolization_rate * C.metabolism_efficiency) //No negatives. if(borrowed_health) - C.adjustToxLoss(1) - C.adjustCloneLoss(1) - borrowed_health -= 1 + var/ratio = (current_cycle > SYNTHTISSUE_DAMAGE_FLIP_CYCLES) ? 0 : (1 - (current_cycle / SYNTHTISSUE_DAMAGE_FLIP_CYCLES)) + var/payback = 2 * C.metabolism_efficiency //How much borrowed health we are paying back. Starts as cloneloss, slowly flips over to toxloss. + C.adjustToxLoss((1 - ratio) * payback * REAGENTS_EFFECT_MULTIPLIER, forced = TRUE, toxins_type = TOX_OMNI) + C.adjustCloneLoss(ratio * payback * REAGENTS_EFFECT_MULTIPLIER) + borrowed_health = max(borrowed_health - payback, 0) ..() /datum/reagent/synthtissue/on_merge(passed_data) if(!passed_data) return ..() + borrowed_health += max(0, passed_data["borrowed_health"]) if(passed_data["grown_volume"] > data["grown_volume"]) data["grown_volume"] = passed_data["grown_volume"] if(iscarbon(holder.my_atom)) @@ -166,11 +189,16 @@ /datum/reagent/synthtissue/on_new(passed_data) if(!passed_data) return ..() + borrowed_health = min(passed_data["borrowed_health"] + borrowed_health, SYNTHTISSUE_BORROW_CAP) if(passed_data["grown_volume"] > data["grown_volume"]) data["grown_volume"] = passed_data["grown_volume"] update_name() ..() +/datum/reagent/synthtissue/post_copy_data() + data["borrowed_health"] = 0 //We passed this along to something that needed it, set it back to 0 so we don't do it twice. + return ..() + /datum/reagent/synthtissue/proc/update_name() //They are but babes on creation and have to grow unto godhood switch(data["grown_volume"]) if(-INFINITY to 50) @@ -193,9 +221,9 @@ C.adjustCloneLoss(borrowed_health*1.25) C.adjustAllOrganLoss(borrowed_health*0.25) M.updatehealth() - if(borrowed_health && C.health < -20) - M.stat = DEAD + if(C.stat != DEAD && borrowed_health && C.health < -20) M.visible_message("The synthetic tissue degrades off [M]'s wounds as they collapse to the floor.") + M.death() //NEEDS ON_MOB_DEAD() /datum/reagent/fermi/zeolites diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index a78092988e..ce27433c07 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -548,6 +548,8 @@ FermiExplode = FALSE PurityMin = 0.2 + is_secret = TRUE + /datum/chemical_reaction/fermi/secretcatchem/New() //rand doesn't seem to work with n^-e OptimalTempMin += rand(-100, 100) diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm index ab4d49c56f..b6391ba82d 100644 --- a/modular_citadel/code/modules/reagents/objects/clothes.dm +++ b/modular_citadel/code/modules/reagents/objects/clothes.dm @@ -37,7 +37,7 @@ /obj/item/clothing/head/hattip/equipped(mob/M, slot) . = ..() - if (slot == SLOT_HEAD) + if (slot == ITEM_SLOT_HEAD) RegisterSignal(M, COMSIG_MOB_SAY, .proc/handle_speech) else UnregisterSignal(M, COMSIG_MOB_SAY) diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index cf332019af..cc4bc0446c 100644 Binary files a/modular_citadel/icons/mob/mam_taur.dmi and b/modular_citadel/icons/mob/mam_taur.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 4328158bfc..de8e9ccddc 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -171,7 +171,6 @@ #include "code\__HELPERS\_string_lists.dm" #include "code\__HELPERS\angles.dm" #include "code\__HELPERS\areas.dm" -#include "code\__HELPERS\AStar.dm" #include "code\__HELPERS\chat.dm" #include "code\__HELPERS\cmp.dm" #include "code\__HELPERS\config.dm" @@ -193,6 +192,7 @@ #include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\mouse_control.dm" #include "code\__HELPERS\names.dm" +#include "code\__HELPERS\path.dm" #include "code\__HELPERS\priority_announce.dm" #include "code\__HELPERS\pronouns.dm" #include "code\__HELPERS\qdel.dm" @@ -288,6 +288,7 @@ #include "code\_onclick\hud\revenanthud.dm" #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" +#include "code\_onclick\hud\screentip.dm" #include "code\_onclick\hud\simple_animal.dm" #include "code\_onclick\hud\swarmer.dm" #include "code\_onclick\hud\screen_objects\clickdelay.dm" @@ -1472,6 +1473,7 @@ #include "code\modules\admin\outfits.dm" #include "code\modules\admin\permissionedit.dm" #include "code\modules\admin\player_panel.dm" +#include "code\modules\admin\playtimes.dm" #include "code\modules\admin\sound_emitter.dm" #include "code\modules\admin\sql_message_system.dm" #include "code\modules\admin\stickyban.dm" @@ -2263,6 +2265,7 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" #include "code\modules\games\cas.dm" #include "code\modules\games\unum.dm" +#include "code\modules\holiday\dynamic.dm" #include "code\modules\holiday\easter.dm" #include "code\modules\holiday\holidays.dm" #include "code\modules\holiday\halloween\bartholomew.dm" @@ -2699,11 +2702,11 @@ #include "code\modules\mob\living\carbon\human\typing_indicator.dm" #include "code\modules\mob\living\carbon\human\update_icons.dm" #include "code\modules\mob\living\carbon\human\innate_abilities\blobform.dm" +#include "code\modules\mob\living\carbon\human\innate_abilities\coiling.dm" #include "code\modules\mob\living\carbon\human\innate_abilities\customization.dm" #include "code\modules\mob\living\carbon\human\innate_abilities\limb_regeneration.dm" #include "code\modules\mob\living\carbon\human\species_types\abductor.dm" #include "code\modules\mob\living\carbon\human\species_types\android.dm" -#include "code\modules\mob\living\carbon\human\species_types\angel.dm" #include "code\modules\mob\living\carbon\human\species_types\anthropomorph.dm" #include "code\modules\mob\living\carbon\human\species_types\arachnid.dm" #include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" diff --git a/tgui/packages/tgui/interfaces/Limbgrower.js b/tgui/packages/tgui/interfaces/Limbgrower.js index b91c7e4b45..e7e04d4f51 100644 --- a/tgui/packages/tgui/interfaces/Limbgrower.js +++ b/tgui/packages/tgui/interfaces/Limbgrower.js @@ -1,5 +1,5 @@ import { useBackend, useSharedState } from '../backend'; -import { Box, Button, Dimmer, Icon, LabeledList, Section, Tabs } from '../components'; +import { Box, Button, Dimmer, Icon, LabeledList, Section, Tabs, ProgressBar } from '../components'; import { Window } from '../layouts'; export const Limbgrower = (props, context) => { @@ -22,7 +22,7 @@ export const Limbgrower = (props, context) => { + height={760}> {!!busy && ( @@ -42,12 +42,19 @@ export const Limbgrower = (props, context) => {
    Containing data for {disk['name']},
    Attempting to create genitalia will use the disk's data. + Any Synthetic Frameworks created will + overwrite the race category selected.
    ) : disk['disk'] ? "No data." : "No disk."}
    - {total_reagents} / {max_reagents} reagent capacity used. + {/* Total_reagents could be null or undefined, so let's be safe */ + `Total Reagents/Maximum Reagents: + ${total_reagents ? total_reagents : 0}/${max_reagents}` + } + {reagents.map(reagent => ( @@ -56,13 +63,15 @@ export const Limbgrower = (props, context) => { label={reagent.reagent_name} buttons={( act('empty_reagent', { - reagent_type: reagent.reagent_type, - })} /> + onClick={() => { + act('empty_reagent', { reagent_type: reagent.reagent_type }); + + }} /> )}> {reagent.reagent_amount}u diff --git a/tgui/packages/tgui/interfaces/PlayerPlaytimes.js b/tgui/packages/tgui/interfaces/PlayerPlaytimes.js new file mode 100644 index 0000000000..0996b0ba04 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PlayerPlaytimes.js @@ -0,0 +1,119 @@ +import { useBackend } from '../backend'; +import { Button, Icon, Section, Table, Tooltip } from '../components'; +import { Window } from '../layouts'; + +export const PlayerPlaytimes = (props, context) => { + const { act, data } = useBackend(context); + const { + clients, + } = data; + return ( + + +
    + + + +
    + +
    +
    + +
    + Ckey +
    +
    + +
    + Real Name +
    +
    + +
    + Actions +
    +
    +
    + {clients.map(client => ( + + +
    +
    +
    + +
    + {!!client.new_account + && ( + + + + )} {client.ckey} +
    +
    + +
    + {!client.ingame ? (At lobby) + : (!!client.observer + && ( + + + ))} {client.name} +
    +
    + +
    +
    +
    +
    +
    + ))} +
    +
    +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/common/AtmosControls.js b/tgui/packages/tgui/interfaces/common/AtmosControls.js index 76348a956f..fcca00188a 100644 --- a/tgui/packages/tgui/interfaces/common/AtmosControls.js +++ b/tgui/packages/tgui/interfaces/common/AtmosControls.js @@ -37,7 +37,7 @@ export const Vent = (props, context) => {