diff --git a/.archive/.github/CODEOWNERS b/.archive/.github/CODEOWNERS
index 74112cce847..52d7a1c6ec2 100644
--- a/.archive/.github/CODEOWNERS
+++ b/.archive/.github/CODEOWNERS
@@ -28,7 +28,11 @@
/code/modules/food_and_drinks/drinks/drinks/breakawayflask.dm @FalloutFalcon
/code/modules/food_and_drinks/food/ration.dm @FalloutFalcon
/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @FalloutFalcon
-/code/modules/projectiles/ @FalloutFalcon
+/code/modules/projectiles/gun.dm @FalloutFalcon
+/code/modules/projectiles/projectile.dm @FalloutFalcon
+/code/modules/projectiles/guns/ballistic.dm @FalloutFalcon
+/code/modules/projectiles/guns/energy.dm @FalloutFalcon
+/code/modules/projectiles/guns/powered.dm @FalloutFalcon
/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @FalloutFalcon
/code/modules/unit_tests/icons/ @FalloutFalcon
/code/modules/missions/ @FalloutFalcon
diff --git a/.archive/.github/CONTRIBUTING.md b/.archive/.github/CONTRIBUTING.md
index 4aca95a6fad..6eec8dbbca6 100644
--- a/.archive/.github/CONTRIBUTING.md
+++ b/.archive/.github/CONTRIBUTING.md
@@ -29,29 +29,65 @@ You can of course, as always, ask for help on the discord channels, or the forum
## Meet the Team
-### Development Head
+### Project Lead
-The Head Developer is responsible for controlling, adding, and removing maintainers from the project. In addition to filling the role of a normal maintainer, they have sole authority on who becomes a maintainer, as well as who remains a maintainer and who does not. The Development Head also has the final say on what gameplay changes get into and out of the game. He or she has full veto power on any feature or balance additions, changes, or removals, and attempts to establish a universally accepted direction for the game.
+The Project Lead is responsible for controlling, adding, and removing maintainers from the project. In addition to filling the role of a normal maintainer, they have sole authority on who becomes a maintainer, as well as who remains a maintainer and who does not. The Project Lead also has the final say on what gameplay changes are added to and removed from the game. He or she has full veto power on any feature or balance additions, changes, or removals, and attempts to establish a universally accepted direction for the game.
-### Maintainers
+### Head Coder/Codetainers
-Maintainers are quality control. If a proposed pull request doesn't meet the following specifications, they can request you to change it, or simply just close the pull request. Maintainers can close a pull request for the following reasons: The pull request doesn't follow the guidelines, excessively undocumented changes, failure to comply with coding standards. Note that maintainers should generally help bring a pull request up to standard instead of outright closing the PR; however if the pull request author does not comply with the given guidelines or refuses to adhere to the required coding standards the pull request will be closed. **Maintainers must have a valid reason to close a pull request and state what the reason is when they close the pull request.**
+The Head Coder controls the quality of code, maintainability of the project, CI, and unit tests. They have a say over features, but primarily based on the merit of the code, e.g., long-term maintenance for complex features.
-Maintainers can revert your changes if they feel they are not worth maintaining or if they did not live up to the quality specifications.
+### Lore Head/Loretainers
+
+Much of the lore team's work is done outside github itself, much of it in doucments or wiki pages; however, lore-maints can still be manually requested on a pr if it has a significant lore implication.
-### Head Spriter
+### Head Spriter/Spritetainers
The Head Spriter controls sprites and aesthetic that get into the game. While sprites for brand-new additions are generally accepted regardless of quality, modified current art assets fall to the Head Spriter, who can decide whether or not a sprite tweak is both merited and a suitable replacement.
They also control the general "perspective" of the game - how sprites should generally look, especially the angle from which they're viewed. An example of this is the 3/4 perspective, which is a bird's eye view from above the object being viewed.
-### Head Mapper
+### Head Mapper/Maptainers
+
+The Head Mapper controls ships, ruins, and other maps, including their balance and cost. Final decision on whether or not a map is added is at their discretion and cannot be vetoed by anyone other than the Project Lead.
+
+### Maintainers
+
+Maintainers are quality control. If a proposed pull request doesn't meet the following specifications, they can request you to change it, or simply just close the pull request. Singular Maintainers can close a pull request for the following reasons: The pull request doesn't follow the guidelines, has excessively undocumented changes, or fails to comply with coding standards. Note that maintainers should generally help bring a pull request up to standard instead of outright closing the PR; however, if the pull request author does not comply with the given guidelines or refuses to adhere to the required coding standards, the pull request will be closed.
+
+Internal discussions can be held to close given PRs based on merits like general team desires and overall direction.
+
+**Maintainers must have a valid reason to close a pull request and state what the reason is when they close the pull request.**
-The Head Mapper controls ships and all variants of shuttles, including their balance and cost. Final decision on whether or not a shuttle is added is at their discretion and cannot be vetoed by anyone other than the Head Coder.
+Maintainers can revert your changes if they feel they are not worth maintaining or if they did not live up to the quality specifications.
+
+Unlike most other servers, we have a more formal seperation between code-tainers, map-tainers, sprite-tainers, and even lore-tainers (lore curators). They operate semi-independently, and prs that makes meaningful changes to parts of the game requires approval from each relevent team.
+Examples of changes that don't require approval
+- A few fluff sprites for a map.
+- Simple subtypes for a pr that adds clothing sprites.
+
+Game balance changes (map balance changes will still require maptainer approval), despite being a code change, can be reviewed by any maintainer or even admin.
### Maintainer Code of Conduct
-Maintainers are expected to maintain the codebase in its entirety. This means that maintainers are in charge of pull requests, issues, and the Git discussion board. Maintainers have say on what will and will not be merged. Maintainers should assign themselves to pull requests that they are claiming and reviewing and should respect when others assign themselves to a pull request and not interfere except in situations where they believe a pull request to be heavily detrimental to the codebase or its playerbase. **Maintainers are not server admins and should not use their rank on the server to perform admin related tasks except where asked to by a Senior Admin or higher.**
+Maintainers are expected to maintain the codebase in its entirety. This means that maintainers are in charge of pull requests, issues, and the Git discussion board. Maintainers have a say on what will and will not be merged. **Maintainers are not server admins and should not use their rank on the server to perform admin related tasks except where asked to by a Headmin or higher.**
+
+
+Maintainer Guidelines
+
+These are the few directives we have for project maintainers.
+
+- Do not merge PRs you create.
+- Do not merge PRs until 24 hours have passed since they were opened. Exceptions include:
+ - Emergency fixes or CI fixes.
+ - Try to get secondary maintainer approval before merging if you can.
+ - PRs with empty commits that are intended to generate a changelog.
+- Do not close PRs purely for breaking a template if the same information is contained without it.
+
+These are not steadfast rules, as maintainers are expected to use their best judgment when operating.
+
+
+
## Specifications
diff --git a/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm b/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm
index 370b7aa2190..37b2375384e 100644
--- a/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm
+++ b/_maps/RandomRuins/BeachRuins/beach_gunsmith.dmm
@@ -3677,10 +3677,7 @@
/turf/open/floor/concrete/tiles,
/area/ruin/beach/gunsmith)
"Mb" = (
-/obj/item/gun/energy/plasmacutter{
- pixel_x = -16;
- pixel_y = 11
- },
+/obj/item/plasmacutter,
/obj/effect/decal/cleanable/oil/slippery,
/mob/living/simple_animal/hostile/human/ramzi/civilian{
wander = 0
diff --git a/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm b/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm
index 51a40fbb31a..794f94d39a1 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_command_post.dmm
@@ -3586,13 +3586,8 @@
/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/icemoon/command_post/crew_quarters)
"Hg" = (
-/obj/structure/chair/office/dark{
- dir = 8
- },
-/mob/living/simple_animal/hostile/human/ramzi/ranged/space/stormtrooper/hydra/dmr{
- wander = 0
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/mob/living/simple_animal/hostile/human/ramzi/ranged/space/stormtrooper/hydra/dmr/sentry,
/turf/open/floor/concrete/slab_4,
/area/ruin/icemoon/command_post/armory)
"Ho" = (
@@ -5127,6 +5122,9 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
},
+/obj/structure/chair/office/dark{
+ dir = 8
+ },
/turf/open/floor/concrete/slab_4,
/area/ruin/icemoon/command_post/armory)
"Wt" = (
diff --git a/_maps/RandomRuins/IceRuins/icemoon_training_center.dmm b/_maps/RandomRuins/IceRuins/icemoon_training_center.dmm
index e89fef9cfec..15004401852 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_training_center.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_training_center.dmm
@@ -2150,6 +2150,7 @@
pixel_x = 0;
pixel_y = -5
},
+/obj/item/reagent_containers/food/drinks/mead,
/turf/open/floor/wood,
/area/ruin/icemoon/training_facility/office_2)
"kA" = (
@@ -4342,7 +4343,7 @@
/turf/open/floor/plating,
/area/ruin/icemoon/training_facility/classroom)
"vC" = (
-/obj/machinery/computer/apc_control{
+/obj/machinery/computer/monitor{
dir = 1
},
/obj/effect/spawner/random/trash/crushed_can{
@@ -5369,11 +5370,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/dark,
/area/ruin/icemoon/training_facility/classroom)
-"Ay" = (
-/obj/structure/table/greyscale,
-/obj/item/attachment/gun/flamethrower,
-/turf/open/floor/plating/asteroid/icerock/cracked,
-/area/ruin/icemoon/training_facility)
"AA" = (
/obj/effect/turf_decal/techfloor{
dir = 5
@@ -6371,6 +6367,10 @@
"Ff" = (
/turf/open/floor/plasteel/grimy,
/area/ruin/icemoon/training_facility/dorms)
+"Fi" = (
+/mob/living/simple_animal/hostile/human/ramzi/melee/sawbones,
+/turf/open/floor/plating/rust,
+/area/ruin/icemoon/training_facility/medbay)
"Fj" = (
/obj/effect/turf_decal/techfloor{
dir = 8
@@ -7673,7 +7673,6 @@
/area/ruin/icemoon/training_facility/dorms)
"Lz" = (
/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/human/ramzi/melee/sawbones,
/turf/open/floor/plasteel/mono/white,
/area/ruin/icemoon/training_facility/medbay)
"LA" = (
@@ -8516,6 +8515,11 @@
},
/turf/open/floor/plating/rust,
/area/ruin/icemoon/training_facility/classroom)
+"PO" = (
+/obj/structure/table/greyscale,
+/obj/item/attachment/gun/flamethrower,
+/turf/open/floor/plating/asteroid/icerock/cracked,
+/area/ruin/icemoon/training_facility)
"PP" = (
/obj/structure/table/reinforced,
/obj/effect/decal/cleanable/dirt,
@@ -9244,7 +9248,6 @@
pixel_x = 0;
pixel_y = 12
},
-/obj/item/reagent_containers/food/drinks/mead,
/turf/open/floor/wood,
/area/ruin/icemoon/training_facility/office_2)
"SW" = (
@@ -13943,7 +13946,7 @@ qr
tx
Cd
wr
-ZU
+Fi
ZU
rW
qP
@@ -14822,7 +14825,7 @@ kk
wN
Bv
kk
-Ay
+PO
xj
xj
tB
diff --git a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
index 9baa2c9081f..55633e43079 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_bombed_starport.dmm
@@ -3813,7 +3813,7 @@
req_access = list(150,10);
populate = 0
},
-/obj/item/gun/energy/plasmacutter,
+/obj/item/plasmacutter,
/obj/item/clothing/gloves/color/yellow,
/obj/item/storage/belt/utility/syndicate,
/obj/item/clothing/under/syndicate/gec,
diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
index cd235131ec2..a86034f8709 100644
--- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
+++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm
@@ -3607,7 +3607,7 @@
/turf/open/floor/plating/rust,
/area/ruin/jungle/interceptor/forehall)
"Fs" = (
-/obj/machinery/computer/apc_control{
+/obj/machinery/computer/monitor{
dir = 4
},
/turf/open/floor/plating/rust,
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm
index 6d315bdb48d..dbd2a278e77 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_buried_shrine.dmm
@@ -1829,10 +1829,7 @@
pixel_x = 8;
pixel_y = 21
},
-/obj/item/shield/riot/goliath{
- pixel_x = -12;
- pixel_y = 16
- },
+/obj/item/shield/buckler,
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
/area/ruin/unpowered/buried_shrine)
"Vt" = (
diff --git a/_maps/RandomRuins/MoonRuins/moon_moonbase.dmm b/_maps/RandomRuins/MoonRuins/moon_moonbase.dmm
index 8fec0ccbf39..7b44a882e64 100644
--- a/_maps/RandomRuins/MoonRuins/moon_moonbase.dmm
+++ b/_maps/RandomRuins/MoonRuins/moon_moonbase.dmm
@@ -351,7 +351,7 @@
/area/ruin/moon/moonbase/refinery)
"cM" = (
/obj/structure/closet/toolcloset/empty,
-/obj/item/gun/energy/plasmacutter,
+/obj/item/plasmacutter,
/obj/item/storage/toolbox/electrical,
/obj/item/storage/toolbox/mechanical,
/obj/item/clothing/glasses/welding,
@@ -897,9 +897,6 @@
pixel_x = -10;
pixel_y = 6
},
-/obj/effect/turf_decal/siding/thinplating{
- dir = 4
- },
/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
dir = 4
},
@@ -945,9 +942,6 @@
/obj/structure/railing/thin/corner{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
- },
/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
dir = 1
},
@@ -1398,7 +1392,6 @@
/area/ruin/moon/moonbase/cargo)
"kN" = (
/obj/structure/railing/thin/corner,
-/obj/effect/turf_decal/siding/thinplating,
/obj/effect/turf_decal/trimline/transparent/blue/filled/line,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
@@ -1406,7 +1399,6 @@
/turf/open/floor/plasteel/tech/grid,
/area/ruin/moon/moonbase/dorms)
"kU" = (
-/obj/effect/turf_decal/siding/thinplating/corner,
/obj/effect/turf_decal/trimline/transparent/blue/filled/corner,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -1810,9 +1802,6 @@
/turf/open/floor/plasteel/tech,
/area/ruin/moon/moonbase/refinery)
"oO" = (
-/obj/effect/turf_decal/siding/thinplating{
- dir = 4
- },
/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
dir = 4
},
@@ -2881,7 +2870,6 @@
/obj/structure/railing/thin/corner{
dir = 8
},
-/obj/effect/turf_decal/siding/thinplating,
/obj/effect/turf_decal/trimline/transparent/blue/filled/line,
/obj/machinery/light/directional/east,
/obj/effect/decal/cleanable/dirt/dust,
@@ -3051,9 +3039,6 @@
/obj/structure/railing/thin/corner{
dir = 1
},
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
- },
/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
dir = 1
},
@@ -3087,9 +3072,6 @@
/turf/open/floor/plasteel/mono/dark,
/area/ruin/moon/moonbase/engineering)
"Bz" = (
-/obj/effect/turf_decal/siding/thinplating/corner{
- dir = 4
- },
/obj/effect/turf_decal/trimline/transparent/blue/filled/corner{
dir = 4
},
@@ -4494,9 +4476,6 @@
/obj/structure/railing/thin/corner{
dir = 1
},
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
- },
/obj/effect/turf_decal/trimline/transparent/blue/filled/line{
dir = 1
},
@@ -4668,7 +4647,6 @@
/obj/structure/railing/thin/corner{
dir = 8
},
-/obj/effect/turf_decal/siding/thinplating,
/obj/effect/turf_decal/trimline/transparent/blue/filled/line,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plasteel/tech/grid,
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_rustbase.dmm b/_maps/RandomRuins/RockRuins/rockplanet_rustbase.dmm
index 181cf6a2049..6f785dd6abd 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_rustbase.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_rustbase.dmm
@@ -1,2875 +1,3611 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ad" = (
-/obj/effect/turf_decal/industrial/warning{
+"ae" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
dir = 1
},
-/obj/structure/platform/industrial_alt{
- dir = 8
- },
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
+/obj/effect/turf_decal/corner/opaque/syndiered/border,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/bridge)
+"af" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/engine_two)
"ah" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/flora/stump{
+ icon_state = "anchored_rod";
+ pixel_y = -3;
+ name = "rod";
+ desc = "A metal rod struck into the ground."
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/item/clothing/head/helmet/ngr{
+ pixel_x = 0;
+ pixel_y = 24
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"ai" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged/sniper/sentry,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/rockplanet/rust_base)
+"aj" = (
+/obj/structure/girder,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/dorms)
+"ak" = (
+/obj/machinery/power/terminal{
dir = 4
},
-/obj/machinery/door/poddoor/preopen{
- dir = 4;
- id = "rustmech"
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"an" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas/ramzi,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/mechbay)
-"aq" = (
-/obj/structure/chair/plastic{
- dir = 8
+"as" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/slop)
-"au" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/closet/emcloset/wall/directional/north,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"av" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
dir = 8
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"aw" = (
+/obj/structure/chair/office{
+ dir = 1
},
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"av" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/area/ruin/rockplanet/rust_base/engine_two)
+"ax" = (
+/obj/structure/platform/wood{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"az" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 5
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"aB" = (
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"aD" = (
+/obj/structure/table/reinforced,
+/obj/machinery/recharger,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/rust_base/armory)
+"aG" = (
+/obj/machinery/porta_turret/ruin/ramzi{
dir = 8
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aK" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"aH" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"aM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"aN" = (
+/obj/machinery/door/poddoor{
+ id = "frontbox2"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/tanto2)
+"aO" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plating/rust,
+/turf/open/floor/plasteel,
/area/ruin/rockplanet/rust_base/hallway2)
-"aJ" = (
-/obj/structure/closet/crate/bin,
-/obj/machinery/button/door{
- pixel_y = 21;
- id = "rustmech"
+"aV" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"aW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/engine/hull/reinforced/interior,
/area/ruin/rockplanet/rust_base/hallway)
-"aK" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 8
+"bd" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "rusteastsouth"
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"aL" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/hallway)
-"aN" = (
-/turf/open/floor/plating/asteroid/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"aV" = (
-/obj/machinery/airalarm/directional/west,
-/obj/structure/table,
-/obj/item/radio/weather_monitor,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway2)
-"aZ" = (
-/obj/structure/table/chem,
-/obj/machinery/microwave,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/slop)
-"bf" = (
-/obj/machinery/button/door{
- pixel_y = 21;
- id = "rustmech"
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "rusteastholo";
+ dir = 1
},
-/turf/open/floor/plating/rust,
+/obj/structure/catwalk/over,
+/obj/structure/cable,
+/turf/open/floor/engine/hull/rockplanet,
/area/ruin/rockplanet/rust_base/mechbay)
-"bh" = (
+"be" = (
+/obj/machinery/computer/helm{
+ dir = 8;
+ layer = 3.3
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"bj" = (
-/obj/machinery/porta_turret/ship/ramzi/heavy{
- id = "rustguns";
- lethal = 1;
- dir = 5;
- turret_respects_id = 0;
- turret_flags = 62
+/obj/machinery/button/door{
+ pixel_x = 0;
+ pixel_y = 24;
+ id = "frontiepod3"
},
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/bridge)
-"bn" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"bh" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = 5;
+ pixel_y = 11
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bi" = (
+/obj/structure/platform/wood{
+ dir = 1
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/plasteel/stairs/wood/mid{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"bo" = (
-/obj/machinery/vending/coffee,
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"bw" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/area/ruin/rockplanet/rust_base)
+"bj" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "rustsecure"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/mechbay)
+"bm" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bo" = (
+/obj/effect/spawner/random/garden/arid/fifty,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bs" = (
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base/dorms)
+"bx" = (
+/obj/effect/turf_decal/siding/black{
+ dir = 1
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
"bz" = (
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"bA" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/industrial/warning{
+ color = "#912a2a";
+ dir = 4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"bC" = (
+/obj/item/ammo_casing/spent/pistol_steel,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway2)
+/area/ruin/rockplanet/rust_base/armory)
"bD" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"bE" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/siding/thinplating/dark,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"bI" = (
-/obj/machinery/light/directional/north,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"bH" = (
+/obj/effect/turf_decal/siding/wood{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/north,
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = 5
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"ca" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = -5
},
-/obj/effect/decal/cleanable/blood/drip,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 9
+/obj/structure/railing/corner,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"bK" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/structure/closet/crate/radiation,
-/obj/item/stack/sheet/mineral/uranium/ten,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"cc" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/rust_base/armory)
+"bM" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/mob_spawn/human/corpse/ramzi/trooper,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plasteel,
/area/ruin/rockplanet/rust_base/hallway)
-"cl" = (
+"bP" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bQ" = (
/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
-/obj/machinery/door/poddoor{
- id = "rustenginetwo"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"cs" = (
+/area/ruin/rockplanet/rust_base)
+"bR" = (
/turf/closed/mineral/random/rockplanet,
-/area/ruin/rockplanet/rust_base/tanto2)
-"cB" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"bT" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/rust_base/hallway)
+"bX" = (
+/obj/effect/turf_decal/siding/black{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"bY" = (
+/obj/structure/marker_beacon{
+ picked_color = "Lime"
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ce" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"cg" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Engine";
dir = 8
},
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base/hallway2)
-"cF" = (
-/obj/structure/table/reinforced,
-/obj/item/megaphone/sec,
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"cI" = (
-/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/footprints{
- dir = 8;
- pixel_y = -8
+"ch" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/internals,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/dorms)
+"ci" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged/space/shotgun{
+ minimum_distance = 0;
+ retreat_distance = 0
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"cN" = (
+/obj/effect/turf_decal/siding/black,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"cj" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"cm" = (
+/obj/structure/closet/syndicate/personal{
+ name = "captain's closet";
+ populate = 0;
+ anchored = 1
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 10
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/shoes/combat,
+/obj/item/clothing/suit/armor/ramzi/captain,
+/obj/item/clothing/under/syndicate/ramzi/officer,
+/obj/item/clothing/head/ramzi/beret,
+/obj/item/storage/guncase/pistol/a357,
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"cq" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
},
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/turf_decal/siding/thinplating,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/mechbay)
+"cz" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"cG" = (
+/turf/open/floor/plasteel/stairs/left{
+ dir = 4
+ },
+/area/ruin/rockplanet/rust_base/hallway2)
+"cL" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
dir = 1
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"dd" = (
-/obj/structure/bed/double/maint,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"de" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/area/ruin/rockplanet/rust_base/hallway2)
+"cM" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/obj/effect/mob_spawn/human/corpse/frontier,
+/obj/effect/decal/cleanable/blood,
+/obj/item/shard{
+ pixel_x = 14;
+ pixel_y = -15
+ },
+/obj/machinery/button/door{
+ pixel_x = -20;
+ pixel_y = 7;
+ dir = 4;
+ id = "frontbox1"
+ },
+/obj/machinery/button/door{
+ pixel_x = -20;
+ pixel_y = -5;
+ dir = 4;
+ id = "frontbox2"
+ },
+/turf/open/floor/pod,
+/area/ruin/rockplanet/rust_base/tanto2)
+"cN" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
},
+/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/poddoor{
- id = "rustarmory";
+ id = "rustengine1";
dir = 4
},
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/armory)
-"df" = (
-/obj/machinery/power/shuttle/engine/fire,
-/turf/open/floor/engine/hull/rockplanet,
/area/ruin/rockplanet/rust_base/engine_one)
-"dh" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"do" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
- dir = 4;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
+"cQ" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/engine_two)
-"dt" = (
/obj/structure/flippedtable{
- dir = 8
- },
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"dv" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "4-8"
+ dir = 4
},
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustarmor"
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"cW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
},
-/obj/structure/barricade/wooden/crude{
- layer = 3.5
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"dw" = (
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustenginetwo"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"dD" = (
-/obj/structure/flora/tree/cactus,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"db" = (
+/obj/effect/decal/cleanable/blood/squirt,
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"dE" = (
-/obj/structure/cable{
- icon_state = "1-2"
+"de" = (
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck/syndicate{
+ pixel_x = 4;
+ pixel_y = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"dF" = (
-/obj/machinery/light/small/directional/east,
-/obj/structure/chair/bench/red/directional/west,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"dL" = (
-/obj/effect/decal/cleanable/blood/tracks,
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"dk" = (
+/obj/structure/platform/wood,
+/turf/open/floor/plasteel/stairs/wood/mid{
+ dir = 8
},
-/turf/open/floor/pod,
-/area/ruin/rockplanet/rust_base/tanto2)
-"dM" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/area/ruin/rockplanet/rust_base)
+"do" = (
+/turf/closed/wall/concrete,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ds" = (
+/obj/item/food/grown/ash_flora/cactus_fruit,
+/obj/item/food/grown/ash_flora/cactus_fruit,
+/obj/item/food/grown/ash_flora/cactus_fruit,
+/obj/item/food/grown/ash_flora/cactus_fruit,
+/obj/structure/crate_shelf,
+/obj/structure/closet/crate,
+/turf/open/floor/concrete/slab_3/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"dt" = (
+/obj/machinery/door/poddoor{
+ id = "rustarmory";
+ name = "Infantry Deployment";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway2)
+"dC" = (
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = -5;
+ pixel_y = 0
+ },
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"dF" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/effect/turf_decal/techfloor{
dir = 1
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"dZ" = (
-/obj/structure/closet/crate/medical,
-/obj/item/hatchet/wooden,
-/obj/item/melee/knife/survival,
-/obj/item/wirecutters,
-/obj/item/stack/medical/splint/hunter,
-/obj/item/screwdriver,
-/obj/item/bodybag,
-/obj/item/bodybag,
-/obj/item/reagent_containers/glass/bottle/morphine,
-/obj/structure/lattice/catwalk,
-/obj/effect/decal/cleanable/greenglow,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/clothing/gloves/color/latex/nitrile/evil,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"eg" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/table/reinforced,
+/obj/item/melee/energy/flyssa{
+ pixel_x = -7;
+ pixel_y = 5
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"eh" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/item/clothing/head/HoS/cybersun{
+ pixel_x = 7;
+ pixel_y = 7
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"el" = (
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4
+/obj/machinery/recharger{
+ pixel_x = 0;
+ pixel_y = 3
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/rockplanet/rust_base/bridge)
+"dG" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"eq" = (
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/turf/open/floor/plasteel/patterned,
+/obj/structure/closet/emcloset/wall/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"er" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/computer/cryopod/retro/directional/north,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/structure/chair/handrail{
+"dJ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 8
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/cryo)
-"es" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"dK" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"dN" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"dR" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/slop)
+"dT" = (
+/obj/structure/closet/secure_closet/freezer/fridge{
+ populate = 0
},
-/mob/living/simple_animal/hostile/human/ramzi/ranged/space/smg,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"ev" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/mob/living/simple_animal/hostile/human/ramzi/ranged/space/smg,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"ew" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato{
+ pixel_x = 3;
+ pixel_y = -1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 6
+/obj/item/food/grown/potato{
+ pixel_x = 2;
+ pixel_y = -5
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -6;
+ pixel_y = -5
},
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 9
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = -4
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"ey" = (
-/obj/machinery/button/door{
- pixel_y = -21;
- dir = 1;
- id = "rustengineone"
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -5;
+ pixel_y = 0
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"eA" = (
-/obj/structure/table/chem,
-/obj/item/stock_parts/scanning_module{
- pixel_x = -10;
- pixel_y = 11
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -2;
+ pixel_y = 6
},
-/obj/item/stock_parts/scanning_module{
- pixel_x = -5
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -7;
+ pixel_y = 1
},
-/obj/item/stock_parts/micro_laser{
- pixel_x = 1;
- pixel_y = 8
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato{
+ pixel_x = 4;
+ pixel_y = 0
},
-/obj/item/stock_parts/capacitor{
- pixel_x = 6;
- pixel_y = 2
+/obj/item/food/grown/potato{
+ pixel_x = 5;
+ pixel_y = -4
},
-/obj/item/reagent_containers/hypospray/medipen/stimpack/crisis{
- pixel_x = 10;
- pixel_y = 7
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -12;
+ pixel_y = -1
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"eD" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "2-4"
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"dW" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 9
},
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustwest"
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"dX" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"dZ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
},
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "rustwestholo"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/turf/open/floor/engine/hull/rockplanet,
+/obj/structure/closet/firecloset/wall/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"eH" = (
-/obj/structure/cable{
- icon_state = "4-8"
+"ea" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"eM" = (
-/obj/machinery/computer/security/retro{
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
},
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"eR" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "1-2"
},
-/obj/machinery/power/apc/auto_name/directional/north,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/cryo)
-"eZ" = (
-/obj/effect/turf_decal/industrial/loading{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"ef" = (
+/obj/structure/mecha_wreckage/gygax/dark,
+/obj/effect/decal/cleanable/glass/plasma,
+/obj/effect/decal/cleanable/plastic,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/mechbay)
+"ek" = (
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = 14;
+ pixel_y = 0
+ },
+/obj/structure/mirror{
+ pixel_x = 26;
+ pixel_y = 0
+ },
+/obj/machinery/door/window{
dir = 1
},
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"fj" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/engine_two)
-"fp" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/rust_base/hallway)
+"es" = (
+/obj/effect/turf_decal/industrial/warning{
+ color = "#912a2a";
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/armory)
-"fM" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+"eu" = (
+/obj/structure/chair/comfy/shuttle,
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"ew" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"fU" = (
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"ez" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"eA" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base)
+"eG" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/tank/internals/oxygen/yellow,
+/obj/item/clothing/suit/space/syndicate/ramzi,
+/obj/item/clothing/head/helmet/space/syndicate/ramzi,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_two)
+"eM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/airlock/hatch{
+ name = "Engine"
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway)
+"eP" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/tanto2)
+"eQ" = (
+/obj/structure/table,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base)
+"eW" = (
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"eY" = (
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"eZ" = (
+/obj/machinery/door/airlock/external{
dir = 8
},
-/obj/effect/turf_decal/siding/thinplating{
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"ge" = (
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"fc" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/spitter/internals,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
- dir = 8
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"fg" = (
+/obj/item/stack/ore/salvage/scrapmetal{
+ pixel_x = -6;
+ pixel_y = 7
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"fh" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
},
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"fj" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"fl" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base)
+"fp" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"gg" = (
-/obj/machinery/atmospherics/pipe/simple{
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/slop)
+"fs" = (
+/obj/structure/table/chem,
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"fu" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/structure/table/chem,
-/obj/item/flamethrower/full{
- pixel_y = 4
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"gh" = (
-/obj/structure/chair/handrail,
-/turf/open/floor/plating/rust,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/airalarm/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"go" = (
-/obj/structure/rack,
-/obj/item/mecha_ammo/scattershot{
- pixel_y = 5
+"fB" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/effect/turf_decal/siding/thinplating,
-/obj/item/mecha_ammo/scattershot{
- pixel_y = 11
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
+ dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"gu" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/obj/item/pen,
-/turf/open/floor/plasteel/mono,
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/armory)
-"gw" = (
-/obj/effect/decal/cleanable/glass,
-/obj/item/shard{
- pixel_x = -7;
- pixel_y = 6
- },
-/obj/machinery/power/smes/engineering,
-/obj/structure/cable{
- icon_state = "0-8"
+"fE" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/structure/chair{
+ dir = 8
},
-/turf/open/floor/pod,
-/area/ruin/rockplanet/rust_base/tanto2)
-"gF" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/structure/flippedtable,
-/obj/structure/fluff/paper/stack{
- dir = 6;
- pixel_y = 24;
- pixel_x = -3
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"fF" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"fK" = (
+/obj/structure/dresser,
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"fO" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"gH" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/cryo)
-"gM" = (
+/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-2"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 10
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"fP" = (
+/obj/structure/platform/industrial_alt{
+ dir = 8
},
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 5
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
},
-/turf/open/floor/plasteel/patterned/grid,
+/obj/effect/turf_decal/siding/thinplating,
+/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/rockplanet/rust_base/mechbay)
-"gQ" = (
+"fR" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"gT" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/mono,
/area/ruin/rockplanet/rust_base/mechbay)
-"gW" = (
-/obj/machinery/door/airlock/hatch{
- dir = 4
+"fS" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"fT" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
},
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/turf/closed/wall/concrete,
+/area/ruin/rockplanet/rust_base)
+"fV" = (
+/obj/structure/platform/wood{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"fW" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"fY" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/structure/closet/emcloset/wall/directional/south,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"gb" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"ge" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"gf" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/corner_steel_grid{
dir = 4
},
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"hL" = (
+/area/ruin/rockplanet/rust_base/hallway2)
+"gi" = (
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"hR" = (
-/obj/machinery/atmospherics/pipe/simple{
+"gj" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/concrete/slab_1/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gk" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor3"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gn" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/structure/table/chem,
-/obj/item/reagent_containers/glass/beaker/large/napalm{
- pixel_x = -6;
- pixel_y = 5
- },
-/obj/item/reagent_containers/glass/beaker/large/napalm{
- pixel_x = 6;
- pixel_y = 5
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"hW" = (
-/obj/effect/decal/cleanable/glass,
-/obj/item/broken_bottle{
- pixel_x = -10
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"go" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor3"
},
-/obj/item/broken_bottle{
- pixel_x = 2;
- pixel_y = -7
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gq" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"gv" = (
+/obj/structure/toilet{
+ dir = 8;
+ pixel_y = 2;
+ pixel_x = 6
},
-/obj/item/broken_bottle{
- pixel_x = 12;
- pixel_y = -1
+/mob/living/simple_animal/hostile/human/ramzi/civilian{
+ name = "Kaiser 'Shy' Dan"
},
-/obj/machinery/power/terminal{
- dir = 1
+/obj/effect/decal/cleanable/food/salt,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/rust_base/slop)
+"gy" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
+ dir = 10
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/armory)
+"gE" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/internals,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8;
+ pixel_y = -8
},
-/turf/open/floor/pod,
-/area/ruin/rockplanet/rust_base/tanto2)
-"hX" = (
-/obj/effect/turf_decal/techfloor{
+/obj/effect/decal/cleanable/blood/squirt{
dir = 4
},
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_x = 8;
- pixel_y = -3
- },
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_x = -10;
- pixel_y = 1
- },
-/obj/structure/cable,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"gF" = (
/obj/machinery/power/terminal{
dir = 4
},
-/obj/machinery/light/small/broken/directional/south,
-/turf/open/floor/pod,
-/area/ruin/rockplanet/rust_base/tanto2)
-"hY" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"ib" = (
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "0-8"
},
-/obj/structure/closet/crate/radiation,
-/obj/item/stack/sheet/mineral/plasma/ten,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"io" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/structure/closet/emcloset/wall/directional/north,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"gG" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 5
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fluff/paper/stack{
- dir = 4;
- pixel_y = -2;
- pixel_x = -12
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"iq" = (
-/obj/structure/table,
-/obj/item/toy/cards/deck/syndicate{
- pixel_y = 2;
- pixel_x = 4
- },
-/obj/item/reagent_containers/food/drinks/mead,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"ir" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"iz" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
+"gI" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/wideband/table{
+ dir = 4;
+ pixel_y = -10
},
-/obj/effect/turf_decal/siding/thinplating{
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/black{
dir = 1
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"iD" = (
-/obj/effect/decal/cleanable/glass/plasma,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"iM" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "0-2"
+"gJ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "rustsecure2"
},
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway2)
+"gK" = (
/obj/machinery/door/poddoor{
- dir = 4;
- id = "rusteastsouth"
- },
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "rusteastholo"
+ id = "rustmech";
+ name = "Heavy Infantry Deployment"
},
-/turf/open/floor/engine/hull/rockplanet,
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base/mechbay)
-"iQ" = (
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/armory)
-"jf" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+"gO" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
- },
-/obj/machinery/door/airlock/hatch{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/armory)
-"jh" = (
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable,
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/effect/decal/cleanable/blood/splatter{
+ icon_state = "armorblood"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/effect/decal/cleanable/blood/splatter{
+ icon_state = "floor4"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"gS" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/structure/closet/crate/rations,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/mechbay)
+"gT" = (
+/obj/item/melee/boarding_axe{
+ pixel_x = 8;
+ pixel_y = -16
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"jj" = (
-/obj/machinery/light/directional/west,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor5"
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway2)
-"jp" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"gX" = (
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/flame,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"hd" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"he" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/effect/turf_decal/arrows/white{
- dir = 4;
- pixel_y = 7
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"jq" = (
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"jw" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/light/directional/south,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"hf" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"jy" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/armory)
-"jD" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
+/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 5
+/turf/open/floor/plasteel/stairs/mid{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4,
+/area/ruin/rockplanet/rust_base/mechbay)
+"hh" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"jG" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/dorms)
-"jI" = (
-/obj/structure/cable{
- icon_state = "1-2"
+"hk" = (
+/obj/machinery/door/poddoor{
+ id = "rustmech";
+ name = "Heavy Infantry Deployment";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"jJ" = (
-/obj/structure/cable{
- icon_state = "0-8"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/power/smes/engineering,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"jP" = (
-/obj/structure/platform/industrial_alt{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/mechbay)
+"hq" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"jQ" = (
-/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 8
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/mob/living/simple_animal/hostile/human/ramzi/melee/space/stormtrooper/sledge{
- name = "Captain Dwight"
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"hw" = (
+/obj/structure/chair/comfy/shuttle,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"hA" = (
+/obj/structure/chair/stool,
+/obj/structure/sign/poster/contraband/syndiemoth{
+ pixel_x = 30;
+ pixel_y = 0
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"hF" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor{
+ id = "rustbridge"
},
-/turf/open/floor/plasteel/white,
+/turf/open/floor/plating,
/area/ruin/rockplanet/rust_base/bridge)
-"ke" = (
-/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
+"hI" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/line,
+/obj/effect/turf_decal/corner/opaque/syndiered/border{
dir = 1
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
- },
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/bridge)
-"ki" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/structure/sign/poster/contraband/c20r{
- pixel_x = 31
+"hJ" = (
+/obj/structure/barricade/sandbags,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/structure/chair{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"kl" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
- },
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 4
- },
-/turf/open/floor/plasteel/patterned/grid,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"hS" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/spitter/internals,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"hW" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ruin/rockplanet/rust_base/armory)
-"kn" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
- },
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"kt" = (
-/obj/effect/decal/cleanable/blood/tracks,
-/obj/machinery/door/poddoor/preopen{
- id = "frontbox1"
- },
-/obj/item/shard{
- pixel_y = -8
- },
-/obj/structure/cable{
- icon_state = "1-2"
+"hY" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/stack/ore/salvage/scrapmetal/five{
+ pixel_x = -13;
+ pixel_y = 10
},
-/turf/open/floor/plasteel/tech/grid,
-/area/ruin/rockplanet/rust_base/tanto2)
-"ky" = (
-/obj/structure/lattice/catwalk,
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"ih" = (
/obj/machinery/door/poddoor{
dir = 4;
- id = "rustarmor"
- },
-/obj/structure/barricade/wooden/crude{
- layer = 3.5
- },
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"kz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/armory)
-"kE" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
-/obj/structure/grille,
-/obj/machinery/door/poddoor{
- id = "rustbridge"
+ id = "rusteastsouth"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/bridge)
-"kG" = (
-/obj/machinery/light/directional/north,
-/obj/effect/decal/cleanable/oil/slippery,
-/turf/open/floor/plasteel/stairs/right{
- dir = 4
+/obj/machinery/power/shieldwallgen/atmos/roundstart{
+ id = "rusteastholo"
},
-/area/ruin/rockplanet/rust_base/mechbay)
-"kH" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/hallway2)
-"kM" = (
-/obj/structure/flora/junglebush/c,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"kO" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
- dir = 4;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
+/obj/structure/catwalk/over,
+/obj/structure/cable{
+ icon_state = "0-2"
},
/turf/open/floor/engine/hull/rockplanet,
/area/ruin/rockplanet/rust_base/mechbay)
-"kU" = (
-/obj/machinery/mech_bay_recharge_port{
- dir = 8
- },
-/obj/effect/turf_decal/siding/thinplating{
+"ij" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/hallway)
+"im" = (
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"lg" = (
-/obj/structure/chair/office/dark{
- dir = 4
- },
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 6
- },
-/turf/open/floor/plasteel/patterned/grid,
+/obj/structure/closet/crate/rations,
+/obj/effect/mapping_helpers/crate_shelve,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"lm" = (
-/obj/machinery/door/airlock/hatch,
-/obj/structure/cable{
- icon_state = "1-2"
+"ip" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/slop)
-"lt" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"is" = (
+/obj/machinery/door/airlock/external{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/door/airlock/hatch{
- dir = 4;
- name = "Bridge"
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"it" = (
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 6
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/bridge)
-"lD" = (
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_two)
+"iv" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"iw" = (
/obj/structure/table/reinforced,
-/obj/item/radio/intercom/wideband/table{
- dir = 4;
- pixel_y = -10
+/obj/machinery/cell_charger{
+ pixel_x = 0;
+ pixel_y = 1
},
-/obj/structure/railing{
- dir = 5
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/machinery/button/door{
+ pixel_y = 21;
+ id = "rustengine2";
+ name = "cargo storage door button"
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_two)
+"ix" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
},
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"iz" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
+ dir = 1
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"lL" = (
-/obj/effect/turf_decal/siding/thinplating/dark/corner,
-/obj/structure/closet/secure_closet/armorycage{
- anchored = 1;
- name = "ammunition locker";
- locked = 0;
- req_access = null
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/item/ammo_box/magazine/m45_cobra,
-/obj/item/ammo_box/magazine/m45_cobra,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"lO" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/area/ruin/rockplanet/rust_base/mechbay)
+"iA" = (
+/obj/machinery/button/door{
+ pixel_x = 21;
+ pixel_y = 0;
+ dir = 8;
+ id = "rustbunk1"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"iC" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"iD" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/obj/effect/turf_decal/corner/opaque/syndiered/border,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = 8;
+ pixel_y = -32
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = -5;
+ pixel_y = -28
},
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"lW" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/area/ruin/rockplanet/rust_base/bridge)
+"iE" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"iK" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/door/poddoor{
- id = "rustarmory"
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"iL" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/flippedtable{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/armory)
-"md" = (
-/obj/structure/mecha_wreckage/touro,
-/obj/effect/decal/cleanable/glass/plasma,
-/obj/effect/decal/cleanable/plastic,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"me" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
+"iP" = (
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"iQ" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/south,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 9
+/obj/effect/abstract/turf_fire/small/magical,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"iU" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas/ramzi,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/dorms)
+"iV" = (
+/obj/structure/reagent_dispensers,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway)
+"iZ" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"jf" = (
+/obj/structure/catwalk/over,
+/obj/machinery/door/poddoor{
+ dir = 4
},
-/obj/structure/chair/handrail{
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"jj" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"jl" = (
+/obj/machinery/porta_turret/ruin/ramzi/heavy{
dir = 8
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/cryo)
-"mh" = (
-/obj/machinery/door/poddoor/preopen{
- id = "rustmech"
+/turf/open/floor/concrete/slab_1/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jn" = (
+/obj/structure/poddoor_assembly/shutters,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"jp" = (
+/obj/machinery/computer/helm/retro{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/mechbay)
-"mp" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
-/obj/structure/grille,
-/obj/machinery/door/poddoor{
- id = "rustbridge";
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/turf/open/floor/plating,
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/plasteel/telecomms_floor,
/area/ruin/rockplanet/rust_base/bridge)
-"ms" = (
-/obj/structure/cable{
- icon_state = "1-2"
+"jq" = (
+/obj/structure/frame/machine,
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/rust_base/engine_one)
+"jt" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"mz" = (
-/obj/machinery/light/directional/west,
-/obj/machinery/vending/cola/sodie,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"mA" = (
-/obj/structure/sign/poster/contraband/lusty_xenomorph{
- pixel_y = 32
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"mB" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
- },
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/cryo)
-"mE" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-4"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"jv" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/corner_steel_grid{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"mF" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
- dir = 8;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
- },
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/hallway)
-"mG" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"jC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/loading{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
},
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/armory)
-"mP" = (
/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"mR" = (
-/obj/structure/rack,
-/obj/item/storage/toolbox/syndicate,
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
+/area/ruin/rockplanet/rust_base/hallway2)
+"jP" = (
+/obj/effect/decal/cleanable/blood/splatter/over_window{
+ icon_state = "gib3";
+ pixel_x = 5
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"mS" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/hallway)
+"jU" = (
+/obj/machinery/holopad/secure,
+/mob/living/simple_animal/hostile/human/ramzi/melee/space/stormtrooper/sledge{
+ name = "Captain Dwight"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/door/airlock/hatch{
- dir = 4;
- name = "Bridge"
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/bridge)
-"mV" = (
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_x = -9;
- pixel_y = -2
+"jV" = (
+/obj/item/shard/plastitanium{
+ pixel_x = 10;
+ pixel_y = 4
},
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_x = 8;
- pixel_y = 3
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"jW" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"ne" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
+/area/ruin/rockplanet/rust_base/dorms)
+"jX" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"ka" = (
+/obj/item/ammo_casing/spent/big_brass,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"kb" = (
+/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kf" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway2)
-"nq" = (
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"nu" = (
-/obj/structure/lattice/catwalk,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-4"
},
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/dorms)
+"ki" = (
/obj/structure/cable{
icon_state = "1-8"
},
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"kk" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rusteastsouth"
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_two)
+"kp" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"nx" = (
-/obj/structure/table/reinforced,
-/obj/item/radio/intercom/table{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/railing{
- dir = 4
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"kr" = (
+/obj/structure/window/reinforced{
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"nz" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/obj/structure/salvageable/machine,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustengine1"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"kt" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/salvageable/machine,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/hallway2)
+"kv" = (
+/obj/structure/chair,
+/turf/open/floor/carpet/green,
+/area/ruin/rockplanet/rust_base/slop)
+"kx" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kA" = (
+/obj/effect/turf_decal/borderfloor/corner{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 10
},
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"nG" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/emcloset,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"nH" = (
+"kK" = (
+/obj/structure/table_frame,
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/wood/ebony,
+/area/ruin/rockplanet/rust_base/dorms)
+"kO" = (
+/obj/item/stack/ore/salvage/scrapplasma{
+ pixel_x = -13;
+ pixel_y = -27
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kQ" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"kT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "1-2"
},
-/obj/machinery/power/apc/auto_name/directional/north,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"nJ" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/grid,
+/obj/structure/door_assembly/door_assembly_hatch,
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"kU" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/structure/closet/crate/medical,
+/obj/item/storage/firstaid/regular,
+/obj/item/storage/firstaid/brute,
+/turf/open/floor/plasteel/tech/techmaint,
/area/ruin/rockplanet/rust_base/mechbay)
-"nK" = (
-/obj/structure/table/reinforced,
-/obj/machinery/light/directional/north,
-/obj/structure/railing{
+"la" = (
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"lc" = (
+/obj/structure/chair/stool,
+/mob/living/simple_animal/hostile/human/ramzi/melee,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"le" = (
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"lh" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/item/ammo_casing/spent/rifle_brass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/item/reagent_containers/glass/concrete_bag{
- pixel_x = 5
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/item/reagent_containers/glass/concrete_bag{
- pixel_x = -5
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"li" = (
+/obj/item/gun/ballistic/automatic/assault/e40,
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/armory)
-"nL" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+"lm" = (
+/turf/closed/mineral/random/rockplanet,
+/area/ruin/rockplanet/rust_base/tanto2)
+"ls" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor3"
+ },
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/internals,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"lw" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/dorms)
+"lB" = (
+/obj/structure/chair/comfy/shuttle{
+ name = "Helm";
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/corner/opaque/syndiered/bordercee{
+ dir = 8
},
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"nM" = (
-/obj/machinery/vending/cigarette/syndicate,
+/obj/machinery/button/door{
+ id = "rustbridge";
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = -21
+ },
+/obj/effect/decal/cleanable/glass/plastitanium,
/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/bridge)
+"lD" = (
+/obj/machinery/power/shuttle/engine/electric,
+/turf/open/floor/engine/hull/reinforced,
/area/ruin/rockplanet/rust_base/hallway)
-"nO" = (
-/obj/machinery/power/apc/auto_name/directional/east,
-/obj/structure/cable{
- icon_state = "0-8"
+"lE" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/hallway2)
+"lG" = (
+/obj/machinery/button/shieldwallgen{
+ pixel_x = 0;
+ pixel_y = -20;
+ id = "rusteastholo";
+ dir = 1
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/machinery/button/door{
+ id = "rusteastsouth";
+ pixel_x = -10;
+ dir = 1;
+ pixel_y = -21
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
+/obj/effect/turf_decal/industrial/warning/dust{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"lL" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"lP" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
+/obj/item/wrench{
+ pixel_x = 11;
+ pixel_y = 0
+ },
+/obj/item/stock_parts/manipulator{
+ pixel_x = -8;
+ pixel_y = -5
+ },
+/obj/item/stock_parts/micro_laser/high{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/radio/intercom/directional/north,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/engine_two)
+"lQ" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"nS" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/item/radio/intercom/directional/east,
-/obj/structure/chair{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"nW" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/suit/space/hardsuit/syndi/ramzi,
-/obj/item/clothing/mask/gas/ramzi,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"od" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin,
-/obj/item/pen/edagger,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/white,
-/area/ruin/rockplanet/rust_base/bridge)
-"os" = (
-/obj/structure/chair/handrail{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
},
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"lR" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{
+ dir = 8;
+ piping_layer = 4
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"ou" = (
-/obj/effect/turf_decal/industrial/warning{
+/area/ruin/rockplanet/rust_base/engine_one)
+"lT" = (
+/obj/machinery/button/door{
+ pixel_y = -21;
+ id = "rustarmory";
dir = 1
},
-/obj/structure/rack,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/gun/ballistic/automatic/pistol/rattlesnake/cottonmouth,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"oC" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/table/wood,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/table{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
},
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"oF" = (
-/obj/structure/cable,
-/obj/machinery/porta_turret/ship/ramzi/heavy{
- id = "rustguns";
- lethal = 1;
- dir = 8;
- turret_respects_id = 0;
- turret_flags = 62
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"lZ" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 5
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"ma" = (
+/obj/structure/platform/wood{
+ dir = 4
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"oH" = (
-/obj/structure/rack,
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
+"mb" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
},
-/obj/item/clothing/suit/armor/ramzi/bulletproof,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"oL" = (
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"oN" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mk" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/siding/thinplating,
-/obj/structure/chair/handrail{
- dir = 1
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base)
+"ml" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"oW" = (
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"mv" = (
+/obj/structure/closet/crate/bin,
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 10
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"mw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/turf/open/floor/plating/rust,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/hallway2)
-"oX" = (
-/obj/structure/closet/crate/medical,
-/obj/machinery/airalarm/directional/north,
-/obj/item/storage/firstaid/brute,
-/obj/effect/turf_decal/siding/thinplating{
+"mA" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"mF" = (
+/obj/effect/turf_decal/siding/wood{
dir = 1
},
-/obj/item/storage/firstaid/regular,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"oZ" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"mI" = (
+/obj/item/stack/ore/salvage/scrapmetal/five{
+ pixel_x = 6;
+ pixel_y = 6
},
-/obj/machinery/light/directional/south,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"mM" = (
+/obj/machinery/power/terminal{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/engine/hull/reinforced/interior,
/area/ruin/rockplanet/rust_base/hallway)
-"ph" = (
-/obj/effect/turf_decal/arrows/white{
- dir = 4;
- pixel_y = 7
+"mN" = (
+/obj/structure/flora/rock/asteroid,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"mP" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/engine_two)
+"mT" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/structure/chair/bench/grey/directional/west,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"nb" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
},
-/obj/effect/turf_decal/arrows/white{
- dir = 4;
- pixel_y = 7
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/hallway)
+"ni" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"pi" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"nl" = (
+/obj/structure/platform/wood/corner{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 10
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"np" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_x = 0;
+ pixel_y = 5
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"pn" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"nr" = (
+/obj/structure/platform/wood/corner{
dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"pz" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/ramzi,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"pD" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"nw" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/rust_base/drop4)
+"ny" = (
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"nB" = (
+/obj/structure/flippedtable{
+ dir = 8
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
},
-/turf/open/floor/hangar/plasteel/dark,
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
+ dir = 8
+ },
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/armory)
-"pL" = (
-/obj/structure/flippedtable{
+"nD" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
dir = 8
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"pW" = (
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 1
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"nF" = (
+/obj/item/toy/snowball{
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"nH" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/rockplanet/rust_base)
+"nK" = (
+/obj/structure/closet,
+/obj/machinery/light/directional/north,
+/obj/item/clothing/head/hardhat/ramzi{
+ pixel_x = 10;
+ pixel_y = 8
+ },
+/obj/item/clothing/head/hardhat/ramzi{
+ pixel_x = 10;
+ pixel_y = -1
+ },
+/obj/item/clothing/suit/ramzi{
+ pixel_x = -7;
+ pixel_y = 7
+ },
+/obj/item/clothing/suit/ramzi{
+ pixel_x = -7;
+ pixel_y = 0
+ },
+/obj/item/clothing/under/syndicate/ramzi{
+ pixel_x = -3;
+ pixel_y = -9
+ },
+/obj/item/clothing/under/syndicate/ramzi/overalls{
+ pixel_x = 6;
+ pixel_y = -9
+ },
+/obj/item/clothing/neck/shemagh/ramzi{
+ pixel_x = 0;
+ pixel_y = 12
+ },
+/obj/item/clothing/neck/shemagh/ramzi{
+ pixel_x = -1;
+ pixel_y = 4
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"nM" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/item/stock_parts/cell/super/empty{
+ pixel_x = -9;
+ pixel_y = 9
},
+/obj/item/stock_parts/cell/super/empty{
+ pixel_x = -9;
+ pixel_y = -1
+ },
+/obj/machinery/light/directional/north,
+/obj/item/storage/box/stockparts/t3/capacitor{
+ pixel_x = 8;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/mechbay)
+"nQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-4"
},
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"pX" = (
-/obj/machinery/power/shuttle/engine/electric{
+/area/ruin/rockplanet/rust_base)
+"nR" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black/corner{
dir = 1
},
-/obj/structure/cable,
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/tanto2)
-"pY" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 1
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"qa" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/ramzi,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"qe" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/turf_decal/corner/opaque/syndiered/border{
dir = 6
},
-/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
+ },
+/obj/machinery/airalarm/directional/south,
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/bridge)
-"qj" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/hallway)
-"ql" = (
-/obj/machinery/computer/helm/retro{
- dir = 8
+"nU" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/techfloor{
- dir = 4
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"nX" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/obj/effect/turf_decal/siding/black{
+ dir = 8
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"qm" = (
+/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "0-1"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"nY" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
- dir = 4
+/obj/structure/fluff/broken_flooring{
+ icon_state = "pile"
},
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"oa" = (
+/obj/item/emptysandbag{
+ pixel_x = -4;
+ pixel_y = -8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"og" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-1"
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"qq" = (
-/obj/structure/closet/crate/bin,
-/turf/open/floor/plating,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/dorms)
-"qt" = (
-/obj/structure/cable{
- icon_state = "2-8"
+"oh" = (
+/obj/effect/turf_decal/siding/black,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"oi" = (
+/obj/structure/crate_shelf,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/structure/closet/crate{
+ name = "cold weather surplus crate"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
+/obj/item/clothing/suit/ramzi{
+ pixel_x = 8;
+ pixel_y = -3
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 10
+/obj/item/clothing/suit/ramzi{
+ pixel_x = 0;
+ pixel_y = -4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"qu" = (
-/obj/structure/sign/poster/contraband/bulldog{
- pixel_y = 32
+/obj/item/clothing/suit/ramzi{
+ pixel_x = -8;
+ pixel_y = -4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"qx" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/dorms)
-"qA" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/firecloset,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"qC" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/mechbay)
-"qI" = (
-/obj/machinery/light/directional/north,
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/suit/space/hardsuit/syndi/ramzi,
-/obj/item/clothing/mask/gas/ramzi,
-/obj/item/tank/internals/emergency_oxygen/engi,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/armory)
-"qN" = (
-/obj/effect/turf_decal/arrows/white{
- dir = 4;
- pixel_y = 7
+/obj/item/clothing/head/ramzi/flap{
+ pixel_x = -14;
+ pixel_y = 3
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"qP" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/platform/industrial_alt{
- dir = 8
+/obj/item/clothing/head/ramzi/flap{
+ pixel_x = -5;
+ pixel_y = 2
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/armory)
-"qT" = (
-/obj/machinery/door/poddoor/preopen{
- id = "rustmech"
+/obj/item/clothing/head/ramzi/flap{
+ pixel_x = 5;
+ pixel_y = 1
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/mechbay)
-"qW" = (
-/mob/living/simple_animal/hostile/human/ramzi/ranged,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"rc" = (
-/mob/living/simple_animal/hostile/human/ramzi/ranged/sniper,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"rh" = (
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/item/clothing/neck/shemagh/ramzi{
+ pixel_x = -12;
+ pixel_y = -8
},
-/obj/machinery/atmospherics/components/unary/tank/air{
- piping_layer = 2;
- dir = 1
+/obj/item/clothing/neck/shemagh/ramzi{
+ pixel_x = -3;
+ pixel_y = -9
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"ri" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"rn" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/armory)
-"rq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/cryo)
-"ru" = (
-/obj/effect/mapping_helpers/airlock/locked,
-/obj/machinery/door/airlock/hatch,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base)
-"rx" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/item/clothing/neck/shemagh/ramzi{
+ pixel_x = 3;
+ pixel_y = -10
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/mechbay)
+"ol" = (
+/obj/machinery/cryopod/syndicate{
+ dir = 8
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/dorms)
+"on" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/rockplanet/rust_base)
+"os" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/siding/wood{
dir = 6
},
-/obj/structure/flippedtable,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/fluff/paper/stack{
- dir = 5;
- pixel_y = 25;
- layer = 2.89
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oA" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"rD" = (
-/obj/machinery/door/poddoor/preopen{
- id = "rustmech"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/mechbay)
-"rH" = (
-/obj/structure/flora/rock/pile/rockplanet,
-/turf/open/floor/plating/asteroid/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"rJ" = (
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"oB" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/rust_base/armory)
+"oC" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod3"
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/item/radio/intercom/directional/south{
- pixel_x = 4
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"oK" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged/hydra/gunsmith,
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"oN" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
-/turf/open/floor/engine/hull/rockplanet,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"oT" = (
+/obj/effect/decal/cleanable/blood/squirt,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"oV" = (
+/obj/machinery/porta_turret/ruin/ramzi/heavy{
+ dir = 4
+ },
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/bridge)
+"oW" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pa" = (
+/obj/structure/table/wood/poker,
+/obj/item/storage/cans/sixsoda{
+ pixel_x = 3;
+ pixel_y = 8
+ },
+/turf/open/floor/concrete/slab_1,
/area/ruin/rockplanet/rust_base)
-"rK" = (
-/obj/structure/toilet{
- dir = 4;
- pixel_x = -4
+"pb" = (
+/obj/item/stack/ore/salvage/scrapgold{
+ pixel_x = 9;
+ pixel_y = 12
},
-/turf/open/floor/plasteel/freezer,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pe" = (
+/obj/effect/turf_decal/borderfloor/full,
+/turf/open/floor/plasteel,
/area/ruin/rockplanet/rust_base/hallway)
-"rN" = (
-/obj/structure/cable{
- icon_state = "4-8"
+"pf" = (
+/obj/structure/flippedtable{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/item/ammo_casing/spent/pistol_steel,
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/armory)
+"ph" = (
+/obj/structure/chair,
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"pi" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"pj" = (
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"pl" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"pm" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"rR" = (
+/area/ruin/rockplanet/rust_base/dorms)
+"po" = (
/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 10
+ dir = 1
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"rY" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustwest"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "rustwestholo";
- dir = 1
+/obj/structure/extinguisher_cabinet/directional/south,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"pp" = (
+/obj/item/stack/ore/salvage/scrapplasma{
+ pixel_x = 9;
+ pixel_y = 19
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/hallway)
-"sb" = (
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"pr" = (
+/obj/structure/platform/wood{
dir = 8
},
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/turf/open/floor/plasteel/stairs/wood/mid,
+/area/ruin/rockplanet/rust_base)
+"ps" = (
+/obj/effect/turf_decal/siding/black,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/hallway2)
-"sm" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rusteastsouth"
+"pA" = (
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"pC" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 4
},
-/obj/machinery/power/shieldwallgen/atmos/roundstart{
- id = "rusteastholo";
- dir = 1
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"sy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"pE" = (
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"sC" = (
-/obj/machinery/mech_bay_recharge_port{
- dir = 8
+/obj/machinery/button/door{
+ id = "rusteastsouth";
+ pixel_x = -9;
+ pixel_y = 22
},
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"sG" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"sZ" = (
-/obj/effect/decal/cleanable/blood/footprints,
-/obj/effect/mob_spawn/human/corpse/frontier,
-/obj/effect/decal/cleanable/blood,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/button/shieldwallgen{
+ pixel_x = 2;
+ pixel_y = 21;
+ id = "rusteastholo"
},
-/turf/open/floor/plasteel/tech/grid,
-/area/ruin/rockplanet/rust_base/tanto2)
-"tb" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"pM" = (
+/obj/effect/turf_decal/siding/black{
+ dir = 8
},
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/armory)
-"tc" = (
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"tg" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+"pO" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"pP" = (
+/obj/machinery/light/small/directional/south,
+/obj/machinery/power/terminal{
+ dir = 8
},
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-1"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"pU" = (
+/obj/structure/platform/wood,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"pY" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/siding/black/corner{
dir = 1
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"tk" = (
-/turf/open/floor/plating/rust,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/armory)
-"tm" = (
+"qa" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"qb" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"qc" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"qh" = (
+/obj/effect/mapping_helpers/airlock/welded,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/door/airlock/hatch{
+ name = "Engine"
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base/hallway2)
-"to" = (
-/obj/structure/closet,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/machinery/atmospherics/pipe/simple{
+"ql" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/effect/decal/cleanable/blood/squirt{
dir = 4
},
-/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
-/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"tE" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/engine_one)
-"tG" = (
-/obj/structure/bed/roller,
-/obj/effect/decal/cleanable/blood,
-/obj/structure/lattice/catwalk,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"tI" = (
-/mob/living/simple_animal/hostile/human/ramzi/ranged/space/stormtrooper/shotgun{
- name = "'Armored' O. Ray"
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"tK" = (
-/obj/machinery/power/smes/shuttle/precharged{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/structure/window/reinforced{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"qr" = (
+/obj/machinery/door/airlock/hatch{
+ name = "Cryogenics"
+ },
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/dorms)
+"qv" = (
+/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{
+ dir = 8;
+ piping_layer = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 6
},
-/obj/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/tanto2)
-"tN" = (
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"tO" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/item/radio/intercom/directional/east,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"tS" = (
-/obj/machinery/light/small/directional/north,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"qy" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/stairs/mid{
dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"us" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
+/area/ruin/rockplanet/rust_base/hallway2)
+"qz" = (
+/obj/machinery/power/terminal{
+ dir = 4
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"uB" = (
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-8"
},
-/turf/open/floor/engine/hull/rockplanet,
+/obj/structure/closet/emcloset/wall/directional/north,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"qA" = (
+/obj/structure/table,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base)
-"uO" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
+"qD" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 4
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"qF" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
},
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"qH" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/ammo_casing/spent/slug/buck,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"uQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel,
/area/ruin/rockplanet/rust_base/hallway2)
-"uU" = (
+"qI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
},
-/obj/item/radio/intercom/directional/south,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"vd" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/button/door{
+ pixel_y = 2;
+ id = "rustengine1";
+ name = "cargo storage door button";
+ pixel_x = 21;
+ dir = 8
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/engine_one)
+"qK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"vg" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 9
+/obj/machinery/door/airlock/hatch{
+ name = "Engine";
+ dir = 8
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"vz" = (
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustenginetwo"
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"vB" = (
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"vD" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"vH" = (
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"vO" = (
-/obj/machinery/door/airlock/hatch,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/engine_one)
+"qL" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
icon_state = "1-2"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/cryo)
-"vR" = (
-/obj/machinery/computer/crew/retro,
-/obj/effect/turf_decal/techfloor{
+/obj/machinery/door/airlock/hatch{
+ name = "Engine"
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"vV" = (
-/obj/structure/chair/handrail,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"vW" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/engine_two)
+"qX" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/turf/open/floor/plasteel/patterned/ridged,
+/obj/effect/turf_decal/corner/opaque/grey,
+/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/slop)
-"vY" = (
-/obj/structure/cable{
- icon_state = "1-2"
+"ra" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
},
-/obj/effect/decal/cleanable/blood/tracks{
- dir = 4
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"rc" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"ro" = (
+/obj/structure/closet/secure_closet/freezer/fridge/open,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/item/reagent_containers/condiment/saltshaker,
+/obj/effect/decal/cleanable/food/salt,
+/obj/item/food/meat/slab/goliath,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/item/food/meat/slab/goliath,
+/obj/item/food/meat/slab/goliath,
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"rq" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ name = "Captains Quarters"
},
-/obj/machinery/atmospherics/components/binary/pump/on/layer2{
- dir = 1;
- name = "air to distro"
+/obj/machinery/door/firedoor/border_only{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"vZ" = (
-/obj/machinery/door/airlock/hatch{
- dir = 4;
- name = "Bridge"
+/obj/machinery/door/firedoor/border_only,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/dorms)
+"rr" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 5
+ },
+/obj/machinery/button/door{
+ pixel_y = 2;
+ id = "rustarmory";
+ dir = 8;
+ pixel_x = 21
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway2)
-"wb" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+"rv" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/item/radio/intercom/directional/north,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"rw" = (
+/obj/machinery/power/port_gen/pacman/super,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"wc" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"rz" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 9
+ },
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"rA" = (
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped/inverse{
+ piping_layer = 2
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"wj" = (
-/obj/structure/flora/junglebush/b,
-/turf/open/floor/plating/asteroid/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"wn" = (
-/obj/machinery/light/directional/north,
-/obj/structure/table/chem,
-/obj/structure/sink/chem,
-/obj/item/weldingtool/largetank{
- pixel_x = -11
+/area/ruin/rockplanet/rust_base/engine_one)
+"rB" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
},
+/obj/item/stack/ore/salvage/scraptitanium,
/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"ws" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/area/ruin/rockplanet/rust_base/hallway2)
+"rC" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/effect/abstract/turf_fire/small/magical,
+/obj/effect/mapping_helpers/turf/burnt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"rN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"rO" = (
+/obj/machinery/light/small/directional/east,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"wu" = (
-/obj/machinery/button/door{
- pixel_y = 21;
- id = "rustenginetwo"
+/area/ruin/rockplanet/rust_base/dorms)
+"rP" = (
+/obj/effect/spawner/bunk_bed{
+ dir = 4
},
-/obj/structure/table/chem,
-/obj/item/stack/rods/ten{
- pixel_x = 11
- },
-/obj/item/pipe{
- pixel_x = -2;
- pixel_y = 1
- },
-/obj/item/wrench{
- pixel_x = -6;
- pixel_y = -1
+/obj/machinery/light/directional/north,
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"rQ" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"wB" = (
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"rR" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/obj/structure/cable{
+ icon_state = "2-4"
},
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"wF" = (
-/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/tanto2)
-"wG" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/area/ruin/rockplanet/rust_base/engine_two)
+"rW" = (
+/obj/machinery/griddle,
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"rX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"wS" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"rY" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"wY" = (
-/obj/structure/table/chem,
-/obj/item/cutting_board,
-/turf/open/floor/plasteel/mono,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/mob/living/simple_animal/hostile/human/ramzi/ranged/shotgun{
+ retreat_distance = 0;
+ minimum_distance = 0
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"rZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"sa" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/slop)
-"wZ" = (
-/obj/machinery/door/airlock/hatch,
-/obj/structure/cable{
- icon_state = "1-2"
+"sf" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/engine_one)
+"sh" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/door/poddoor{
+ id = "rustengine2";
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
/turf/open/floor/plating,
/area/ruin/rockplanet/rust_base/engine_two)
-"xc" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark{
+"sn" = (
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"sB" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"xm" = (
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway2)
-"xq" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"sC" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/wasp/internals,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"sD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"xx" = (
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "4-8"
},
-/obj/machinery/porta_turret/ship/ramzi/heavy{
- id = "rustguns";
- lethal = 1;
- dir = 8;
- turret_respects_id = 0;
- turret_flags = 62
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Mess"
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"xA" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 6
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/slop)
+"sF" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/rust_base/dorms)
+"sH" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"sK" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustengine2"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"sO" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel,
/area/ruin/rockplanet/rust_base/hallway2)
-"xM" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
+"sQ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway)
+"sS" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"sV" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tf" = (
+/obj/item/melee/knife/kitchen{
+ pixel_x = 0;
+ pixel_y = 14
+ },
+/obj/effect/mapping_helpers/turf/burnt,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/slop)
-"xR" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+"tn" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/structure/chair/plastic{
dir = 4
},
-/turf/open/floor/plasteel/freezer,
-/area/ruin/rockplanet/rust_base/hallway)
-"yw" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/machinery/light/small/broken/directional/south,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/rust_base/tanto2)
+"tq" = (
+/obj/item/stack/ore/salvage/scraptitanium{
+ pixel_x = 6;
+ pixel_y = -9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"tr" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 8
+ },
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/airless,
+/area/ruin/rockplanet/rust_base/drop2)
+"ts" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"yz" = (
-/mob/living/simple_animal/hostile/human/ramzi/ranged/shotgun{
- retreat_distance = 0;
- minimum_distance = 0
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"yG" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/airalarm/directional/west,
-/obj/effect/turf_decal/siding/thinplating/dark{
+"tv" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 6
- },
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/hallway)
-"yJ" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/box/emptysandbags{
- pixel_y = 5
+"ty" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/tanto2)
+"tz" = (
+/obj/structure/closet/crate/radiation,
+/obj/item/stack/sheet/mineral/uranium/ten,
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/item/storage/box/emptysandbags,
-/obj/structure/railing{
- dir = 6
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"tC" = (
+/obj/machinery/power/smes/engineering,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "0-1"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"tD" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"yK" = (
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"yX" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner,
+/obj/effect/turf_decal/corner/opaque/syndiered/bordercorner{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"yY" = (
-/obj/structure/salvageable/computer{
- dir = 1
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/telecomms_floor,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/bridge)
-"zg" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"zm" = (
-/obj/effect/turf_decal/industrial/stand_clear{
+"tE" = (
+/obj/machinery/power/shuttle/engine/electric{
dir = 4
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"zn" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"tG" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"tI" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/fluff/broken_flooring{
+ icon_state = "singular";
dir = 1
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"zt" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"tL" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 1
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"zF" = (
-/obj/structure/chair/plastic{
- dir = 8
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 6
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/north,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/slop)
-"zH" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/south,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"tM" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"zQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "1-2"
},
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"tP" = (
+/obj/machinery/power/terminal{
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway2)
-"zR" = (
-/obj/machinery/door/airlock/hatch{
- name = "Dormitories"
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "0-2"
},
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"zX" = (
-/obj/machinery/atmospherics/pipe/simple{
- dir = 4
+/area/ruin/rockplanet/rust_base/engine_one)
+"tR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Af" = (
-/obj/effect/turf_decal/techfloor{
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"tS" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"tT" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/rockplanet/rust_base/hallway2)
+"tU" = (
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"tW" = (
+/obj/item/mine/pressure/explosive/rusty/live,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"tY" = (
+/obj/structure/toilet{
+ dir = 4;
+ pixel_x = -4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/rust_base/hallway)
+"ua" = (
+/obj/machinery/light/directional/south,
/obj/structure/chair/comfy/shuttle{
dir = 1
},
-/obj/effect/mob_spawn/human/corpse/frontier,
-/obj/effect/decal/cleanable/blood,
-/obj/item/shard{
- pixel_x = 14;
- pixel_y = -15
- },
-/obj/machinery/button/door{
- pixel_x = -20;
- pixel_y = 7;
- dir = 4;
- id = "frontbox1"
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"uf" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"ur" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 4
},
-/obj/machinery/button/door{
- pixel_x = -20;
- pixel_y = -5;
- dir = 4;
- id = "frontbox2"
+/obj/structure/reagent_dispensers/beerkeg{
+ pixel_x = 8;
+ pixel_y = -3
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/reagent_dispensers/beerkeg{
+ pixel_x = -10;
+ pixel_y = 1
},
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/power/terminal{
+ dir = 4
},
+/obj/machinery/light/small/broken/directional/south,
/turf/open/floor/pod,
/area/ruin/rockplanet/rust_base/tanto2)
-"Am" = (
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
+"uu" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
},
/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/engine_one)
-"Ax" = (
-/obj/machinery/light/small/directional/north,
-/obj/effect/turf_decal/siding/thinplating{
- dir = 4
+"uw" = (
+/obj/item/stack/ore/salvage/scrapgold{
+ pixel_x = 0;
+ pixel_y = 4
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"Az" = (
-/obj/structure/chair/office/dark{
- dir = 4
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uG" = (
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"uH" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/spline/fancy/opaque/black,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/mechbay)
+"uK" = (
+/obj/machinery/light/directional/south,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/white,
-/area/ruin/rockplanet/rust_base/bridge)
-"AE" = (
-/obj/item/radio/intercom/directional/west,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"uN" = (
+/obj/structure/table,
+/obj/item/cultivator/rake{
+ pixel_x = -7;
+ pixel_y = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
/area/ruin/rockplanet/rust_base)
-"AF" = (
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"AM" = (
-/obj/structure/closet,
-/obj/item/clothing/shoes/combat,
-/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/under/syndicate/ramzi,
-/obj/item/clothing/under/syndicate/ramzi,
-/obj/item/clothing/under/syndicate/ramzi,
-/obj/item/clothing/under/syndicate/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/head/ramzi,
-/obj/item/clothing/head/ramzi,
-/obj/item/clothing/head/ramzi,
-/obj/item/clothing/head/ramzi,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"AS" = (
-/obj/structure/chair/handrail{
- dir = 8
+"uV" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"uX" = (
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod4"
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"va" = (
+/obj/machinery/power/terminal{
+ dir = 4
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"AZ" = (
-/obj/machinery/power/port_gen/pacman,
/obj/structure/cable{
icon_state = "0-8"
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Bd" = (
-/obj/machinery/power/smes/shuttle/precharged,
-/obj/structure/window/reinforced{
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"vc" = (
+/obj/machinery/power/terminal{
dir = 8
},
/obj/structure/cable{
- icon_state = "0-2"
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"ve" = (
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = -7;
+ pixel_y = -6
+ },
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"vh" = (
+/obj/effect/turf_decal/siding/black{
+ dir = 9
},
-/obj/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/tanto2)
-"Be" = (
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"vi" = (
+/obj/structure/frame/machine,
+/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/rust_base/engine_one)
+"vl" = (
+/obj/item/stack/ore/salvage/scraptitanium{
+ pixel_x = -25;
+ pixel_y = 6
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Bg" = (
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/hallway)
-"Bh" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"vo" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/mechbay)
+"vr" = (
+/obj/machinery/power/ship_gravity,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Bj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/industrial/loading,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/armory)
-"Bo" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"vt" = (
+/obj/structure/chair/comfy/shuttle,
+/obj/machinery/light/directional/north,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"vu" = (
+/obj/machinery/power/terminal{
+ dir = 8
},
+/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-4"
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Br" = (
-/obj/effect/decal/cleanable/glass/plasma,
-/obj/structure/lattice/catwalk,
-/turf/open/floor/plating/rust,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"vy" = (
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/box/red,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/engine_one)
-"Bs" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/bridge)
-"Bz" = (
+"vA" = (
+/obj/structure/crate_shelf,
+/obj/machinery/light/small/directional/west,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"vB" = (
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Washroom"
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/slop)
+"vF" = (
+/obj/effect/decal/cleanable/glass/plastitanium,
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/wood/ebony,
+/area/ruin/rockplanet/rust_base/dorms)
+"vI" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/industrial/warning{
+ color = "#912a2a";
+ dir = 4
+ },
+/obj/item/ammo_casing/spent/pistol_steel,
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/blood/splatter/over_window{
+ icon_state = "gib3";
+ pixel_x = 6;
+ dir = 8;
+ pixel_y = 31
+ },
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/armory)
-"BA" = (
-/obj/structure/barricade/sandbags,
-/turf/open/floor/plating/asteroid/rockplanet/lit,
+"vJ" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustbunk2"
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"BC" = (
+"vL" = (
/obj/effect/spawner/bunk_bed{
dir = 4
},
-/obj/structure/sign/poster/contraband/syndiemoth{
- pixel_y = 32
- },
-/turf/open/floor/plating/rust,
+/turf/open/floor/carpet/red,
/area/ruin/rockplanet/rust_base/dorms)
-"BE" = (
+"vU" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/item/ammo_casing/spent/rifle_brass,
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"BL" = (
-/obj/item/radio/intercom/directional/west{
- pixel_y = 3
+"vW" = (
+/obj/structure/platform/wood{
+ dir = 8
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"BM" = (
-/obj/structure/chair/plastic{
+"vZ" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
dir = 8
},
-/mob/living/simple_animal/hostile/human/ramzi/melee,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"BN" = (
-/obj/structure/table/reinforced,
-/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer2{
- dir = 8
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
},
-/obj/item/radio/intercom/wideband/table{
- dir = 4;
- pixel_y = 5
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/item/radio/intercom/table{
- dir = 4;
- pixel_y = -10
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"wh" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 8
},
-/turf/open/floor/plasteel/white,
-/area/ruin/rockplanet/rust_base/bridge)
-"BO" = (
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"BX" = (
-/obj/machinery/door/poddoor{
- id = "rustarmory"
+/obj/structure/window/reinforced{
+ dir = 4
},
+/obj/structure/window/reinforced,
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/armory)
-"BZ" = (
-/obj/machinery/door/airlock/hatch{
- dir = 4
+/area/ruin/rockplanet/rust_base/tanto2)
+"wo" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/industrial/warning{
+ color = "#912a2a";
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/item/clothing/suit/space/hardsuit/syndi/ramzi,
+/obj/item/tank/internals/emergency_oxygen/engi,
+/obj/item/clothing/mask/gas/ramzi,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"wp" = (
+/obj/machinery/button/door{
+ pixel_y = 21;
+ id = "rustmech"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway)
-"Cd" = (
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Cf" = (
-/obj/item/reagent_containers/glass/bucket{
- pixel_y = 14;
- pixel_x = 12
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"Co" = (
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "4-8"
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Ct" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"wu" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base/dorms)
+"wA" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Cu" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
-/obj/structure/grille,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/door/poddoor{
- id = "rustenginetwo"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Cz" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"CA" = (
+"wB" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
+ },
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_two)
+"wD" = (
+/obj/structure/flippedtable{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"wF" = (
+/obj/structure/table,
+/obj/item/reagent_containers/glass/bucket{
+ pixel_y = 6;
+ pixel_x = -7
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"CF" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base)
+"wJ" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = -5
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 6
+/obj/item/reagent_containers/glass/concrete_bag{
+ pixel_x = 5
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 6
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/machinery/firealarm/directional/north{
+ pixel_x = -5;
+ pixel_y = 32
+ },
+/obj/structure/extinguisher_cabinet/directional/north{
+ pixel_x = 8;
+ pixel_y = 28
},
/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/hallway2)
-"CI" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 9
- },
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 1
- },
+"wK" = (
+/obj/effect/turf_decal/borderfloor/corner,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"CJ" = (
-/obj/structure/guncloset,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"CK" = (
-/obj/machinery/button/shieldwallgen{
- pixel_x = 2;
- pixel_y = -21;
- id = "rusteastholo";
- dir = 1
- },
-/obj/machinery/button/door{
- id = "rusteastsouth";
- pixel_x = -7;
- dir = 1;
- pixel_y = -21
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway)
+"wL" = (
+/obj/item/stack/ore/salvage/scrapsilver{
+ pixel_x = 3;
+ pixel_y = 8
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"CM" = (
-/obj/structure/grille/broken,
-/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wP" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"wW" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"wX" = (
+/obj/structure/grille,
+/obj/structure/window/reinforced/fulltile,
/turf/open/floor/plating,
/area/ruin/rockplanet/rust_base/tanto2)
-"CP" = (
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"CQ" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+"xc" = (
+/obj/structure/rack,
+/obj/item/ammo_casing/spent/pistol_steel,
+/obj/structure/sign/poster/contraband/bulldog{
+ pixel_x = 0;
+ pixel_y = 30
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"xd" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/vending/cola/starkist,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"xf" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 5
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/obj/structure/fluff/paper/stack{
- dir = 6;
- pixel_y = -13;
- pixel_x = -2
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
},
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"CX" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating/rust,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"CY" = (
-/obj/structure/closet/syndicate/personal{
- name = "captain's closet";
- populate = 0;
- anchored = 1
+"xg" = (
+/obj/item/stack/ore/salvage/scrapmetal/five{
+ pixel_x = 6;
+ pixel_y = 6
},
-/obj/item/storage/guncase/pistol/asp,
-/obj/item/clothing/gloves/combat,
-/obj/item/clothing/shoes/combat,
-/turf/open/floor/carpet/red,
+/turf/open/floor/wood/ebony,
+/area/ruin/rockplanet/rust_base/dorms)
+"xi" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/rust_base/drop2)
+"xj" = (
+/obj/structure/crate_shelf,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/hallway2)
-"Da" = (
-/obj/machinery/door/poddoor{
- id = "rustarmory";
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/armory)
-"De" = (
-/obj/machinery/vending/cola/black,
+"xx" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/bordercorner,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"Df" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Dm" = (
+/area/ruin/rockplanet/rust_base/mechbay)
+"xz" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4;
+ layer = 3.3
+ },
+/obj/machinery/power/apc/auto_name/directional/west,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 10
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"xB" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"xH" = (
+/obj/structure/flora/rock/pile/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"xI" = (
+/obj/effect/turf_decal/borderfloor{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Dr" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
},
-/obj/structure/chair/handrail{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"xL" = (
+/obj/effect/decal/cleanable/blood/splatter/over_window{
+ icon_state = "gib3";
+ pixel_x = 5;
dir = 1
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Dz" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/hallway)
+"xM" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
/obj/machinery/button/door{
pixel_y = 21;
- id = "rustwest"
- },
-/obj/machinery/button/shieldwallgen{
- pixel_x = 10;
- pixel_y = 21;
- id = "rustwestholo"
+ id = "rustmech"
},
-/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"DA" = (
-/obj/machinery/door/poddoor{
- id = "frontbox2"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/plasteel/tech/grid,
-/area/ruin/rockplanet/rust_base/tanto2)
-"DB" = (
/obj/structure/cable{
- icon_state = "2-4"
+ icon_state = "4-8"
},
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"xQ" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"DF" = (
-/obj/structure/flippedtable{
+/area/ruin/rockplanet/rust_base/hallway2)
+"xU" = (
+/obj/effect/turf_decal/siding/black,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"xZ" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ya" = (
+/obj/machinery/door/poddoor{
+ id = "rustarmory";
+ name = "Infantry Deployment";
dir = 4
},
-/obj/effect/turf_decal/industrial/warning{
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway2)
+"yb" = (
+/obj/effect/turf_decal/borderfloor/corner{
dir = 1
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
+ dir = 6
},
+/obj/item/ammo_casing/spent/slug/buck,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"DI" = (
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/armory)
+"yd" = (
/obj/structure/closet/secure_closet/armorycage{
anchored = 1;
name = "ammunition locker";
@@ -2877,4758 +3613,10000 @@
req_access = null
},
/obj/item/storage/box/ammo/c45,
-/obj/item/storage/box/ammo/c57x39,
+/obj/item/storage/box/ammo/c10mm,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/mechbay)
-"DO" = (
-/obj/structure/chair/bench/red/directional/west,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"DV" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/food/grown/ash_flora/cactus_fruit,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"DZ" = (
-/obj/structure/flippedtable{
+"ye" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 4
},
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Ed" = (
-/obj/effect/turf_decal/siding/thinplating,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Ei" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/area/ruin/rockplanet/rust_base/engine_one)
+"yg" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod2"
},
-/obj/machinery/light/directional/south,
-/turf/open/floor/plasteel/stairs/left{
- dir = 4
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"yh" = (
+/obj/item/stack/ore/salvage/scrapgold{
+ pixel_x = 4;
+ pixel_y = -9
},
-/area/ruin/rockplanet/rust_base/armory)
-"Ek" = (
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Eo" = (
-/obj/structure/chair/plastic,
-/obj/structure/sign/poster/contraband/twelve_gauge{
- pixel_y = 32
+/obj/item/stack/ore/salvage/scrapsilver{
+ pixel_x = -11;
+ pixel_y = 6
},
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"Et" = (
-/obj/machinery/light/floor/hangar,
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"Ey" = (
-/obj/effect/turf_decal/industrial/warning,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"EA" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"yl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/oil,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"EU" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/platform/industrial_alt{
- dir = 8
- },
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"EV" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rusteastsouth"
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/engine_one)
+"ym" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 4
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Fc" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"yp" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/ruin/rockplanet/rust_base/engine_two)
-"Ff" = (
-/obj/structure/bed,
-/obj/item/bedsheet/syndie,
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Fk" = (
-/obj/effect/turf_decal/techfloor{
- dir = 8
- },
-/obj/effect/decal/cleanable/glass,
-/obj/structure/salvageable/computer,
-/obj/item/radio/intercom/wideband/directional/west,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/pod,
-/area/ruin/rockplanet/rust_base/tanto2)
-"Fn" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating/asteroid/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"Fv" = (
-/obj/structure/cable{
- icon_state = "4-8"
+"yB" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 4
},
+/obj/machinery/light/directional/north,
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"FA" = (
-/obj/machinery/light/directional/west,
-/obj/structure/closet/emcloset,
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/hallway2)
-"FE" = (
-/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"FM" = (
-/obj/machinery/light/directional/north,
+"yC" = (
+/obj/effect/decal/cleanable/blood/footprints,
+/obj/effect/mob_spawn/human/corpse/frontier,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/tanto2)
+"yK" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"FO" = (
-/obj/structure/table,
-/obj/structure/reagent_dispensers/servingdish,
-/obj/effect/decal/cleanable/food/salt,
-/obj/item/radio/intercom/directional/north,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/slop)
-"FX" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/area/ruin/rockplanet/rust_base)
+"yN" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
},
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/dorms)
+"yU" = (
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"za" = (
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"zd" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 10
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"zf" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/mob_spawn/human/corpse/ramzi,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"zi" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/dorms)
+"zl" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/bridge)
+"zn" = (
+/obj/structure/platform/wood{
+ dir = 4
+ },
+/obj/item/ammo_casing/spent/pistol_steel,
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"zs" = (
+/obj/machinery/power/shuttle/engine/electric{
dir = 1
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/tanto2)
+"zt" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 8
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"FY" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/structure/flippedtable,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"FZ" = (
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 5
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/effect/turf_decal/corner/opaque/syndiered{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"zv" = (
+/obj/machinery/power/terminal{
dir = 8
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"Ga" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"Gb" = (
/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/spline/fancy/opaque/black,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+ icon_state = "0-4"
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"Ge" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/structure/closet/emcloset/wall/directional/south,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"zw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"Gg" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/structure/platform/industrial_alt/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/hangar/plasteel/dark,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"Gm" = (
-/obj/effect/spawner/bunk_bed{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"Gn" = (
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+"zx" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas/ramzi,
+/obj/machinery/light/small/directional/west,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"zA" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/atmospherics/components/unary/portables_connector/layer2,
+/obj/effect/turf_decal/corner_techfloor_gray{
dir = 10
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Gz" = (
-/obj/item/mine/pressure/explosive/fire/live,
-/turf/open/floor/plating/asteroid/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"GE" = (
-/obj/effect/decal/cleanable/garbage,
-/obj/machinery/power/terminal{
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_one)
+"zC" = (
+/obj/effect/turf_decal/borderfloor/corner{
dir = 1
},
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "0-4"
+ icon_state = "1-2"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"GF" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/machinery/button/door{
+ pixel_y = 2;
+ id = "rustmech";
+ pixel_x = 21;
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"zF" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/salvageable/machine,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 9
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustengine1"
},
-/obj/structure/cable{
- icon_state = "1-8"
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"zJ" = (
+/obj/structure/platform/wood{
+ dir = 1
},
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 5
+/turf/open/floor/plasteel/stairs/wood/mid{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"GG" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/food/grown/sweet_potato,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
/area/ruin/rockplanet/rust_base)
-"GP" = (
-/obj/machinery/porta_turret/ship/ramzi/heavy{
- id = "rustguns";
- lethal = 1;
- dir = 6;
- turret_respects_id = 0;
- turret_flags = 62
+"zK" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/bridge)
-"GQ" = (
-/obj/structure/closet/firecloset,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"GY" = (
-/obj/structure/rack,
-/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot{
- pixel_y = 5
+/area/ruin/rockplanet/rust_base/engine_one)
+"zM" = (
+/obj/structure/platform/wood{
+ dir = 10
},
-/obj/machinery/light/directional/south,
-/obj/effect/turf_decal/siding/thinplating,
-/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser{
- pixel_y = -2
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"zP" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 6
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Hc" = (
-/turf/open/floor/plasteel/patterned,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"zS" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/internals,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"zT" = (
+/turf/closed/wall/r_wall,
/area/ruin/rockplanet/rust_base/hallway2)
-"Hg" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 5
+"zV" = (
+/obj/structure/table/reinforced,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"zW" = (
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/rockplanet/rust_base/dorms)
+"zZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/structure/cable{
- icon_state = "0-4"
+ icon_state = "1-2"
},
-/obj/machinery/power/apc/auto_name/directional/west,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Hh" = (
-/obj/effect/decal/cleanable/blood/drip,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"Af" = (
+/obj/structure/table/reinforced,
+/obj/item/radio/intercom/table{
dir = 4
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/structure/railing{
+ dir = 4
},
-/obj/machinery/power/terminal,
-/turf/open/floor/plating/rust,
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Ag" = (
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Ak" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
/area/ruin/rockplanet/rust_base/engine_two)
-"Hk" = (
-/obj/structure/table/reinforced,
-/obj/machinery/turretid/lethal{
- id = "rustguns"
+"Al" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"An" = (
+/obj/item/ammo_casing/spent/rifle_brass,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"As" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/rockplanet/rust_base/hallway)
+"Aw" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
},
-/obj/effect/turf_decal/techfloor{
- dir = 5
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"AB" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"Hm" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = -18;
- pixel_y = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/structure/mirror{
- pixel_y = 5;
- pixel_x = -29
+/obj/structure/cable{
+ icon_state = "1-4"
},
-/turf/open/floor/plasteel/freezer,
-/area/ruin/rockplanet/rust_base/hallway)
-"Hp" = (
-/obj/machinery/light/directional/south,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"Hu" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/button/door{
- pixel_y = 22;
- id = "rustarmory"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"AC" = (
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = 4;
+ pixel_y = 6
},
-/obj/structure/chair/handrail{
- dir = 4
+/obj/item/toy/snowball{
+ pixel_x = 5;
+ pixel_y = 5
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Hv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 4
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"AE" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 1
},
-/obj/structure/chair/handrail{
+/obj/structure/chair/comfy/shuttle{
dir = 4
},
-/turf/open/floor/plasteel/tech,
+/turf/open/floor/plasteel/dark,
/area/ruin/rockplanet/rust_base/hallway2)
-"HB" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
- dir = 5;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
+"AF" = (
+/obj/structure/flora/rock/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AG" = (
+/obj/machinery/power/terminal{
+ dir = 4
},
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/engine_one)
-"HH" = (
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "0-8"
},
-/obj/structure/cable{
- icon_state = "1-8"
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"AH" = (
+/obj/structure/marker_beacon{
+ picked_color = "Lime"
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway)
-"HU" = (
-/obj/machinery/light/directional/south,
-/obj/structure/rack,
-/obj/effect/turf_decal/siding/thinplating,
-/obj/item/storage/box/ammo/c10mm,
-/obj/item/storage/box/ammo/c10mm{
- pixel_x = 0;
- pixel_y = 8
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"AN" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"HX" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"AT" = (
/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/platform/industrial_alt,
-/turf/open/floor/plasteel/stairs/left{
- dir = 4
+ icon_state = "2-4"
},
-/area/ruin/rockplanet/rust_base/mechbay)
-"Id" = (
-/obj/machinery/door/airlock/hatch,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Ii" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Ij" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/directional/west,
-/obj/structure/chair/bench/red/directional/east,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"Im" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Iz" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"AU" = (
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
dir = 4
},
-/obj/structure/barricade/sandbags,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"IA" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/ramzi,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"IF" = (
-/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
/obj/effect/decal/cleanable/dirt,
-/obj/structure/salvageable/computer{
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"AZ" = (
+/obj/structure/platform/industrial_alt{
dir = 8
},
-/obj/effect/turf_decal/techfloor{
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Be" = (
+/obj/effect/turf_decal/industrial/warning,
+/mob/living/simple_animal/hostile/human/ramzi/ranged/space/smg,
+/obj/effect/turf_decal/corner_steel_grid{
dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"II" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
},
-/obj/structure/chair/handrail,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Bf" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Bh" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
/area/ruin/rockplanet/rust_base/hallway)
-"IO" = (
-/obj/structure/cable{
- icon_state = "1-2"
+"Bl" = (
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustbunk1"
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"IR" = (
-/obj/machinery/button/door{
- pixel_y = -21;
- id = "rustmech";
- dir = 1
+"Bo" = (
+/obj/structure/table/reinforced,
+/obj/item/binoculars{
+ pixel_y = 10
},
-/obj/structure/closet/firecloset,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway2)
-"IU" = (
-/obj/structure/chair/plastic{
+/obj/effect/turf_decal/techfloor{
dir = 1
},
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"Jd" = (
-/obj/structure/guncloset,
-/obj/item/gun/ballistic/automatic/smg/cobra,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Jl" = (
-/obj/structure/chair/office/dark{
+/obj/machinery/turretid/lethal{
+ id = "rustguns";
+ pixel_x = 0;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/rockplanet/rust_base/bridge)
+"Br" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
dir = 4
},
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 5
+/mob/living/simple_animal/hostile/human/ramzi/ranged/space/stormtrooper/shotgun{
+ name = "'Armored' O. Ray";
+ weapon_drop_chance = 100
},
-/turf/open/floor/plasteel/patterned/grid,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/armory)
-"Jq" = (
-/obj/structure/mecha_wreckage/gygax/dark,
-/obj/effect/decal/cleanable/glass/plasma,
-/obj/effect/decal/cleanable/plastic,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
+"Bu" = (
+/obj/structure/crate_shelf,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"Jw" = (
-/obj/machinery/button/door{
- pixel_y = 7;
- id = "rustwest";
- dir = 8;
- pixel_x = 21
- },
-/obj/machinery/button/shieldwallgen{
- pixel_x = 20;
- pixel_y = -2;
- id = "rustwestholo";
+"BF" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
},
-/turf/open/floor/plating/asteroid/rockplanet/lit,
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/slab_1,
/area/ruin/rockplanet/rust_base)
-"Jx" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/platform/industrial_alt{
- dir = 8
+"BG" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 9
},
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"JD" = (
-/obj/structure/table/reinforced,
-/obj/machinery/light/directional/south,
-/obj/item/paper_bin,
-/obj/item/pen/red,
-/obj/structure/railing{
- dir = 4
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"BH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"JF" = (
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/bridge)
-"JG" = (
-/obj/structure/rack,
-/obj/item/storage/box/ammo/a12g_buckshot,
-/obj/item/storage/box/ammo/a12g_buckshot{
- pixel_y = 7
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"BJ" = (
+/obj/structure/window/reinforced{
+ dir = 8
},
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"JI" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"JL" = (
-/obj/effect/turf_decal/arrows/white{
+/obj/structure/salvageable/machine,
+/obj/machinery/door/poddoor/shutters{
dir = 4;
- pixel_y = -9
+ id = "rustengine2"
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"JV" = (
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"BK" = (
/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/machinery/power/apc/auto_name/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway2)
-"JZ" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 4
+ icon_state = "1-4"
},
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Kc" = (
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustengineone"
- },
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
+/obj/effect/turf_decal/corner_techfloor_gray,
/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/engine_two)
+"BL" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"BM" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 10
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"BO" = (
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"BP" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ruin/rockplanet/rust_base/engine_one)
-"Kf" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/structure/rack,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/ammo_box/magazine/m10mm_cottonmouth,
-/obj/item/ammo_box/magazine/m10mm_cottonmouth{
- pixel_x = -10;
- pixel_y = 0
+"BQ" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 8
},
-/turf/open/floor/plasteel/mono,
+/obj/effect/turf_decal/trimline/opaque/syndiered/warning{
+ dir = 5
+ },
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/item/ammo_casing/spent/pistol_steel,
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/mono/dark,
/area/ruin/rockplanet/rust_base/armory)
-"Kr" = (
+"BS" = (
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"BZ" = (
+/obj/item/ammo_casing/spent/big_brass,
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"Cg" = (
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"Ci" = (
+/obj/structure/chair/stool{
+ dir = 1
},
/obj/structure/cable{
- icon_state = "1-8"
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4,
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 9
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"Cj" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"KL" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plasteel/patterned,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/item/radio/intercom/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"KP" = (
-/obj/machinery/light/floor/hangar,
-/obj/structure/cable{
- icon_state = "4-8"
+"Ck" = (
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Cn" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"KS" = (
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "0-2"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Cp" = (
+/obj/effect/turf_decal/siding/black,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Cs" = (
+/obj/effect/turf_decal/borderfloor/corner,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Cx" = (
+/obj/item/stack/ore/salvage/scrapgold{
+ pixel_x = -9;
+ pixel_y = -15
},
-/obj/machinery/door/airlock/hatch{
+/obj/item/stack/ore/salvage/scrapplasma{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Cz" = (
+/obj/structure/chair/comfy/shuttle{
dir = 4;
- name = "Dormitories"
+ layer = 3.3
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"KU" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/glass/concrete_bag{
- pixel_x = -5
+/obj/machinery/power/apc/auto_name/directional/west,
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/item/reagent_containers/glass/concrete_bag{
- pixel_x = 5
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"CB" = (
+/obj/structure/railing{
+ dir = 10
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"KX" = (
-/obj/item/storage/bottles/moonshine/sealed{
- pixel_y = -8
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"CC" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/bordercorner{
+ dir = 4
},
-/obj/item/storage/bottles/moonshine/sealed{
- pixel_y = 3
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"CG" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/effect/turf_decal/techfloor{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 4
},
-/obj/effect/decal/cleanable/blood/splatter/over_window{
- pixel_x = 28;
- pixel_y = -1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "1-2"
},
-/obj/structure/cable{
- icon_state = "2-8"
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"CH" = (
+/obj/effect/decal/cleanable/glass,
+/obj/item/broken_bottle{
+ pixel_x = -10
+ },
+/obj/item/broken_bottle{
+ pixel_x = 2;
+ pixel_y = -7
+ },
+/obj/item/broken_bottle{
+ pixel_x = 12;
+ pixel_y = -1
+ },
+/obj/machinery/power/terminal{
+ dir = 1
},
/turf/open/floor/pod,
/area/ruin/rockplanet/rust_base/tanto2)
-"Lf" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+"CJ" = (
+/obj/effect/turf_decal/siding/thinplating{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"CY" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"Da" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "2-4"
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Di" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 5
},
-/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Li" = (
-/obj/machinery/light/directional/east,
-/obj/structure/barricade/sandbags,
+/obj/machinery/atmospherics/pipe/layer_manifold/visible,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"Lj" = (
-/obj/structure/chair/handrail{
- dir = 1
+/area/ruin/rockplanet/rust_base/engine_one)
+"Dj" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
},
-/turf/open/floor/plating/rust,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"Lp" = (
+"Do" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dr" = (
+/turf/open/floor/engine/hull/reinforced,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ds" = (
+/obj/item/ammo_casing/spent/rifle_brass,
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Dw" = (
+/obj/machinery/computer/helm{
+ dir = 8;
+ layer = 3.3
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/obj/machinery/button/door{
- pixel_y = -21;
- id = "rustarmory";
+ pixel_x = 0;
+ pixel_y = 24;
+ id = "frontiepod4"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"DB" = (
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/dorms)
+"DE" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"DM" = (
+/obj/structure/salvageable/computer,
+/obj/effect/turf_decal/techfloor{
dir = 1
},
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"LA" = (
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 9
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/rockplanet/rust_base/bridge)
+"DT" = (
+/obj/structure/table,
+/obj/item/gun/ballistic/automatic/pistol/rattlesnake/cottonmouth{
+ pixel_x = 5;
+ pixel_y = -7
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/armory)
-"LH" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/layer4{
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"DY" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/structure/platform/industrial_alt/corner{
dir = 1
},
-/turf/open/floor/engine/hull/rockplanet,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Ea" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/mob/living/simple_animal/hostile/human/frontier/axe/internals,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
/area/ruin/rockplanet/rust_base)
-"LJ" = (
-/obj/machinery/cryopod/syndicate{
+"Eb" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/airalarm/directional/east,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/cryo)
-"LO" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/area/ruin/rockplanet/rust_base/dorms)
+"Ee" = (
+/obj/machinery/computer/crew/retro,
+/obj/effect/turf_decal/techfloor{
+ dir = 1
+ },
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/rockplanet/rust_base/bridge)
+"Ef" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/concrete/slab_1/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ej" = (
+/obj/machinery/computer/mech_bay_power_console{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Eo" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Eq" = (
+/obj/structure/rack,
+/obj/item/hatchet/wooden{
+ pixel_x = 7;
+ pixel_y = 2
+ },
+/obj/item/shovel/spade{
+ pixel_x = -4;
+ pixel_y = -5
+ },
+/turf/open/floor/concrete/slab_3/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Ev" = (
+/obj/machinery/computer/helm{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 9
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = -20;
+ id = "frontiepod2"
},
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"LT" = (
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/engine_two)
-"LY" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/dorms)
-"LZ" = (
/obj/structure/cable{
- icon_state = "1-8"
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"Ew" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"Ey" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/rust_base/drop1)
+"ED" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
dir = 4
},
-/turf/open/floor/plating/rust,
+/obj/machinery/light_switch{
+ dir = 8;
+ pixel_x = 20;
+ pixel_y = -7
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mob_spawn/human/corpse/ramzi,
+/obj/effect/decal/cleanable/blood/splatter/over_window{
+ icon_state = "gib3";
+ pixel_x = 20;
+ pixel_y = 14
+ },
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood/splatter{
+ icon_state = "floor4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4,
+/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/dorms)
-"Mq" = (
-/obj/structure/chair/plastic{
- dir = 1
+"EF" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ruin/rockplanet/rust_base/hallway)
+"EM" = (
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
},
+/obj/machinery/autolathe,
/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/engine_two)
-"Mr" = (
-/obj/machinery/light/directional/north,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"Mu" = (
-/obj/structure/toilet,
-/obj/item/clothing/head/papersack/smiley{
- pixel_y = 12
+"EN" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
},
-/obj/effect/decal/remains/human{
- pixel_y = -6
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"EP" = (
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Fb" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/turf/open/floor/plating/rust/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"Mw" = (
-/obj/effect/decal/cleanable/blood/tracks{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"MB" = (
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"Fc" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
dir = 8
},
-/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/human/ramzi/ranged/space/shotgun{
- minimum_distance = 0;
- retreat_distance = 0
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"MD" = (
-/obj/effect/turf_decal/corner/opaque/syndiered{
- dir = 5
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"Ff" = (
+/obj/machinery/button/door{
+ pixel_y = 21;
+ id = "rustsecure";
+ name = "cargo storage door button"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"MG" = (
-/obj/effect/turf_decal/arrows/white{
- dir = 4;
- pixel_y = -9
+/obj/effect/turf_decal/siding/black/corner{
+ dir = 1
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"ML" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"MN" = (
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"MP" = (
-/turf/closed/wall/r_wall/syndicate,
/area/ruin/rockplanet/rust_base/mechbay)
-"MW" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
- },
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 4
+"Fj" = (
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 9
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Fk" = (
+/obj/structure/window/reinforced{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Nb" = (
+/obj/structure/salvageable/machine,
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Nl" = (
-/obj/machinery/atmospherics/components/unary/shuttle/fire_heater,
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustengineone"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Nn" = (
-/obj/structure/reagent_dispensers,
-/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/hallway)
-"Nr" = (
-/obj/structure/closet,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/neck/shemagh/ramzi,
-/obj/item/clothing/head/ramzi,
-/obj/item/clothing/head/ramzi,
-/obj/item/clothing/head/ramzi,
-/obj/item/clothing/head/ramzi,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"Nw" = (
-/obj/machinery/mech_bay_recharge_port,
-/obj/structure/platform/industrial_alt/corner{
- dir = 1
+"Fm" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Nx" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
- dir = 8;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Fo" = (
+/obj/item/stack/sheet/mineral/snow{
+ pixel_x = 7;
+ pixel_y = 3
},
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/armory)
-"ND" = (
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"NF" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/guncloset,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"NK" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet,
+/area/ruin/rockplanet/rust_base)
+"Fp" = (
+/obj/effect/decal/cleanable/blood/squirt{
+ icon_state = "trails_1"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"NP" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
+/obj/effect/decal/cleanable/blood,
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/heavy{
+ mob_name = "'Charred' Mandibles";
+ mob_species = /datum/species/moth
},
-/obj/item/storage/box/stockparts/t2{
- pixel_x = -8
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/rust_base/armory)
+"Fq" = (
+/obj/machinery/atmospherics/components/unary/tank/nitrogen,
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
},
-/obj/item/stock_parts/cell/super/empty{
- pixel_x = 7;
- pixel_y = 7
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_one)
+"Fv" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ piping_layer = 2
},
-/obj/item/stock_parts/cell/super/empty{
- pixel_x = 7;
- pixel_y = -3
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"NQ" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/engine_one)
+"Fz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"FA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"FC" = (
/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
+ dir = 4
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"NV" = (
-/obj/effect/turf_decal/industrial/loading{
- dir = 1
+/obj/effect/mob_spawn/human/corpse/ramzi,
+/obj/effect/abstract/turf_fire/magical,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"FD" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"NY" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/obj/structure/cable{
- icon_state = "1-4"
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Bridge"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Oi" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Ok" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/obj/machinery/door/firedoor/border_only{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Or" = (
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Ov" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/ramzi,
-/obj/machinery/light/small/directional/west,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Ox" = (
-/obj/effect/decal/cleanable/garbage,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"OE" = (
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 1
- },
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/armory)
-"OF" = (
-/obj/item/pen,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/rockplanet/rust_base/armory)
-"OG" = (
-/obj/effect/spawner/bunk_bed,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"OJ" = (
-/obj/machinery/button/door{
- pixel_y = 21;
- id = "rusteastsouth"
- },
-/obj/machinery/button/shieldwallgen{
- pixel_x = 10;
- pixel_y = 21;
- id = "rusteastholo"
- },
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"ON" = (
-/obj/effect/turf_decal/industrial/loading,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/armory)
-"OP" = (
-/obj/machinery/power/apc/auto_name/directional/west,
-/obj/structure/cable{
- icon_state = "0-2"
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/bridge)
+"FE" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
},
-/obj/effect/spawner/bunk_bed{
+/obj/machinery/door/poddoor{
+ id = "rustengine2";
dir = 4
},
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"OQ" = (
+/area/ruin/rockplanet/rust_base/engine_two)
+"FL" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/tanto2)
+"FQ" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod4"
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/button/door{
- pixel_y = -21;
- id = "rustarmory";
- dir = 1
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"FU" = (
+/obj/structure/platform/wood,
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"FZ" = (
+/obj/machinery/door/airlock/external{
+ dir = 8
},
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"OT" = (
-/obj/structure/bed/double/maint{
- dir = 4
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 8
},
-/obj/structure/lattice/catwalk,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"OX" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"Gb" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Pe" = (
-/obj/structure/table/reinforced,
-/obj/item/spacecash/bundle/c1000,
-/obj/item/spacecash/bundle/c1000{
- pixel_x = -7;
- pixel_y = 8
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
},
-/obj/item/spacecash/bundle/c500{
- pixel_x = 7;
- pixel_y = 5
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/techfloor{
+/obj/structure/sign/poster/contraband/cybersun{
+ pixel_x = 28;
+ pixel_y = 0
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Gh" = (
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/obj/effect/abstract/turf_fire/small/magical,
+/obj/effect/mapping_helpers/turf/burnt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"Gj" = (
+/obj/effect/turf_decal/siding/thinplating{
dir = 6
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"Pg" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"Gk" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
},
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 4
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Go" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
},
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Pl" = (
-/obj/machinery/power/apc/auto_name/directional/south,
/obj/structure/cable{
icon_state = "0-8"
},
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"Gp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
- icon_state = "1-8"
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Pm" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/armory)
-"Pt" = (
-/obj/effect/turf_decal/techfloor{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Gq" = (
+/obj/machinery/power/smes/shuttle/precharged{
dir = 8
},
-/obj/structure/chair/plastic{
+/obj/structure/window/reinforced{
dir = 4
},
-/obj/structure/cable,
-/obj/machinery/power/terminal{
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"Gs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4;
+ name = "Dormitories"
+ },
+/obj/machinery/door/firedoor/border_only{
dir = 8
},
-/obj/machinery/light/small/broken/directional/south,
-/turf/open/floor/pod,
-/area/ruin/rockplanet/rust_base/tanto2)
-"Pv" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
- dir = 8;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/dorms)
+"Gx" = (
+/obj/structure/platform/industrial_alt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/stairs/left{
+ dir = 4
},
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ruin/rockplanet/rust_base/mechbay)
-"PH" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 1
+"GJ" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway)
+"GT" = (
+/obj/machinery/power/terminal{
+ dir = 8
},
-/obj/structure/chair/handrail{
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"PM" = (
-/obj/structure/closet/secure_closet/freezer/fridge/open,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/effect/decal/cleanable/food/salt,
-/obj/item/food/meat/slab/goliath,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/item/food/meat/slab/goliath,
-/obj/item/food/meat/slab/goliath,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/slop)
-"PQ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"GW" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 8
},
-/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
-/turf/open/floor/plasteel/tech,
+/mob/living/simple_animal/hostile/human/frontier/ranged/trooper/rifle/internals,
+/obj/machinery/light/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"PR" = (
-/obj/structure/flora/junglebush,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"PV" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 6
+"GY" = (
+/obj/structure/table,
+/obj/item/ammo_box/magazine/m10mm_cottonmouth{
+ pixel_x = -2;
+ pixel_y = -7
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Qc" = (
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Qe" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/ramzi,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Qg" = (
-/turf/open/floor/engine/hull/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"Qh" = (
+"Ha" = (
/obj/structure/window/plasma/reinforced/plastitanium,
/obj/structure/grille,
-/obj/machinery/door/poddoor{
- id = "rustengineone"
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustbridge"
},
/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Qq" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/drinks/mead,
-/obj/item/reagent_containers/food/drinks/mead,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"Qx" = (
-/obj/structure/table/reinforced,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Qy" = (
-/turf/template_noop,
-/area/template_noop)
-"QE" = (
-/turf/closed/mineral/random/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"QJ" = (
-/obj/effect/turf_decal/industrial/loading,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"QS" = (
-/obj/machinery/mech_bay_recharge_port,
-/obj/structure/platform/industrial_alt/corner{
+/area/ruin/rockplanet/rust_base/bridge)
+"Hb" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
dir = 4
},
-/obj/effect/turf_decal/siding/thinplating,
+/obj/machinery/light/directional/south,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
/area/ruin/rockplanet/rust_base/mechbay)
-"Ri" = (
-/obj/structure/chair/plastic{
- dir = 4
- },
-/mob/living/simple_animal/hostile/human/ramzi/melee,
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"Rk" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/airalarm/directional/south,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
+"Hc" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod1"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/cryo)
-"Rp" = (
/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
- dir = 1
- },
-/obj/effect/turf_decal/spline/fancy/opaque/syndiered{
- dir = 10
+ icon_state = "4-8"
},
-/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/armory)
-"Rr" = (
-/obj/structure/flora/rock/rockplanet,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"Hd" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Hg" = (
+/obj/effect/spawner/random/garden/arid/fifty,
/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin/rockplanet/rust_base)
-"Rs" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
- },
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 8
+"Hh" = (
+/obj/machinery/porta_turret/ruin/ramzi{
+ dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
- dir = 1
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/bridge)
+"Hk" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"Ru" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/tank/internals/oxygen/yellow,
-/obj/item/clothing/suit/space/syndicate/ramzi,
-/obj/item/clothing/head/helmet/space/syndicate/ramzi,
-/turf/open/floor/plating,
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"Ho" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Hx" = (
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating/rust,
/area/ruin/rockplanet/rust_base/engine_two)
-"Rv" = (
+"HI" = (
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 4
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base)
+"HJ" = (
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Rw" = (
-/obj/effect/spawner/bunk_bed,
-/obj/machinery/light/directional/north,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"RA" = (
/obj/structure/cable{
- icon_state = "1-8"
+ icon_state = "0-8"
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"HL" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged/cottonmouth{
+ health = 70;
+ desc = "A deserter from the Gorlex Marauders turned pirate. They warily glance around, a modified machinepistol pointing forward with another hand on a bullet wound."
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"HM" = (
+/obj/item/wrench/crescent{
+ pixel_x = -6;
+ pixel_y = 7
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway2)
-"RC" = (
-/obj/structure/table/reinforced,
-/obj/structure/closet/wall/red/directional/west,
-/obj/item/gun/ballistic/shotgun/automatic/bulldog/no_mag,
-/obj/item/ammo_box/magazine/m12g_bulldog/empty,
-/obj/item/ammo_box/magazine/m12g_bulldog/empty,
-/obj/item/ammo_box/magazine/m12g_bulldog/empty,
-/turf/open/floor/plasteel/white,
-/area/ruin/rockplanet/rust_base/bridge)
-"RD" = (
-/obj/machinery/porta_turret/ship/ramzi/light{
+/obj/structure/chair/stool{
dir = 4;
- id = "rustguns";
- turret_respects_id = 0;
- turret_flags = 62;
- lethal = 1
+ pixel_x = -11;
+ pixel_y = 0
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"RN" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/siding/thinplating{
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HO" = (
+/obj/structure/frame/machine,
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/rust_base/engine_two)
+"HP" = (
+/obj/structure/chair/comfy/shuttle{
dir = 1
},
-/obj/item/clothing/head/helmet/bulletproof/x11/ramzi{
- pixel_x = -5;
- pixel_y = 5
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner,
+/obj/effect/turf_decal/corner/opaque/syndiered/border{
+ dir = 1
},
-/obj/item/clothing/glasses/hud/security/sunglasses/ramzi{
- pixel_x = 2;
- pixel_y = -1
+/obj/machinery/light_switch{
+ dir = 4;
+ pixel_x = -21;
+ pixel_y = -7
},
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"RR" = (
+/area/ruin/rockplanet/rust_base/bridge)
+"HR" = (
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "1-8"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Sf" = (
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Sg" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
- dir = 8
- },
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Sp" = (
-/obj/effect/decal/cleanable/vomit/old,
-/obj/structure/lattice/catwalk,
-/obj/structure/sign/poster/contraband/engis_unite{
- pixel_y = 32
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"HS" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"HV" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ib" = (
+/turf/template_noop,
+/area/template_noop)
+"Im" = (
+/obj/structure/table,
+/turf/open/floor/carpet/green,
+/area/ruin/rockplanet/rust_base/slop)
+"Iu" = (
+/obj/machinery/door/poddoor{
+ id = "rustmech";
+ name = "Heavy Infantry Deployment"
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Ss" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"St" = (
-/obj/structure/crate_shelf,
-/obj/effect/turf_decal/road/line/edge/transparent/syndiered{
- dir = 8
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/turf_decal/siding/thinplating{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Sw" = (
-/obj/effect/decal/cleanable/garbage,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Sy" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/oil/slippery,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"SA" = (
-/obj/effect/turf_decal/industrial/stand_clear{
- dir = 4
+ icon_state = "1-2"
},
-/turf/open/floor/engine/hull/rockplanet,
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base/mechbay)
-"SB" = (
-/obj/machinery/door/airlock/hatch,
-/turf/open/floor/plating/rust/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"SL" = (
-/obj/structure/window/plasma/reinforced/plastitanium,
-/obj/structure/grille,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"SM" = (
-/obj/structure/platform/industrial_alt{
+"Iv" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Iw" = (
+/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/turf/open/floor/plasteel/stairs/right{
+/mob/living/simple_animal/hostile/human/ramzi/ranged/space/smg,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Iz" = (
+/obj/machinery/computer/helm{
dir = 4
},
-/area/ruin/rockplanet/rust_base/armory)
-"ST" = (
-/obj/structure/flora/junglebush/b,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"SV" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/obj/machinery/button/door{
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = -20;
+ id = "frontiepod1"
},
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"SW" = (
-/obj/structure/rack,
-/obj/machinery/airalarm/directional/south,
-/obj/item/melee/sledgehammer/gorlex,
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Tc" = (
-/obj/structure/salvageable/server,
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable{
- icon_state = "0-2"
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"IG" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 4
},
-/obj/effect/turf_decal/techfloor{
- dir = 1
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"Tn" = (
-/obj/effect/turf_decal/siding/thinplating/dark/corner{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Tr" = (
-/turf/open/floor/carpet/red,
-/area/ruin/rockplanet/rust_base/dorms)
-"Tv" = (
-/turf/closed/wall/r_wall/syndicate,
-/area/ruin/rockplanet/rust_base/slop)
-"TJ" = (
-/obj/structure/dresser,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway2)
-"TL" = (
-/obj/structure/salvageable/computer,
-/obj/machinery/light/directional/north,
-/obj/effect/turf_decal/techfloor{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"TN" = (
-/obj/effect/turf_decal/industrial/warning{
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"IM" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
dir = 1
},
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"TP" = (
-/obj/structure/table/reinforced,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"TX" = (
-/turf/closed/wall/r_wall,
-/area/ruin/rockplanet/rust_base/tanto2)
-"TZ" = (
-/obj/structure/lattice/catwalk,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
},
-/obj/machinery/door/poddoor{
- dir = 4;
- id = "rustwest"
+/obj/item/ammo_box/magazine/e40{
+ start_empty = 1
},
-/turf/open/floor/engine/hull/rockplanet,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"Uo" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-4"
+"IP" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/rockplanet/rust_base/dorms)
+"IR" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/manifold4w/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark/corner,
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Uq" = (
-/obj/structure/chair/bench/red/directional/east,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/hallway)
-"Uu" = (
-/turf/closed/wall/concrete,
-/area/ruin/rockplanet/rust_base)
-"Ux" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/turf/open/floor/plasteel/patterned/grid,
-/area/ruin/rockplanet/rust_base/armory)
-"UE" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"UG" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/turf_decal/arrows/white{
- dir = 4;
- pixel_y = 7
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"IU" = (
+/obj/machinery/atmospherics/components/unary/tank/oxygen,
+/obj/effect/turf_decal/corner_techfloor_gray{
+ dir = 10
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"UH" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/bridge)
-"UJ" = (
-/obj/structure/crate_shelf,
-/obj/effect/turf_decal/siding/thinplating{
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/engine_one)
+"IV" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 1
},
+/obj/machinery/light/small/directional/west,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"UR" = (
-/obj/machinery/power/apc/auto_name/directional/south,
-/obj/structure/cable,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating/dark{
+/area/ruin/rockplanet/rust_base/engine_two)
+"IW" = (
+/obj/effect/turf_decal/borderfloor/corner{
dir = 8
},
-/turf/open/floor/plasteel/patterned/ridged,
-/area/ruin/rockplanet/rust_base/slop)
-"US" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"IX" = (
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base)
+"Ja" = (
+/obj/machinery/door/poddoor{
+ id = "rustarmory";
+ name = "Infantry Deployment"
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base/hallway2)
-"Vc" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 9
+"Jd" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/dorms)
+"Jf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ name = "Dormitories"
},
-/obj/machinery/power/port_gen/pacman/super,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "1-2"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Vg" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Vh" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"Jh" = (
+/obj/structure/platform/wood{
+ dir = 1
},
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 5
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Jj" = (
+/obj/effect/turf_decal/trimline/opaque/syndiered/line{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"Vq" = (
-/obj/structure/salvageable/server,
-/obj/machinery/airalarm/directional/south,
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"Vv" = (
-/obj/machinery/computer/mech_bay_power_console{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
},
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Vw" = (
-/obj/effect/turf_decal/siding/thinplating{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/turf/open/floor/plasteel/patterned/ridged,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/bridge)
+"Jl" = (
+/obj/effect/mapping_helpers/turf/burnt,
+/obj/item/mine/pressure/explosive/fire/live,
+/turf/open/floor/plasteel,
/area/ruin/rockplanet/rust_base/slop)
-"Vx" = (
-/obj/effect/turf_decal/industrial/warning{
+"Jn" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/siding/wood{
dir = 1
},
-/obj/structure/chair/office/dark{
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ju" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Jw" = (
+/obj/structure/flora/grass/rockplanet/dead,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Jz" = (
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
},
-/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/human/ramzi/ranged/space/shotgun{
- minimum_distance = 0;
- retreat_distance = 0
+/obj/machinery/door/airlock/external{
+ dir = 8
},
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"VK" = (
-/obj/structure/flora/ash/garden/arid,
-/turf/open/floor/plating/asteroid/rockplanet/lit,
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base)
-"VM" = (
-/obj/structure/cable{
- icon_state = "0-2"
+"JA" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/machinery/door/poddoor/preopen{
+ id = "frontbox1"
},
-/obj/machinery/porta_turret/ship/ramzi/heavy{
- id = "rustguns";
- lethal = 1;
- dir = 4;
- turret_respects_id = 0;
- turret_flags = 62
+/obj/item/shard{
+ pixel_y = -8
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/mechbay)
-"VN" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/tanto2)
+"JC" = (
+/obj/structure/fluff/broken_flooring{
+ icon_state = "plating";
+ dir = 8
},
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/dorms)
+"JE" = (
/obj/effect/decal/cleanable/dirt,
-/obj/structure/chair/handrail{
+/obj/structure/sign/warning/nosmoking/burnt{
+ pixel_x = 5;
+ pixel_y = 28
+ },
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"JJ" = (
+/obj/structure/chair/stool{
dir = 1
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"VX" = (
-/obj/structure/girder/reinforced,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/tanto2)
-"VZ" = (
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 9
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Wa" = (
/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/porta_turret/ship/ramzi/heavy{
- id = "rustguns";
- lethal = 1;
- dir = 4;
- turret_respects_id = 0;
- turret_flags = 62
+ icon_state = "4-8"
},
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/armory)
-"Wc" = (
-/obj/structure/barricade/sandbags,
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
+/turf/open/floor/concrete/slab_1,
/area/ruin/rockplanet/rust_base)
-"We" = (
-/obj/structure/cable{
- icon_state = "2-4"
+"JM" = (
+/obj/item/storage/bottles/moonshine/sealed{
+ pixel_y = -8
},
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/item/storage/bottles/moonshine/sealed{
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/techfloor{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/effect/decal/cleanable/blood/splatter/over_window{
+ pixel_x = 28;
+ pixel_y = -1
+ },
+/obj/machinery/power/apc/auto_name/directional/north,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/rust_base/tanto2)
+"JN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
+/mob/living/simple_animal/hostile/human/ramzi/ranged/sniper/sentry,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"JO" = (
+/obj/structure/chair/comfy/shuttle,
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"JQ" = (
+/obj/machinery/washing_machine{
+ pixel_x = -7;
+ pixel_y = 0
+ },
+/obj/structure/window{
+ dir = 1
+ },
/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 8
+ dir = 1
},
/turf/open/floor/plasteel/patterned,
/area/ruin/rockplanet/rust_base/hallway)
-"Wj" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4,
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+"JW" = (
+/obj/structure/chair/comfy/shuttle{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"JX" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kk" = (
+/obj/machinery/porta_turret/ruin/ramzi{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Kl" = (
+/obj/item/shard/plastitanium{
+ pixel_x = -11;
+ pixel_y = -1
+ },
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Kw" = (
/obj/effect/turf_decal/siding/thinplating/dark,
+/mob/living/simple_animal/hostile/human/ramzi/ranged/smg,
+/obj/effect/turf_decal/trimline/opaque/red/line,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"Wl" = (
-/obj/effect/turf_decal/industrial/warning{
- dir = 1
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Kz" = (
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = 5;
+ pixel_y = 3
},
-/obj/structure/platform/industrial_alt{
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KA" = (
+/obj/effect/turf_decal/borderfloor/corner{
dir = 8
},
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/armory)
-"Wn" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 5
},
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"KC" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
},
-/turf/open/floor/plating/asteroid/dirt/rockplanet,
-/area/ruin/rockplanet/rust_base)
-"Wt" = (
-/obj/item/mine/pressure/explosive/rusty/live,
/turf/open/floor/plating/asteroid/rockplanet/lit,
-/area/ruin/rockplanet/rust_base)
-"Ww" = (
-/obj/structure/closet/secure_closet/armorycage{
- anchored = 1;
- name = "ammunition locker";
- locked = 0;
- req_access = null
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KD" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/obj/item/storage/box/ammo/c45,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"WB" = (
-/obj/structure/chair/plastic{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/slop)
-"WK" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 4
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"KI" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/hatch{
+ name = "Washroom"
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
+/obj/machinery/door/firedoor/border_only,
+/obj/machinery/door/firedoor/border_only{
dir = 1
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"WL" = (
-/obj/effect/turf_decal/industrial/warning,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"WS" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/armory)
-"WV" = (
-/turf/closed/wall/r_wall/syndicate/nodiagonal,
-/area/ruin/rockplanet/rust_base/engine_one)
-"WW" = (
-/obj/structure/rack,
-/obj/item/mine/pressure/explosive/rusty{
- pixel_y = 8
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway)
+"KJ" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/item/mine/pressure/explosive/rusty,
-/obj/effect/turf_decal/siding/thinplating,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"Xa" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"KT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Xb" = (
-/obj/machinery/power/shuttle/engine/fire,
-/turf/open/floor/engine/hull/rockplanet,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Xc" = (
-/obj/effect/turf_decal/industrial/warning{
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"KV" = (
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"KX" = (
+/obj/structure/chair,
+/obj/structure/sign/poster/contraband/punch_shit{
+ pixel_x = 0;
+ pixel_y = 30
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/rockplanet/rust_base/slop)
+"KZ" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/box/red,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"Ld" = (
+/obj/structure/platform/wood{
dir = 1
},
+/obj/structure/platform/wood,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Le" = (
+/obj/machinery/power/shuttle/engine/electric,
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/rust_base/engine_two)
+"Lf" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plasteel/mono,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Xh" = (
-/obj/machinery/door/poddoor/preopen{
- dir = 4;
- id = "rustmech"
- },
-/turf/open/floor/plating,
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/mechbay)
-"Xm" = (
-/obj/structure/closet,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/under/syndicate/ramzi/overalls,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/item/clothing/shoes/combat,
-/obj/machinery/atmospherics/pipe/simple{
- dir = 4
+"Lk" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/closed/wall/concrete,
+/area/ruin/rockplanet/rust_base)
+"Ll" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
},
-/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
-/obj/item/storage/fancy/cigarettes/cigpack_cannabis,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"Xn" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4,
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/effect/turf_decal/trimline/opaque/red/line{
dir = 4
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Xq" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"Lm" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Lq" = (
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/mechbay)
-"Xs" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/dorms)
-"Xu" = (
-/obj/structure/table,
-/obj/structure/reagent_dispensers/servingdish,
-/obj/effect/decal/cleanable/food/salt,
-/obj/item/radio/intercom/directional/south,
-/turf/open/floor/hangar/plasteel/dark,
-/area/ruin/rockplanet/rust_base/slop)
-"Xy" = (
-/obj/structure/toilet,
-/obj/item/reagent_containers/condiment/saltshaker,
-/obj/effect/decal/cleanable/food/salt,
-/mob/living/simple_animal/hostile/human/ramzi/civilian{
- name = "Kaiser 'Shy' Dan"
+/area/ruin/rockplanet/rust_base/hallway2)
+"Lu" = (
+/obj/structure/table/rolling,
+/obj/item/storage/box/stockparts{
+ pixel_x = 7;
+ pixel_y = 8
},
-/turf/open/floor/plating/rust,
+/obj/item/screwdriver{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Lw" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/food/grown/ash_flora/cactus_fruit,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
/area/ruin/rockplanet/rust_base)
-"XA" = (
+"LA" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/effect/decal/cleanable/dirt,
/obj/machinery/airalarm/directional/north,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_two)
-"XF" = (
-/obj/structure/bed/double/maint,
-/obj/structure/lattice/catwalk,
-/obj/machinery/atmospherics/pipe/simple{
- dir = 4
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"LD" = (
+/obj/machinery/door/poddoor{
+ dir = 4;
+ id = "rusteastsouth"
},
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"XG" = (
+/obj/structure/catwalk/over,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "2-8"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_one)
-"XH" = (
-/obj/machinery/light/dim/directional/west,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"XJ" = (
-/obj/machinery/suit_storage_unit/inherit,
-/obj/item/clothing/mask/gas/ramzi,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/machinery/light/small/directional/east,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/hallway2)
-"Ya" = (
/obj/structure/cable{
- icon_state = "0-8"
+ icon_state = "1-8"
},
-/obj/machinery/power/smes/engineering,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/engine_two)
-"Ye" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"LF" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 8
},
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/airless,
+/area/ruin/rockplanet/rust_base/drop1)
+"LH" = (
+/obj/structure/girder,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"LI" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/tanto2)
+"LM" = (
+/obj/machinery/light/small/directional/north,
/obj/structure/cable{
icon_state = "2-8"
},
-/obj/machinery/atmospherics/pipe/manifold/cyan/hidden/layer2{
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"LO" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"LQ" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/green,
+/area/ruin/rockplanet/rust_base/slop)
+"Mf" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Mi" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/slop)
+"Ml" = (
+/obj/structure/reagent_dispensers,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Ms" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/techfloor{
+ dir = 5
+ },
+/obj/item/radio/intercom/wideband/table{
+ dir = 1;
+ pixel_y = 0;
+ pixel_x = -13
+ },
+/obj/item/radio/intercom/table{
+ dir = 1;
+ pixel_y = 0;
+ pixel_x = 5
+ },
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/plasteel/telecomms_floor,
+/area/ruin/rockplanet/rust_base/bridge)
+"My" = (
+/obj/structure/girder,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Mz" = (
+/obj/machinery/oven,
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"MD" = (
+/obj/machinery/cryopod/syndicate{
dir = 8
},
-/obj/machinery/atmospherics/pipe/manifold/brown/hidden/layer4{
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 4
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/dorms)
+"MH" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
dir = 8
},
-/turf/open/floor/plasteel/patterned,
-/area/ruin/rockplanet/rust_base/hallway)
-"Yh" = (
-/turf/closed/wall/mineral/plastitanium/nodiagonal,
-/area/ruin/rockplanet/rust_base/cryo)
-"Ys" = (
-/obj/machinery/door/airlock/hatch{
- dir = 4;
- name = "Dormitories"
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"MJ" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ name = "ammunition locker";
+ locked = 0;
+ req_access = null
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/ammo_box/magazine/m12g_bulldog/drum,
+/obj/item/storage/box/ammo/a12g_buckshot,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"ML" = (
+/obj/effect/turf_decal/siding/black{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"MO" = (
+/obj/structure/fluff/broken_flooring{
+ icon_state = "plating";
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/dorms)
-"Yw" = (
-/obj/machinery/light/dim/directional/west,
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/mechbay)
-"YA" = (
-/turf/closed/wall/r_wall/syndicate,
/area/ruin/rockplanet/rust_base/hallway2)
-"YJ" = (
-/obj/machinery/door/airlock/hatch{
- dir = 4;
- name = "Captains Quarters"
+"MR" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/item/mine/pressure/explosive/rusty{
+ pixel_x = 8;
+ pixel_y = -6
+ },
+/obj/item/mine/pressure/explosive/rusty{
+ pixel_y = 2;
+ pixel_x = -9
},
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"MX" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"MY" = (
+/obj/structure/table,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Nc" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/hallway2)
-"YK" = (
-/obj/structure/table/reinforced,
-/obj/item/binoculars{
- pixel_y = 10
+/obj/machinery/door/airlock/hatch{
+ name = "Engine";
+ dir = 4
},
-/obj/machinery/button/door{
- id = "rustbridge"
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/techfloor{
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/engine_two)
+"Ne" = (
+/obj/structure/chair/comfy/shuttle{
dir = 1
},
-/obj/effect/turf_decal/techfloor{
+/obj/structure/sign/poster/contraband/cybersun_med{
+ pixel_x = 0;
+ pixel_y = -30
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Nh" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"Nl" = (
+/obj/machinery/button/door{
+ pixel_y = -21;
+ id = "rustsecure2";
dir = 1
},
-/turf/open/floor/plasteel/telecomms_floor,
-/area/ruin/rockplanet/rust_base/bridge)
-"YL" = (
-/mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet,
-/obj/machinery/light/directional/east,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/machinery/shower{
- pixel_y = 19
+/obj/effect/turf_decal/siding/black/corner{
+ dir = 8
},
-/obj/structure/curtain,
-/turf/open/floor/plasteel/freezer,
-/area/ruin/rockplanet/rust_base/hallway)
-"YY" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Nm" = (
+/obj/machinery/computer/cryopod/retro/directional/north,
+/obj/structure/fluff/broken_flooring{
+ icon_state = "plating";
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/dorms)
+"Np" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
dir = 8
},
-/obj/effect/turf_decal/spline/fancy/opaque/black{
- dir = 1
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
},
-/obj/effect/turf_decal/siding/thinplating/dark,
-/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/bridge)
-"Ze" = (
-/obj/structure/salvageable/computer,
-/turf/open/floor/plating/rust,
-/area/ruin/rockplanet/rust_base/armory)
-"Zm" = (
-/obj/structure/table/reinforced,
-/obj/machinery/fax/ruin,
-/obj/machinery/light/small/directional/west,
-/turf/open/floor/plasteel/white,
-/area/ruin/rockplanet/rust_base/bridge)
-"ZC" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 5
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/plasteel/freezer,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
/area/ruin/rockplanet/rust_base/hallway)
-"ZL" = (
-/obj/structure/platform/industrial_alt/corner{
- dir = 4
+"Nr" = (
+/obj/structure/girder,
+/obj/effect/decal/cleanable/blood/squirt{
+ icon_state = "trails_2"
},
-/turf/open/floor/plating/rust,
+/turf/open/floor/plating,
/area/ruin/rockplanet/rust_base/armory)
-"ZO" = (
-/obj/structure/salvageable/computer,
-/obj/effect/turf_decal/siding/thinplating{
+"Ns" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
dir = 1
},
/turf/open/floor/plasteel/tech,
-/area/ruin/rockplanet/rust_base/armory)
-"ZP" = (
-/obj/structure/lattice/catwalk,
-/turf/open/floor/plating,
-/area/ruin/rockplanet/rust_base/engine_one)
-"ZX" = (
+/area/ruin/rockplanet/rust_base/hallway2)
+"Nt" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer2{
- dir = 9
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{
- dir = 9
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"NB" = (
+/obj/structure/crate_shelf,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"NC" = (
+/obj/structure/mecha_wreckage/touro,
+/obj/effect/decal/cleanable/glass/plasma,
+/obj/effect/decal/cleanable/plastic,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/mechbay)
+"ND" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"NF" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/mechbay)
+"NG" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/item/stack/ore/salvage/scrapmetal/five{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"NH" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/radio/intercom/directional/east,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"NI" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"NL" = (
+/obj/structure/platform/industrial_alt{
+ dir = 1
+ },
+/turf/open/floor/plasteel/stairs/right{
+ dir = 4
+ },
+/area/ruin/rockplanet/rust_base/hallway2)
+"NM" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/emptysandbags{
+ pixel_y = 5
+ },
+/obj/item/storage/box/emptysandbags,
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/black,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"NN" = (
+/obj/structure/girder/reinforced,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"NT" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/mechbay)
+"NU" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"NX" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "rustsecure2"
+ },
+/turf/open/floor/plasteel/tech/grid,
/area/ruin/rockplanet/rust_base/hallway2)
-
-(1,1,1) = {"
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-Qy
-Qy
-"}
-(2,1,1) = {"
-QE
-VX
-TX
-TX
-Bd
-pX
-MN
-MN
-MN
-aN
-aN
-aN
-VK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Rr
-aN
-aN
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-Qy
-Qy
+"NY" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"NZ" = (
+/obj/structure/table,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = -31;
+ pixel_y = -7
+ },
+/obj/item/radio/intercom/directional/west{
+ pixel_x = -31;
+ pixel_y = 12
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/rockplanet/rust_base/slop)
+"Oc" = (
+/obj/structure/window/plasma/reinforced/plastitanium,
+/obj/structure/grille,
+/obj/machinery/door/poddoor/shutters{
+ id = "rustbridge"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/bridge)
+"Od" = (
+/turf/open/floor/plasteel/stairs/right{
+ dir = 4
+ },
+/area/ruin/rockplanet/rust_base/mechbay)
+"Oe" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/item/ammo_casing/spent/rifle_brass,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"Oh" = (
+/turf/closed/wall/concrete,
+/area/ruin/rockplanet/rust_base)
+"Oi" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Ok" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"On" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/door/airlock/external{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"Or" = (
+/obj/machinery/power/shuttle/engine/electric,
+/turf/open/floor/engine/hull/reinforced,
+/area/ruin/rockplanet/rust_base/engine_one)
+"Ov" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Ow" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/ammo_casing/spent/rifle_brass,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"OI" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"ON" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"OT" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"OU" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/food/grown/sweet_potato,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base)
+"Pa" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ name = "ammunition locker";
+ locked = 0;
+ req_access = null
+ },
+/obj/item/storage/box/ammo/c45,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/item/storage/box/ammo/a357,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Pc" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"Pd" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/layer2{
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/dorms)
+"Pf" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/borderfloorblack,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"Pi" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Pk" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop4)
+"Pr" = (
+/obj/effect/decal/cleanable/glass,
+/obj/item/shard{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/machinery/power/smes/engineering,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/rust_base/tanto2)
+"Ps" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/obj/structure/closet/firecloset/wall/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"PD" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/siding/thinplating/dark/corner{
+ dir = 1
+ },
+/obj/item/gun_maint_kit{
+ pixel_x = 0;
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"PE" = (
+/obj/machinery/door/poddoor{
+ id = "rustmech";
+ name = "Heavy Infantry Deployment";
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/mechbay)
+"PG" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/item/ammo_casing/spent/rifle_brass,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"PH" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/radio/intercom/directional/south,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/dorms)
+"PJ" = (
+/obj/effect/turf_decal/industrial/warning{
+ color = "#912a2a";
+ dir = 4
+ },
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/machinery/airalarm/directional/south,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/auto_name/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"PM" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"PO" = (
+/turf/closed/mineral/random/rockplanet,
+/area/overmap_encounter/planetoid/rockplanet)
+"Qc" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qd" = (
+/obj/machinery/mech_bay_recharge_port,
+/obj/structure/platform/industrial_alt{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Qe" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Qi" = (
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Qk" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"Qq" = (
+/obj/machinery/light/directional/south,
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_one)
+"Qx" = (
+/obj/effect/turf_decal/spline/fancy/opaque/black{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/thinplating,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/mechbay)
+"QA" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/rockplanet/rust_base/engine_one)
+"QH" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"QI" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/rockplanet/rust_base/bridge)
+"QN" = (
+/obj/structure/sink/kitchen{
+ dir = 1;
+ pixel_x = 0;
+ pixel_y = 0;
+ name = "sink"
+ },
+/obj/structure/mirror{
+ pixel_x = 0;
+ pixel_y = -25
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/rockplanet/rust_base/slop)
+"QS" = (
+/obj/effect/decal/cleanable/blood/squirt{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"QV" = (
+/obj/machinery/porta_turret/ruin/ramzi/light{
+ dir = 5
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"QX" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/south,
+/obj/item/paper_bin,
+/obj/item/pen/red,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"QZ" = (
+/obj/structure/platform/industrial_alt{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Rf" = (
+/turf/closed/wall/r_wall,
+/area/ruin/rockplanet/rust_base/bridge)
+"Rl" = (
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"Rm" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Ro" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 4
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Rw" = (
+/obj/machinery/porta_turret/ruin/ramzi{
+ dir = 8
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/engine_two)
+"Rx" = (
+/obj/structure/platform/wood{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/wood/mid,
+/area/ruin/rockplanet/rust_base)
+"Ry" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"RA" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/closed/wall/concrete,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RD" = (
+/obj/item/stack/ore/salvage/scrapmetal/five,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RG" = (
+/obj/structure/bed,
+/obj/machinery/light/small/directional/east,
+/obj/item/bedsheet/black,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"RP" = (
+/obj/structure/marker_beacon{
+ icon_state = "markerburgundy-on"
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/engine_two)
+"RR" = (
+/obj/structure/flora/rock/asteroid,
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RS" = (
+/obj/item/stack/ore/salvage/scrapgold{
+ pixel_x = 4;
+ pixel_y = -9
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RU" = (
+/obj/structure/guncloset,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"RV" = (
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"RW" = (
+/obj/structure/platform/wood{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"RZ" = (
+/obj/machinery/porta_turret/ruin/ramzi/light{
+ dir = 6
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Sb" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/item/ammo_casing/spent/rifle_brass,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"Sg" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas/ramzi,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Sl" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/flame,
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/closet/emcloset/wall/directional/south,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Sp" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"Sq" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"St" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor3"
+ },
+/obj/effect/mob_spawn/human/corpse/frontier/ranged/trooper/internals,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Sv" = (
+/obj/effect/turf_decal/siding/black{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Sw" = (
+/obj/structure/platform/wood,
+/turf/open/floor/plasteel/stairs/wood/mid{
+ dir = 4
+ },
+/area/ruin/rockplanet/rust_base)
+"SB" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/bridge)
+"SC" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/guncloset,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"SF" = (
+/obj/structure/frame/machine,
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/tanto2)
+"SH" = (
+/obj/structure/table/reinforced,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"SQ" = (
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"SW" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/obj/structure/reagent_dispensers/servingdish,
+/obj/structure/extinguisher_cabinet/directional/north{
+ pixel_x = -6;
+ pixel_y = 28
+ },
+/obj/machinery/firealarm/directional/north{
+ pixel_x = 6;
+ pixel_y = 32
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"SZ" = (
+/obj/structure/platform/wood{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/ramzi/ranged/cottonmouth,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Th" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base)
+"Ti" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/extinguisher_cabinet/directional/north{
+ pixel_x = -6;
+ pixel_y = 28
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"Tj" = (
+/obj/item/stack/ore/salvage/scraptitanium,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Tl" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway)
+"Tm" = (
+/obj/item/shovel{
+ pixel_x = 8;
+ pixel_y = 10
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"To" = (
+/obj/machinery/mech_bay_recharge_port{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Tp" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Ts" = (
+/obj/effect/turf_decal/techfloor{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/structure/salvageable/computer,
+/obj/item/radio/intercom/wideband/directional/west,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/rust_base/tanto2)
+"Tt" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/mob_spawn/human/corpse/frontier/internals,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Tv" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/armory)
+"Tx" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "rustengine1"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"TE" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/carpet/green,
+/area/ruin/rockplanet/rust_base/slop)
+"TF" = (
+/obj/structure/table/reinforced,
+/turf/open/floor/wood/ebony,
+/area/ruin/rockplanet/rust_base/dorms)
+"TH" = (
+/obj/structure/closet/crate/bin,
+/obj/machinery/airalarm/directional/north,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"TI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/rockplanet/rust_base/dorms)
+"TJ" = (
+/obj/machinery/atmospherics/components/binary/pump/on/layer2,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/airalarm/directional/east,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"TK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"TO" = (
+/obj/item/food/grown/sweet_potato,
+/obj/item/food/grown/sweet_potato,
+/obj/item/food/grown/sweet_potato,
+/obj/item/food/grown/sweet_potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/item/food/grown/potato,
+/obj/structure/crate_shelf,
+/obj/structure/closet/crate,
+/turf/open/floor/concrete/slab_3/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"TQ" = (
+/obj/effect/turf_decal/borderfloor/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"TR" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/closed/wall/concrete,
+/area/ruin/rockplanet/rust_base)
+"TT" = (
+/obj/structure/rack,
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 5
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 11
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"TV" = (
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Uq" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/turf_decal/corner_steel_grid{
+ dir = 5
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Uv" = (
+/obj/structure/marker_beacon{
+ icon_state = "markerburgundy-on"
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Uw" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/squirt{
+ icon_state = "trails_2"
+ },
+/turf/open/floor/plasteel/mono,
+/area/ruin/rockplanet/rust_base/armory)
+"Ux" = (
+/obj/structure/flora/rock/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"UB" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"UD" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_one)
+"UE" = (
+/obj/machinery/light/small/directional/west,
+/obj/machinery/shower{
+ pixel_y = 19
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/rockplanet/rust_base/hallway)
+"Vg" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Vh" = (
+/obj/machinery/power/port_gen/pacman{
+ anchored = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Vi" = (
+/obj/structure/platform/wood/corner{
+ dir = 4
+ },
+/obj/structure/platform/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Vj" = (
+/obj/effect/mapping_helpers/airlock/welded,
+/obj/machinery/door/airlock/hatch{
+ name = "Engine";
+ dir = 4
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway)
+"Vl" = (
+/obj/item/shard/plastitanium{
+ pixel_x = 5;
+ pixel_y = -9
+ },
+/obj/effect/decal/cleanable/glass/plastitanium,
+/turf/open/floor/wood/ebony,
+/area/ruin/rockplanet/rust_base/dorms)
+"Vo" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/rockplanet/rust_base/hallway)
+"Vp" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/closed/mineral/random/rockplanet,
+/area/overmap_encounter/planetoid/rockplanet)
+"Vq" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base)
+"Vu" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Vw" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Vz" = (
+/obj/structure/grille/broken,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"VA" = (
+/obj/item/stack/ore/salvage/scraptitanium{
+ pixel_x = 10;
+ pixel_y = -15
+ },
+/obj/effect/decal/cleanable/blood/squirt,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"VB" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"VC" = (
+/obj/effect/turf_decal/stairs_wood{
+ color = "#55391A";
+ dir = 5
+ },
+/obj/structure/platform/wood{
+ dir = 1
+ },
+/obj/structure/platform/wood,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"VH" = (
+/obj/effect/turf_decal/borderfloor,
+/obj/effect/turf_decal/siding/black{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/armorycage{
+ req_access = null
+ },
+/obj/item/storage/belt/security/webbing/ramzi/alt{
+ pixel_x = 5;
+ pixel_y = -7
+ },
+/obj/item/storage/belt/security/webbing/ramzi/alt{
+ pixel_x = -6;
+ pixel_y = -7
+ },
+/obj/item/flashlight/seclite{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/item/flashlight/seclite{
+ pixel_x = -5;
+ pixel_y = -1
+ },
+/obj/item/storage/pouch/ammo{
+ pixel_x = 8;
+ pixel_y = 5
+ },
+/obj/item/storage/pouch/ammo{
+ pixel_x = 8;
+ pixel_y = 0
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/armory)
+"VJ" = (
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"VL" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod1"
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"VM" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/airlock/hatch{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 4
+ },
+/obj/machinery/door/firedoor/border_only{
+ dir = 8
+ },
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/hallway)
+"VS" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/contraband/cybersun_borg{
+ pixel_x = 28;
+ pixel_y = 0
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"VV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"VW" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"VX" = (
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/ruin/rockplanet/rust_base)
+"VY" = (
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/obj/structure/sink/kitchen{
+ dir = 8
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"VZ" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Wa" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/obj/effect/decal/cleanable/blood,
+/obj/effect/mob_spawn/human/corpse/frontier/internals,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wc" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/black{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Wd" = (
+/obj/structure/platform/wood{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"We" = (
+/obj/effect/turf_decal/industrial/warning,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Wh" = (
+/obj/machinery/button/door{
+ pixel_x = -21;
+ pixel_y = 0;
+ dir = 4;
+ id = "rustbunk2"
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Wl" = (
+/obj/structure/guncloset,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Wq" = (
+/obj/structure/dresser{
+ dir = 1
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/rockplanet/rust_base/dorms)
+"Ww" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Wx" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/vending/cigarette/syndicate,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"Wy" = (
+/obj/structure/platform/wood/corner{
+ dir = 8
+ },
+/obj/item/ammo_casing/spent/pistol_steel,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"WG" = (
+/obj/structure/platform/wood{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/human/ramzi/ranged,
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"WH" = (
+/obj/effect/turf_decal/industrial/warning,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"WI" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/power/apc/auto_name/directional/east,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"WJ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/stack/ore/salvage/scrapbluespace{
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"WK" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/item/clothing/mask/gas/ramzi,
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"WL" = (
+/obj/effect/turf_decal/borderfloor{
+ layer = 2.030;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"WO" = (
+/obj/effect/turf_decal/arrows/white{
+ dir = 4;
+ pixel_y = -9
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/open/floor/engine/hull/rockplanet,
+/area/ruin/rockplanet/rust_base/mechbay)
+"WR" = (
+/obj/item/stack/ore/salvage/scrapgold{
+ pixel_x = -3;
+ pixel_y = -11
+ },
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xa" = (
+/obj/structure/flora/ash/garden/arid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xc" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/pod,
+/area/ruin/rockplanet/rust_base/tanto2)
+"Xd" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Xe" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"Xf" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/photocopier,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+"Xi" = (
+/obj/item/stack/ore/salvage/scrapmetal/five{
+ pixel_x = -13;
+ pixel_y = 10
+ },
+/turf/open/floor/concrete/pavement/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Xk" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/plating/rust,
+/area/ruin/rockplanet/rust_base/dorms)
+"Xl" = (
+/obj/effect/turf_decal/borderfloor/full,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/ruin/rockplanet/rust_base/hallway)
+"Xn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/engine_two)
+"Xp" = (
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/item/ammo_casing/spent/slug/buck,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"Xq" = (
+/obj/structure/frame/machine,
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway2)
+"XD" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"XF" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/glass/plastitanium,
+/obj/item/shard/plastitanium{
+ pixel_x = 13;
+ pixel_y = 7
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/dorms)
+"XJ" = (
+/obj/structure/reagent_dispensers/beerkeg{
+ pixel_x = -9;
+ pixel_y = -2
+ },
+/obj/structure/reagent_dispensers/beerkeg{
+ pixel_x = 8;
+ pixel_y = 3
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/hallway)
+"XK" = (
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/effect/turf_decal/trimline/opaque/red/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"XL" = (
+/obj/effect/decal/cleanable/blood/drip{
+ pixel_x = 5;
+ pixel_y = 11
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XM" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/machinery/firealarm/directional/south{
+ pixel_x = -7;
+ pixel_y = -32
+ },
+/obj/structure/extinguisher_cabinet/directional/south{
+ pixel_x = 6;
+ pixel_y = -28
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/mechbay)
+"XO" = (
+/obj/item/emptysandbag{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/turf/open/floor/concrete/slab_1/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"XT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/hallway2)
+"Yf" = (
+/obj/structure/window/fulltile,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base)
+"Yk" = (
+/obj/structure/flora/stump{
+ icon_state = "anchored_rod";
+ pixel_y = -3;
+ name = "rod";
+ desc = "A metal rod struck into the ground."
+ },
+/obj/item/clothing/head/helmet/frontier{
+ pixel_x = 0;
+ pixel_y = 25;
+ name = "dented frontiersmen reinforced helmet";
+ desc = "A reinforced Frontiersmen X-11. The front plate has a small window to let the user see. It also has a noticeable bullet-dent on the forehead."
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"Yt" = (
+/obj/effect/turf_decal/corner/transparent/syndiered/border,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"YD" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"YE" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/rockplanet/rust_base)
+"YI" = (
+/obj/effect/turf_decal/borderfloorblack{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base)
+"YL" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"YM" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/south,
+/turf/open/floor/plasteel/tech/techmaint,
+/area/ruin/rockplanet/rust_base/hallway2)
+"YP" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/structure/platform/industrial_alt/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"YU" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/dorms)
+"YV" = (
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 1;
+ layer = 2.040
+ },
+/obj/machinery/button/door{
+ pixel_y = -21;
+ id = "rustarmory";
+ dir = 1
+ },
+/obj/item/ammo_casing/spent/pistol_brass,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway2)
+"YX" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/structure/catwalk/over/plated_catwalk/dark,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/ruin/rockplanet/rust_base/engine_two)
+"Zd" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/corner/transparent/red/diagonal,
+/obj/machinery/reagentgrinder{
+ pixel_x = -6;
+ pixel_y = 14
+ },
+/turf/open/floor/hangar/plasteel/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"Ze" = (
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop1)
+"Zh" = (
+/mob/living/simple_animal/hostile/human/frontier/ranged/officer/internals,
+/obj/machinery/airalarm/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/rockplanet/rust_base)
+"Zj" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/ruin/rockplanet/rust_base/mechbay)
+"Zm" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"Zo" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod2"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop2)
+"Zp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base)
+"Zw" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/rockplanet/rust_base/slop)
+"Zy" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/opaque/syndiered/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/corner/opaque/syndiered/border{
+ dir = 5
+ },
+/turf/open/floor/plasteel/tech,
+/area/ruin/rockplanet/rust_base/bridge)
+"Zz" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/turf/open/floor/engine/hull/reinforced/interior,
+/area/ruin/rockplanet/rust_base/hallway)
+"ZA" = (
+/obj/machinery/atmospherics/components/unary/passive_vent/layer4{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZG" = (
+/obj/effect/decal/cleanable/blood{
+ icon_state = "floor5"
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"ZJ" = (
+/obj/effect/turf_decal/borderfloor{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/opaque/red/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/grid/dark,
+/area/ruin/rockplanet/rust_base/hallway)
+"ZM" = (
+/mob/living/simple_animal/hostile/human/ramzi/ranged/space/shotgun{
+ minimum_distance = 0;
+ retreat_distance = 0
+ },
+/obj/effect/turf_decal/siding/black{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/ruin/rockplanet/rust_base/mechbay)
+"ZS" = (
+/obj/item/ammo_casing/spent/slug/buck,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4;
+ id = "frontiepod3"
+ },
+/turf/open/floor/engine/hull/reinforced/rockplanet,
+/area/ruin/rockplanet/rust_base/drop3)
+"ZX" = (
+/turf/closed/wall,
+/area/ruin/rockplanet/rust_base/drop3)
+"ZZ" = (
+/obj/machinery/suit_storage_unit/inherit,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 8
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/plasteel/tech/grid,
+/area/ruin/rockplanet/rust_base/armory)
+
+(1,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+bo
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
"}
-(3,1,1) = {"
-QE
-cs
-Fk
-Af
-Pt
-TX
-TX
-TX
-MN
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-Qy
+(2,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ND
+ND
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+"}
+(3,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ND
+ND
+ND
+ND
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
"}
(4,1,1) = {"
-QE
-CM
-gw
-hW
-dL
-kt
-sZ
-DA
-MN
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-VK
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Wt
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ND
+ND
+ND
+ND
+ND
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+bo
+ez
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
"}
(5,1,1) = {"
-QE
-VX
-TX
-KX
-hX
-TX
-TX
-TX
-MN
-MN
-aN
-BA
-BA
-aN
-BA
-BA
-aN
-aN
-BA
-BA
-aN
-BA
-BA
-aN
-aN
-Rr
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ND
+ND
+ND
+ND
+ND
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
"}
(6,1,1) = {"
-QE
-cs
-TX
-wF
-tK
-pX
-MN
-MN
-MN
-aN
-aN
-BA
-xx
-IO
-IO
-IO
-IO
-IO
-IO
-Wn
-IO
-oF
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-dD
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ND
+ND
+ND
+ND
+ND
+ND
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
"}
(7,1,1) = {"
-QE
-QE
-QE
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-MN
-MN
-Wc
-MN
-Wc
-MN
-MN
-Wc
-eH
-Wc
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-VK
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ND
+ND
+ND
+ND
+ND
+ez
+ez
+Ib
+Ib
+Ib
+ez
+ez
+ez
+Hd
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
"}
(8,1,1) = {"
-QE
-QE
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-MN
-MN
-Wc
-MN
-Wc
-MN
-MN
-Wc
-eH
-Wc
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Wt
-aN
-aN
-QE
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ND
+ND
+ND
+ND
+ND
+ez
+ez
+ez
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
"}
(9,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-BA
-MN
-MN
-MN
-MN
-MN
-MN
-MN
-eH
-MN
-MN
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ND
+ND
+ND
+ND
+ND
+ND
+ez
+ez
+ez
+Ib
+ez
+ez
+nw
+Pk
+Pk
+nw
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
(10,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-MN
-Qg
-Qg
-Qg
-Qg
-Qg
-BA
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-Fn
-aN
-BA
-BA
-aN
-aN
-Qg
-Qg
-Qg
-Qg
-Qg
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-"}
-(11,1,1) = {"
-aN
-aN
-wj
-aN
-aN
-WV
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+ND
+ND
+ND
+ND
+ND
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+nw
tE
-df
-df
-df
tE
-aN
-aN
-aN
-aN
-aN
-Qg
-Qg
-Qg
-uB
-Jw
-aN
-aN
-dD
-aN
-fj
-Xb
-Xb
-Xb
-fj
-LT
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+nw
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
-(12,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-Df
-Df
-Nl
-Nl
-Kc
-tE
-aN
-aN
-aN
-aN
-mF
-Qg
-Qg
-Qg
-rJ
-aL
-aN
-aN
-aN
-aN
-fj
-vz
-dw
-dw
+(11,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ND
+ND
+ND
+ND
+ND
+ez
+Eo
+ez
+Hd
+ez
+ez
+ez
+nw
Fc
Fc
-aN
-aN
-aN
-aN
-Rr
-aN
-aN
-QE
-QE
+nw
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+"}
+(12,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+yU
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+Eo
+ez
+ez
+ez
+ND
+ND
+ez
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+ez
+nw
+nw
+OI
+fY
+nw
+nw
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+yU
+ez
+kb
+ez
+Ib
+Ib
+Ib
"}
(13,1,1) = {"
-aN
-aN
-aN
-aN
-Qg
-tE
-dd
-XF
-Xm
-to
-tE
-aN
-aN
-aL
-aL
-aL
-eD
-TZ
-TZ
-rY
-aL
-aL
-aL
-aN
-aN
-fj
-gg
-hR
-zX
-Ru
-fj
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+yU
+yU
+yU
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+nw
+Cz
+HR
+ki
+ix
+nw
+ez
+ez
+yU
+yU
+ez
+ez
+ez
+ez
+ez
+ez
+yU
+yU
+yU
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
(14,1,1) = {"
-aN
-aN
-aN
-Qg
-Qg
-tE
-Sp
-ZP
-hY
-ey
-tE
-aN
-Bg
-qj
-Hm
-qj
-II
-pL
-dt
-Lj
-qj
-tc
-qj
-Bg
-aN
-fj
-wu
-Mq
-Nb
-BO
-fj
-Qg
-Qg
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+ez
+bm
+ez
+ez
+ez
+nw
+Dw
+iP
+iP
+uK
+nw
+ez
+ez
+ez
+ez
+ez
+ZX
+VJ
+VJ
+ZX
+ez
+ez
+yU
+yU
+bo
+ez
+ez
+Ib
+Ib
+Ib
"}
(15,1,1) = {"
-aN
-aN
-aN
-Qg
-Qg
-Qh
-ZP
-Br
-Ox
-vB
-tE
-aN
-aL
-rK
-xR
-qj
-bh
-sG
-qW
-CX
-qj
-tS
-Nn
-aL
-aN
-fj
-wn
-Sw
-cI
-dZ
-Cu
-LH
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+ez
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+ez
+ez
+ez
+nw
+Cg
+CJ
+BM
+ix
+nw
+ez
+ez
+ez
+ez
+ez
+ZX
+Rl
+Rl
+ZX
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
(16,1,1) = {"
-aN
-aN
-aN
-Qg
-Qg
-Qh
-OT
-iD
-mP
-vB
-tE
-aN
-aL
-YL
-ZC
-qj
-Dz
-bD
-BE
-bz
-qj
-bw
-mV
-aL
-aN
-fj
-eA
-zg
-Mw
-tG
-cl
-Qg
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-QE
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+bR
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+ez
+ez
+ez
+nw
+FQ
+uX
+uX
+uX
+nw
+ez
+ez
+ez
+ez
+ez
+ZX
+Go
+Go
+ZX
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
"}
(17,1,1) = {"
-aN
-aN
-aN
-Qg
-Qg
-tE
-Df
-mP
-Am
-tE
-tE
-aL
-aL
-qj
-gW
-qj
-vD
-bD
-JI
-ND
-qj
-BZ
-qj
-aL
-aL
-fj
-XA
-pY
-el
-Fc
-fj
-Qg
-Qg
-aN
-aN
-aN
-aN
-Wt
-aN
-aN
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+bR
+bR
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+ez
+ez
+bm
+bP
+Al
+wP
+Xp
+gk
+Xp
+ez
+ez
+HV
+ez
+ZX
+ZX
+vc
+zv
+ZX
+ZX
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
"}
(18,1,1) = {"
-aN
-aN
-aN
-Qg
-Qg
-tE
-ib
-XG
-jh
-Df
-qA
-nG
-os
-Ij
-Ge
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+bR
+bR
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+KV
+ez
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+QS
+Do
+ez
+HV
+HV
+bh
+HV
+HV
+ez
+ZX
+xz
+fh
+cz
+EN
+ZX
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+"}
+(19,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+KV
+ez
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+bm
+ls
+ez
+HV
+ez
+HV
+HV
+ez
+ez
+ZX
+be
+sn
+sn
+ua
+ZX
+Eo
+ez
+Hd
+Hd
+ez
+ez
+ez
+ez
+Ib
+"}
+(20,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+ez
+ez
+KV
+bm
+bm
+ez
ND
-vD
-bD
-Ii
-BE
+ez
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+bm
+bm
+ez
+ez
+KV
+KV
+bm
+bm
+ez
+ez
+HV
+HV
+bh
+An
+ez
+ZX
+Hk
+rz
+zd
+EN
+ZX
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+Ib
+"}
+(21,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+ez
+bm
+bm
+Ux
+bm
+ez
+xZ
+ez
+ez
+bm
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+KV
+KV
+ez
+ez
+ez
+ez
+QH
+XL
+An
+ez
+ZX
+oC
+ZS
+ZS
+ZS
+ZX
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+"}
+(22,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+bR
+bR
+bR
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+bm
+ez
ND
-zt
-Uq
-os
-GQ
-Fc
-nH
-pW
-vY
-rh
-fj
-Qg
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+ez
+bm
+bm
+bm
+bm
+bm
+bm
+ez
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+gT
+St
+Kz
+ZG
+An
+ez
+ez
+Qi
+Qi
+Qi
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(19,1,1) = {"
-aN
-aN
-aN
-aN
-Qg
-tE
-jJ
-GE
-jw
-Df
-ri
-vg
-uO
-OX
-We
-Cz
-HH
-eq
-Tn
-us
-us
-bn
-OX
+(23,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ND
+ez
+ez
+bR
+bR
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+KV
+ez
+ez
+ND
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ez
+bm
+KV
+bm
+ez
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+Iv
+XO
+oa
+ez
+ez
+An
+An
+ez
+go
+oT
+HS
+ez
+ez
+ez
+ez
+Xa
+ez
+ez
+ez
+ez
+ez
+"}
+(24,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ND
+ez
+ez
+bR
+ez
+ez
+Hd
+ez
+ez
+ez
+Bf
+oW
+bm
+ND
+ND
+ND
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ND
+bm
+KV
+bm
+aV
+bm
+bm
+Tj
+bm
+ez
+ez
+ez
+Qc
+jl
+mb
+ez
+ez
+ez
+An
+An
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+"}
+(25,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ND
+ND
+ND
+ND
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+ND
+ND
+ez
+bm
+bm
+bm
+KV
+bm
+bm
+bm
+ND
+bm
+KV
+KV
+bm
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+dX
+VC
+mF
+ez
+zS
+ez
+Ds
+An
+ez
+ez
+ez
+bo
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+"}
+(26,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ND
+ND
+ND
+ND
+ez
+kb
+ez
+ez
+ez
+bm
+bm
+bm
+RV
+RV
+Ck
+bm
+bm
+bm
+KV
+bm
+bm
+bm
+ND
+bm
+bm
+KV
+bm
+bm
+Bf
+bm
+bm
+ez
+ez
+ez
+hd
+Ld
+FA
+ez
+ez
+Fj
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+"}
+(27,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ND
+ND
+ND
+ND
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+RV
+ND
+bm
+bm
+bm
+KV
+KV
+bm
+bm
+bm
+ND
+bm
+bm
+bm
+Bf
+bm
+bm
+oW
+bm
+ez
+ez
+ez
+hd
+Ld
+FA
+ez
+ez
+ez
+HS
+aV
+kb
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+"}
+(28,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ND
+ND
+ND
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+RV
+ez
+bm
+bm
+bm
+KV
+bm
+oW
+bm
+bm
+ez
+bm
+bm
+bm
+bm
+Ux
+bm
+bm
+bm
+ez
+ez
+ez
Ok
-nz
-Fc
-FM
-EA
-Hh
-Ya
-fj
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-dD
-aN
+Ld
+Jn
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Eo
+ez
+ez
+ez
"}
-(20,1,1) = {"
-aN
-aN
-dD
-aN
-Qg
-tE
-Df
-AZ
-qt
-Id
-wc
-ge
-NY
-jI
-nO
-nS
-Ye
-KL
-Sg
-ki
-tO
-ir
-dE
-Uo
-NQ
-wZ
+(29,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ND
+ND
+Hd
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+RV
+ez
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ez
RR
-ca
-Vc
-Fc
+Tp
+Tp
+Tp
+Tp
+sV
+sV
+sV
+Tp
+Da
+Da
+bH
+os
+Ld
+JX
+bH
+Da
+bH
+Ww
+ez
+Hd
+ez
+ez
+Eo
+ez
+Hd
+Xa
+ez
+ez
+ez
+ez
+ez
+ez
+"}
+(30,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ND
+ND
+ez
+ez
+ez
+ez
+bm
+bm
+ez
+ez
+ez
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ez
fj
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+pr
+Wd
+Wd
+Wd
+Wd
+Wd
+Wd
+Wd
+vW
+Wd
+WG
+Wd
+Vi
+vW
+Wd
+SZ
+zM
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
"}
-(21,1,1) = {"
-aN
-Wt
-aN
-aN
-Qg
-HB
-tE
-gH
-Yh
-Yh
-Yh
-cc
-Fv
-qx
-qx
-qx
-KS
-qx
-Ys
-qx
-qx
-qx
-tN
-yw
-xM
-xM
-xM
-xM
-Tv
-Tv
+(31,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ez
+bo
+ez
+ez
+ez
+ez
+bo
+ez
+bm
+Ck
+bm
+ez
+ez
+ez
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ND
+fj
+Rx
+fV
+fV
+fV
+fV
+fV
+fV
+fV
+fV
+ma
+ma
+ma
+fV
+ma
+zn
+Wy
+pU
+FA
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+"}
+(32,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+bm
+bm
+ez
+ez
+bm
+bm
+Tj
+Bf
+Ux
+bm
+bm
+bm
+ND
+Gk
do
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-VK
+Ef
+Ef
+RA
+do
+do
+Ef
+Ef
+do
+do
+do
+Ef
+Ef
+do
+do
+Jh
+FU
+FA
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bo
+ez
+ez
+Ib
"}
-(22,1,1) = {"
-aN
-aN
-aN
-aN
-Qg
-Qg
-Qg
-gH
-LJ
-LJ
-Yh
-bI
-eg
-qx
-BC
-OP
-LZ
-qx
-xq
-sy
-AF
-qx
-vV
-oZ
-xM
-WB
-PH
-WB
-Tv
-Qg
-Qg
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(33,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+KV
+KV
+bm
+ez
+ez
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ND
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+do
+RW
+pU
+mF
+ez
+ez
+bo
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(23,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-Qg
-Qg
-gH
-rq
-Rk
-Yh
-wb
-VN
-qx
-Xs
-jG
-LO
-qx
-wS
-Ri
-yK
-SL
-yz
-uU
-xM
-FO
-vW
-Xu
-Tv
-Qg
-Qg
-aN
-aN
-aN
-aN
-Wt
-aN
-aN
-aN
-aN
+(34,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+kb
+ez
+ez
+ez
+Eo
+ez
+ez
+ez
+KV
+bm
+ez
+ez
+ez
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+tW
+bm
+bm
+Bf
+KV
+KV
+bm
+bm
+bm
+ez
+ez
+yU
+yU
+ez
+ez
+ez
+gj
+RW
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
"}
-(24,1,1) = {"
-aN
-aN
-aN
-aN
-Rr
-Qg
-Qg
-gH
-eR
-mB
-vO
-Lf
-eh
-qx
-Rw
-OG
-NK
-qx
-Mr
-iq
-IU
-SL
-Or
-yw
-xM
-zF
-yX
-aq
-Tv
-Qg
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
+(35,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+bm
+KV
+bm
+ez
+ez
+xH
+bm
+bm
+bm
+bm
+bm
+Bf
+KV
+bm
+bm
+bm
+bm
+KV
+KV
+bm
+tW
+Ck
+bm
+ez
+ez
+yU
+yU
+yU
+ez
+ez
+gj
+RW
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+kb
+ez
+ez
+Ib
+Ib
"}
-(25,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-Qg
-Qg
-gH
-er
-me
-Yh
-tg
-Or
-qx
-Gm
-Gm
-Ga
-LY
-Eo
-Qq
-Tr
-SL
-tN
-FX
-lm
-xc
-Rs
-UR
-Tv
-Qg
-Qg
-aN
-aN
-aN
-MN
-PR
-aN
-aN
-aN
-QE
+(36,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+vl
+bm
+bm
+bm
+ez
+ez
+ez
+bm
+bm
+bm
+oW
+bm
+bm
+KV
+Ux
+bm
+bm
+bm
+KV
+bm
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+yU
+yU
+yU
+ez
+do
+RW
+pU
+FA
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
"}
-(26,1,1) = {"
-QE
-QE
-QE
-Wt
-aN
-aN
-Qg
-rn
-WS
-WS
-WS
-jf
-WS
-qx
-mA
-AF
-AF
-zR
-AF
-BM
-AF
-qx
-gh
-yw
-xM
-Ax
-fU
-Vw
-Tv
-Qg
-aN
-Rr
-aN
-aN
-MN
-aN
-aN
-aN
-QE
-QE
+(37,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+bm
+bm
+bm
+uw
+Cx
+ez
+ez
+bm
+Ck
+bm
+bm
+bm
+bm
+KV
+Tj
+bm
+bm
+bm
+bm
+bm
+pb
+pp
+wL
+kO
+ez
+ez
+ez
+yU
+yU
+yU
+do
+do
+RW
+pU
+FA
+ez
+ez
+Xa
+ez
+ez
+Eo
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
-(27,1,1) = {"
-QE
-QE
-QE
-QE
-aN
-aN
-Qg
-rn
-Jd
-Oi
-gF
-CQ
-Bz
-qx
-Nr
-AM
-qq
-LY
-qu
-yK
-AF
-qx
+(38,1,1) = {"
+ez
+ez
+ez
+ez
+aV
+ez
+ez
+ez
+ez
+ez
+ez
+WR
+yh
+BP
jq
-zH
-xM
-PM
-wY
-aZ
-Tv
-Qg
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+jq
+BP
+KV
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+Kl
+bm
+bm
+bm
+mP
+Le
+HO
+mP
+HM
+RS
+Lu
+ez
+ez
+yU
+yU
+ny
+ny
+pr
+nl
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
"}
-(28,1,1) = {"
-QE
-QE
-QE
-QE
-aN
-aN
-rn
-rn
-pz
-tI
-FY
-io
-OF
-kH
-kH
-kH
-kH
-kH
-qx
-SL
-qx
-qx
+(39,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+BP
Or
-yw
-xM
-xM
-xM
-xM
-Tv
-Tv
-aN
-aN
-aN
-aN
-aN
-aN
-dD
-aN
-QE
-QE
+vi
+BP
+kr
+Tx
+BP
+KV
+KV
+KV
+bm
+jV
+bm
+uG
+bm
+bm
+bm
+bm
+bm
+mP
+sK
+BJ
+mP
+Le
+HO
+af
+ez
+ez
+ez
+iA
+ny
+Ag
+Rx
+nr
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+aV
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
"}
-(29,1,1) = {"
-QE
-QE
-QE
-aN
-aN
-aN
-rn
-WS
-lL
-JZ
-rx
-GF
-Hp
-kH
-TJ
-Hg
-CY
-kH
-mz
-kn
-yG
-Iz
-Xn
-qm
-mE
-MW
-OX
-rR
-qj
-aL
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+(40,1,1) = {"
+ez
+bo
+ez
+ez
+ez
+aV
+ez
+ez
+ez
+ez
+QA
+cN
+zF
+BP
+ew
+UD
+sf
+KV
+KV
+Dr
+zi
+DB
+aj
+Jd
+XF
+lw
+sF
+bm
+bm
+af
+vu
+Hx
+mP
+sh
+FE
+yp
+ez
+ez
+ez
+Oh
+Bl
+Bl
+Oh
+bi
+dk
+aM
+ez
+ez
+kb
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+"}
+(41,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+bR
+ez
+ez
+aG
+BP
+tP
+uu
+vr
+AB
+KZ
+lw
+bs
+lw
+lw
+zi
+Vl
+TF
+kK
+xg
+lw
+zi
+zi
+wu
+zi
+kk
+BK
+it
+YX
+vu
+af
+Rw
+ez
+ez
+Oh
+NY
+Ho
+Oh
+eZ
+eZ
+fT
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
"}
-(30,1,1) = {"
-QE
-aN
-aN
-aN
-aN
-rn
-rn
-qI
-ML
-FZ
-ew
-CI
-tk
-kH
-XJ
-ne
-Ff
-kH
-nM
-pn
-PQ
-Li
-ND
-ND
+(42,1,1) = {"
+ez
+ez
+ez
+ez
+bR
+bR
+bR
+ez
+ez
+kx
+BP
+IU
+dW
+Ew
+lR
+uf
+lw
+sF
+sF
+lw
+fK
+hS
+TI
+jW
+eY
+Wq
+zi
+sF
+sF
+zi
+eG
+wB
+qc
+rR
+tz
+af
+Ak
+ez
+ez
+Oh
+iE
+ce
+Oh
+Pf
+Fz
+Oh
ND
-CA
-Ct
-PV
-bo
-aL
-aL
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
"}
-(31,1,1) = {"
-aN
-aN
-VK
-aN
-aN
-rn
-rn
-nW
-fp
+(43,1,1) = {"
+ez
+ez
+ez
+bR
+bR
+bR
+bR
+bR
+ez
+kx
+BP
+Fq
+Di
+ye
+qv
+Qq
+lw
+lw
+lw
+lw
+rP
+vL
+vF
+zW
+vL
+qD
+zi
+IP
+zi
+zi
+zi
+iw
+fg
+ip
+rw
+af
+Ak
+ez
+Oh
+Oh
+fl
+bQ
+Oh
+tR
+Ry
+Oh
+ez
+ez
+ez
+ez
+ZA
+ez
+ez
+ez
+PO
+PO
+Ib
+Ib
+Ib
+Ib
+"}
+(44,1,1) = {"
+ez
+ez
+ez
+bR
+bR
+bR
+ez
+ez
+ez
+kx
+BP
+zA
+qa
+rA
+yl
+vy
+zi
+Nm
+JC
+qr
+hh
+yN
+Pd
+hh
+ch
+PH
+zi
+iU
+eY
+cm
+zi
+lP
+aw
+Xn
+ak
+af
+Ak
+Oh
+Oh
+np
+qA
+dT
+Oh
+FZ
+is
+Oh
+Oh
+fl
+fl
+Oh
+hJ
+NI
+Oh
+PO
+PO
+PO
+PO
+Ib
+Ib
+Ib
+"}
+(45,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+kx
+BP
+Fv
+zK
+TJ
+qI
+cW
+zi
MD
-Xa
-Lp
-WS
-kH
-kH
-YJ
-kH
-kH
-kH
-vZ
-kH
-kH
-kH
-sb
-aJ
-wB
-ri
-ND
-De
-aL
-aL
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
+ol
+zi
+YU
+ED
+kf
+og
+Eb
+pm
+rq
+rO
+Xk
+RG
+zi
+EM
+eW
+WJ
+tC
+af
+Ak
+Oh
+pC
+YI
+YI
+IG
+Oh
+tR
+Vq
+Zh
+Oh
+aK
+mA
+Oh
+JN
+Ho
+Oh
+PO
+PO
+PO
+PO
+PO
+Ib
+Ib
"}
-(32,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-rn
-rn
-rn
-Da
-Da
+(46,1,1) = {"
+ez
+ez
+bo
+ez
+ez
+ez
+ez
+ez
+ez
+bY
+Vo
+Vo
+Vo
+Vo
+Vo
+qK
+zi
+zi
+zi
+zi
+zi
+zi
+Gs
+zi
+zi
+zi
+zi
+zi
+zi
+zi
+zi
+af
+af
+Nc
+af
+af
+RP
+Oh
+nK
+aB
+rZ
+Ea
+Jf
+zZ
+HI
+nQ
+Zp
+yK
+yK
+rX
+gb
+Ag
+Oh
+PO
+PO
+PO
+PO
+PO
+Ib
+Ib
+"}
+(47,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Vo
+UE
+JQ
+tY
+Vo
+ts
+Dj
+Dj
+YL
+dZ
+xf
+Cj
+ZJ
+tv
+sQ
+wK
+dG
+fu
+GW
+wA
+xI
+kA
+af
+Ti
+IV
+af
+bm
+Oh
+TH
+lc
de
-WS
-WS
-Hu
-jj
-aH
-Hv
-uQ
-JV
-xm
+JJ
+Oh
+tR
+Th
+HJ
+Oh
+sB
+BF
+Oh
+ni
+Ho
+Oh
+PO
+PO
+PO
+PO
+PO
+Ib
+Ib
+"}
+(48,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
aV
-FA
+ez
+ez
+ez
+ez
+Vo
+bT
+ek
+As
+KI
+KA
+ea
+Ll
+Ll
+WL
+av
+fc
+Np
+cj
+OT
+oA
+gG
+tM
+gG
+CG
+Pc
+tL
+qL
+ON
+VV
+af
+bm
+Oh
+Oh
+hA
+pa
+Ci
+Oh
+eZ
+On
+Oh
+Oh
+fl
+fl
+Oh
+hJ
+NI
+Oh
+PO
+PO
+PO
+PO
+Ib
+Ib
+Ib
+"}
+(49,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Vo
+Vo
+Vo
+Vo
+jP
+Tl
+Vo
+Wx
+xd
+WI
+fF
+Fb
+fE
+hW
+hW
+hW
+hW
+hW
+hW
+hW
+VM
+Vo
+af
+mP
+mP
+af
+bm
+ez
+Oh
+Oh
+fl
+mk
+Oh
+tR
+qF
+Oh
+ez
+xH
+ez
+ez
+Vw
+ez
+PO
+PO
+PO
+PO
+PO
+Ib
+Ib
+Ib
+"}
+(50,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+ez
+bm
+lE
+BG
+ym
+zt
+dR
+dR
+dR
+dR
+dR
+sD
+dR
+dR
+wo
+wo
+VH
+oB
+aD
+hW
IR
-qC
-qC
-ah
-Xh
-Xh
-MP
-MP
-MP
-aN
-aN
-aN
-Wt
-aN
-QE
-QE
-QE
-QE
+CY
+Xe
+ij
+bm
+bm
+ez
+ez
+ez
+Oh
+Vh
+sH
+Oh
+sC
+YD
+Oh
+ez
+ez
+ez
+Xa
+ez
+ez
+ez
+ez
+PO
+PO
+Ib
+Ib
+Ib
+Ib
"}
-(33,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-rn
-rn
-qa
-gQ
-gQ
-Be
-XH
-BX
-CF
-Rv
-cB
-jD
-Bh
-RA
-xA
-tm
-pi
-zQ
-qT
-Yw
-lO
-Ek
-Ek
-Ov
-MP
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+(51,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+Hd
+ez
+ez
+bm
+bm
+lE
+ra
+gE
+ql
+dR
+kv
+NZ
+LQ
+fO
+KT
+mv
+dR
+pM
+pM
+pY
+Uw
+Fp
+Nr
+gO
+CY
+IM
+Vo
+bm
+bm
+ez
+ez
+ez
+Oh
+LM
+pP
+Lk
+FZ
+Jz
+TR
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+PO
+PO
+Ib
+Ib
+Ib
+Ib
"}
-(34,1,1) = {"
-aN
-aN
-aN
-Wt
-aN
-rn
-rn
-Qe
-LA
-tk
-Rp
-DB
-lW
-ZX
-Hc
-AS
-vd
-DO
-dF
-fM
-AS
+(52,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+MX
+MX
+Xq
+lE
+iv
+iC
+ql
+dR
+KX
Im
-oW
-rD
-ms
-Kr
-MB
-Gn
-IA
-MP
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
+TE
+Mi
+AU
+iQ
+dR
+ph
+li
+Nh
+bK
+Tv
+kT
+kp
+Xl
+hq
+Vo
+lD
+lD
+Vo
+ez
+qb
+Oh
+vJ
+vJ
+Oh
+zJ
+Sw
+UB
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+PO
+Ib
+Ib
+Ib
+Ib
+Ib
"}
-(35,1,1) = {"
-aN
-Wt
-aN
-aN
-aN
-aN
-rn
-CJ
-OE
-tk
-ws
-tb
-BX
-bC
-Hc
-UH
-lt
-Bs
-Bs
-mS
-UH
-Im
-US
-mh
-Qc
-dM
-nJ
-vH
-NF
-MP
-aN
-aN
-aN
-aN
-aN
-Rr
-aN
-aN
-QE
-QE
+(53,1,1) = {"
+Ib
+Ib
+ez
+ez
+bo
+ez
+ez
+ez
+ez
+LH
+kt
+rc
+lE
+gf
+sO
+Sl
+dR
+sa
+tf
+Zw
+Zw
+fp
+dN
+dR
+xc
+HL
+IW
+tS
+KJ
+hW
+as
+PM
+oN
+Vo
+nb
+Fk
+Vo
+ez
+hd
+Wh
+Ag
+Ag
+pr
+nl
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
"}
-(36,1,1) = {"
-aN
-aN
-aN
-Rr
-aN
-aN
-rn
-Ww
-OE
-Ux
-jy
-OQ
-WS
-YA
-UH
-UH
-rN
-RC
-Zm
-WK
-UH
-UH
-YA
-qC
-bf
-Dm
-wG
-vH
-DI
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Wt
-aN
-QE
+(54,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+RD
+ez
+LH
+TV
+GT
+lE
+LA
+zf
+po
+dR
+FC
+Aw
+rC
+iK
+qX
+Jl
+dR
+vI
+bz
+es
+es
+PJ
+hW
+XK
+bM
+Qk
+Vo
+mM
+EF
+Vo
+ez
+KC
+BH
+Ag
+Ag
+Rx
+nr
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+bR
+bR
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+"}
+(55,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+NN
+TV
+Ju
+qh
+jj
+Pi
+rY
+dR
+SW
+Zd
+BS
+fs
+dR
+vB
+dR
+pf
+nB
+nB
+gy
+hW
+hW
+Oe
+PG
+vU
+eM
+Zz
+aW
+Vo
+ez
+ez
+KC
+AN
+do
+do
+RW
+pU
+FA
+ez
+ez
+ez
+bR
+bR
+bR
+bR
+bR
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+"}
+(56,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+lE
+lE
+cg
+lE
+Kw
+DE
+rv
+dR
+BS
+Gh
+gX
+fs
+dR
+QN
+dR
+BQ
+Br
+fB
+yb
+Xf
+hW
+lh
+Ow
+Sb
+xL
+Vj
+Vo
+Vo
+ez
+ez
+yU
+ez
+ez
+do
+RW
+pU
+FA
+ez
+bR
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+"}
+(57,1,1) = {"
+ez
+ez
+ez
+ez
+aV
+ez
+ez
+ez
+ez
+lE
+MX
+MX
+lE
+iZ
+qH
+YV
+dR
+Mz
+rW
+VY
+ro
+dR
+gv
+dR
+MJ
+RU
+ZZ
+MR
+PD
+hW
+xM
+pe
+Xe
+Vo
+GJ
+GJ
+Bh
+ez
+ez
+yU
+yU
+yU
+do
+RW
+pU
+FA
+ez
+ez
+ez
+bR
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+"}
+(58,1,1) = {"
+ez
+bo
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+lE
+Ml
+BL
+lE
+ya
+ya
+dt
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+dR
+lE
+lE
+lE
+lE
+lE
+NF
+hk
+PE
+PE
+Vo
+iV
+XJ
+Vo
+ez
+yU
+yU
+yU
+yU
+gj
+RW
+pU
+mF
+ez
+ez
+aV
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
"}
-(37,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-Nx
-rn
-KU
-Jl
-kl
-VZ
-Dr
-rn
-aN
-Bs
-TL
-cN
-jQ
-Az
-Wj
-yY
-Bs
-aN
-MP
-Ek
-gM
-Pg
-lg
-Qx
-MP
-Pv
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
+(59,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+lE
+lE
+lE
+lE
+yB
+CC
+MO
+Ja
+Cs
+ml
+gn
+ml
+ml
+pi
+lQ
+Ps
+dJ
+VW
+dJ
+TQ
+gK
+he
+xx
+Hb
+NF
+NF
+NF
+NF
+ez
+yU
+yU
+yU
+yU
+gj
+RW
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+kb
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
-(38,1,1) = {"
-aN
-aN
-QE
-QE
-aN
-rn
-WS
-nK
-TP
-yJ
-SM
-Ei
-rn
-aN
-Bs
-Tc
+(60,1,1) = {"
+ez
+ez
+ez
+bR
+bR
+ez
+aV
+ez
+RD
+lE
+lE
+zx
+Wc
+ML
+Ns
+rN
+Ja
+rr
+VS
+Cn
+MH
+Vg
+Vg
+jt
+vZ
+bD
+nD
Gb
-BN
-od
-YY
-Vq
-Bs
-aN
-MP
-kG
-HX
-lD
-nx
-JD
-qC
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+zC
+Iu
+KD
+iz
+vh
+nX
+WK
+NF
+NF
+ez
+yU
+yU
+yU
+yU
+do
+RW
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
-(39,1,1) = {"
-QE
-QE
-QE
-QE
-aN
-rn
-Nw
-qP
+(61,1,1) = {"
+ez
+ez
+bR
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+lE
+Sg
+Vu
+oh
+Oi
+lT
+lE
+tT
+tT
+tT
+tT
+mT
+NH
+aO
+fW
+Zj
+Zj
+Zj
+Zj
+NF
+wp
+gq
+ZM
+Xd
+an
+NF
+ez
+ez
+yU
+yU
+yU
+yU
+do
+RW
+pU
+FA
+ez
+bo
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+"}
+(62,1,1) = {"
+ez
+ez
+bR
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+zT
Wl
-EU
-ZL
-oN
-rn
-aN
-kE
-vR
-au
-av
-aK
-ke
-eM
-kE
-aN
-MP
-OJ
-Gg
-ad
-Jx
-jP
-QS
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+Vu
+oh
+cL
+jC
+xU
+NX
+Vu
+NB
+QI
+QI
+QI
+FD
+QI
+Zj
+vA
+Yt
+bj
+bX
+he
+gq
+Sv
+Yt
+SC
+NF
+ez
+yU
+yU
+yU
+yU
+ez
+do
+RW
+pU
+FA
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
"}
-(40,1,1) = {"
-QE
-QE
-QE
-aN
-aN
-rn
-tk
-Bj
-TN
+(63,1,1) = {"
+Ib
+bR
+bR
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+zT
+Pa
+Vu
+ci
+cL
+mw
+ps
+gJ
+Vu
+xj
+zl
+DM
+HP
+Jj
+iD
+NF
+Bu
+Xd
+bj
+bX
+fR
+NU
+Sv
+Yt
+yd
+NF
+ez
+yU
+yU
+yU
+yU
+ez
+gj
+RW
+pU
+FA
+ez
+ez
+ez
Ey
-Co
-Pl
-rn
-aN
-Bs
-JF
-YK
-Vh
-qe
-cF
-JF
-Bs
-aN
-MP
-iz
-bE
-hL
-gT
-eZ
-Jq
-MP
-aN
-aN
-aN
-Wt
-aN
-aN
-aN
-aN
-aN
+VL
+VL
+VL
+Hc
+Ey
+ez
+ez
+Ib
+Ib
+Ib
"}
-(41,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-rn
-Ze
-kz
-oC
-gu
-pD
-SW
-rn
-aN
-aN
-kE
-Hk
-ql
-IF
-Pe
-kE
-aN
-aN
-MP
-oX
-Sf
-Bo
-UE
-zn
-Vv
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(64,1,1) = {"
+Ib
+bR
+bR
+bR
+bR
+ez
+ez
+ez
+ez
+kb
+zT
+wJ
+AE
+Cp
+xQ
+XT
+Nl
+zT
+zT
+zT
+zl
+dF
+hI
+jU
+ae
+NF
+NF
+Zj
+Zj
+Ff
+he
+gq
+bx
+nU
+XM
+NF
+ez
+yU
+yU
+yU
+ez
+ez
+gj
+RW
+pU
+mF
+bo
+ez
+ez
+Ey
+JO
+lZ
+zP
+JW
+Ey
+ez
+bo
+Ib
+Ib
+Ib
"}
-(42,1,1) = {"
-aN
-Wt
-aN
-aN
-aN
-rn
-RN
-Pm
-Vx
-tk
-pD
-WW
-rn
-aN
-aN
-Bs
-mp
-mp
-mp
-mp
-Bs
-aN
-aN
-MP
-NP
-dh
-SV
-Sy
-es
-go
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(65,1,1) = {"
+Ib
+bR
+bR
+ez
+ez
+ez
+aV
+ez
+ez
+ez
+lE
+bJ
+SH
+NM
+NL
+qy
+cG
+zT
+zT
+VX
+Rf
+Ee
+Zy
+tD
+nR
+zl
+VX
+NF
+Zj
+Od
+hf
+Gx
+gI
+Af
+QX
+NF
+ez
+yU
+yU
+yU
+yU
+ez
+do
+RW
+pU
+mF
+ez
+ez
+ez
+Ey
+vt
+le
+le
+Iz
+Ey
+ez
+ez
+ez
+Ib
+Ib
"}
-(43,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-rn
-oH
-Pm
-tk
-tk
-pD
-HU
-rn
-aN
-aN
-bj
-aN
-aN
-aN
-aN
-GP
-aN
-aN
-MP
-mR
-ev
-nL
-UE
-zn
-GY
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(66,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+lE
+lE
+AZ
+QZ
+YP
+lL
+Mf
+rQ
+zT
+VX
+Rf
+Rf
+Bo
+lB
+Rf
+Rf
+VX
+NF
+oi
+pj
+Gp
+DY
+fP
+Qd
+NF
+NF
+ez
+ez
+yU
+yU
+yU
+ez
+do
+RW
+pU
+mF
+ez
+ez
+ez
+Ey
+JO
+za
+AT
+pO
+Ey
+ez
+ez
+ez
+Ib
+Ib
"}
-(44,1,1) = {"
-aN
-aN
-aN
-Rr
-aN
-rn
-ZO
-Pm
-tk
+(67,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+QV
+lE
+JE
+SQ
+rB
+ge
+Mf
+rQ
+zT
+VX
+VX
+Oc
+Ms
+jp
+hF
+VX
+VX
+NF
+kU
+pj
+zw
+NT
+cq
+ef
+NF
+RZ
+ez
+ez
+yU
+yU
+yU
+yU
+do
+RW
+pU
+FA
+ez
+ez
+ez
+Ey
+Ey
+gF
+AG
Ey
-mG
-JG
-rn
-aN
-rH
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-MP
-UJ
-QJ
-SV
-WL
-Xq
-Vv
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-Wt
-aN
-aN
+Ey
+ez
+ez
+ez
+Ib
+Ib
"}
-(45,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-rn
-tk
-ON
-ou
-Kf
-mG
-Vg
-rn
-aN
-aN
-aN
-aN
-aN
-aN
-Rr
-aN
-aN
-aN
-MP
-UJ
-QJ
-DF
-DZ
-NV
-md
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(68,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+MX
+lE
+eu
+EP
+nY
+mI
+jv
+zV
+lE
+VX
+VX
+Rf
+Ha
+Ha
+zl
+VX
+fS
+NF
+uH
+pj
+zw
+We
+cq
+Ej
+NF
+uV
+ez
+ez
+ez
+yU
+yU
+yU
+gj
+RW
+pU
+FA
+ez
+ez
+ez
+ez
+Ey
+Ze
+Ze
+Ey
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(46,1,1) = {"
-aN
-VK
-aN
-aN
-aN
-rn
-kU
-Pm
-TN
+(69,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+xH
+ez
+ez
+ez
+AH
+lE
+PO
+pA
+jX
+Lq
+Ov
+YM
+lE
+VX
+fS
+Hh
+SB
+SB
+oV
+VX
+fS
+NF
+nM
+pj
+TK
+Be
+cq
+TT
+NF
+Uv
+ez
+ez
+ez
+yU
+yU
+ez
+gj
+RW
+pU
+FA
+ez
+bo
+ez
+ez
Ey
-bA
-Ed
-rn
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-MP
-St
-QJ
-Xc
-WL
-Xq
-sC
-MP
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+LF
+LF
+Ey
+ez
+Hd
+ez
+ez
+ez
+Ib
"}
-(47,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-rn
-WS
-ky
-ky
-ky
-dv
-WS
-rn
-aN
-aN
-dD
-aN
-DV
-MN
-GG
-aN
-aN
-aN
-MP
-qC
-iM
-nu
-EV
-sm
-qC
-MP
-aN
-aN
-aN
-aN
-VK
-aN
-aN
-aN
-aN
+(70,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+bo
+ez
+ez
+PO
+lE
+PO
+PO
+Vp
+Ro
+dK
+Ne
+lE
+VX
+fS
+fS
+fS
+fS
+fS
+VX
+fS
+NF
+gS
+im
+Nt
+Uq
+cq
+TT
+NF
+ez
+ez
+ez
+ez
+yU
+ez
+ez
+do
+RW
+pU
+mF
+ez
+ez
+ez
+ez
+Ey
+wW
+wW
+Ey
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(48,1,1) = {"
-aN
-aN
-aN
-aN
-ST
-RD
-iQ
-CP
-qN
-JL
-Ss
-iQ
-RD
-aN
-aN
-aN
-aN
-GG
-Cf
-GG
-aN
-aN
-MN
-kO
-Cd
-oL
-UG
-MG
-CK
-Cd
-kO
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(71,1,1) = {"
+Ib
+Ib
+ez
+aV
+ez
+ez
+ez
+ez
+ez
+PO
+PO
+lE
+PO
+PO
+Vp
+PO
+tI
+rQ
+lE
+VX
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+NF
+gS
+Iw
+Lf
+VZ
+Qx
+Ej
+vo
+ez
+ez
+ez
+ez
+ez
+qb
+do
+do
+RW
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
"}
-(49,1,1) = {"
-aN
-dD
-aN
-aN
-MN
-MN
-MN
-Et
-qN
-JL
-KP
-AE
-MN
-aN
-aN
-aN
-aN
-DV
-MN
-GG
-aN
-aN
-MN
-MN
-MN
-nq
-UG
-MG
-nq
-BL
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-VK
-aN
+(72,1,1) = {"
+Ib
+ez
+ez
+yU
+yU
+ez
+ez
+ez
+PO
+PO
+PO
+PO
+PO
+PO
+Vp
+PO
+NG
+zT
+lE
+fS
+fS
+fS
+fS
+Jw
+fS
+fS
+fS
+NF
+NF
+cQ
+wD
+iL
+Qx
+NC
+vo
+ez
+ez
+ez
+ez
+ez
+XD
+pr
+Wd
+nl
+pU
+mF
+ez
+ez
+ez
+ez
+ez
+ND
+ND
+ND
+ND
+aV
+ez
+ez
+ez
+ez
"}
-(50,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-MN
-Wc
-CP
-ph
-JL
-Wa
-Wc
-MN
-aN
-aN
-aN
-aN
-GG
-MN
-GG
-aN
-dD
-aN
-MN
-Wc
-VM
-jp
-MG
-oL
-Wc
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(73,1,1) = {"
+ez
+ez
+yU
+yU
+yU
+ez
+ez
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+Vp
+PO
+Mf
+zT
+zT
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+NF
+NF
+pE
+Qe
+VZ
+Qx
+To
+vo
+ez
+ez
+ez
+ez
+Jw
+XD
+Rx
+fV
+fV
+ax
+FA
+ez
+ez
+bo
+ez
+ez
+ND
+ND
+ND
+ND
+ez
+ez
+kb
+ez
+ez
+"}
+(74,1,1) = {"
+ez
+ez
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+BO
+hY
+zT
+zT
+fS
+fS
+fS
+Hg
+fS
+fS
+fS
+fS
+NF
+NF
+gi
+Qe
+WH
+cq
+NF
+NF
+fS
+fS
+fS
+fS
+fS
+pl
+Oh
+Oh
+Oh
+Oh
+kQ
+ez
+ez
+ez
+ez
+ez
+ND
+ND
+ND
+ez
+ez
+ez
+ez
+ez
+ez
+"}
+(75,1,1) = {"
+ez
+ez
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+jf
+jf
+zT
+zT
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+NF
+Zj
+ih
+LD
+bd
+Zj
+NF
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Oh
+Oh
+Oh
+ez
+ez
+ez
+ND
+ND
+ND
+ND
+ez
+bo
+ez
+ez
+ez
+ez
+ez
"}
-(51,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-aN
-Wc
-Wc
-zm
-zm
-Wc
-Wc
-aN
-aN
-aN
-aN
-aN
-GG
-MN
-GG
-aN
-aN
-aN
-aN
-Wc
-Wc
-SA
-SA
-Wc
-Wc
-aN
-aN
-aN
-aN
-aN
-aN
-BA
-BA
-aN
-aN
+(76,1,1) = {"
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+Fm
+Lm
+AH
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Uv
+Zj
+Rm
+WO
+lG
+NF
+Kk
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Oh
+Oh
+My
+ez
+ez
+ez
+ND
+ND
+ND
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
"}
-(52,1,1) = {"
-aN
-Uu
-Uu
-Uu
-aN
-VK
-aN
-MN
-MN
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-GG
-MN
-GG
-aN
-aN
-aN
-aN
-aN
-MN
-MN
-MN
-MN
-aN
-aN
-aN
-aN
-Uu
-Uu
-Uu
-aN
-BA
-aN
-aN
+(77,1,1) = {"
+ez
+yU
+yU
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+fS
+fS
+Jw
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Oh
+My
+Vz
+ez
+ez
+ez
+ND
+ND
+ND
+ez
+bo
+ez
+ez
+Hd
+ez
+ez
+ez
"}
-(53,1,1) = {"
-aN
-Uu
-Mu
-SB
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-VK
-aN
-rH
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Uu
-Xy
-ru
-Gz
-aN
-aN
-aN
+(78,1,1) = {"
+ez
+yU
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+on
+on
+on
+on
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Jw
+fS
+fS
+ny
+fS
+fS
+nH
+nH
+fS
+fS
+fS
+fS
+fS
+fS
+My
+fS
+ez
+ez
+ez
+ND
+ez
+ND
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
"}
-(54,1,1) = {"
-aN
-Uu
-Uu
-Uu
-aN
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-MN
-MN
-MN
-aN
-aN
-aN
-BA
-aN
-Uu
-Uu
-Uu
-aN
-BA
-aN
-aN
+(79,1,1) = {"
+ez
+ez
+yU
+yU
+yU
+yU
+ez
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+fS
+fS
+on
+on
+on
+on
+fS
+fS
+on
+on
+on
+fS
+fS
+fS
+fS
+fS
+ny
+ny
+ny
+on
+on
+nH
+on
+fS
+Jw
+fS
+Tt
+db
+VA
+db
+HS
+ez
+ez
+ND
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(55,1,1) = {"
-aN
-aN
-aN
-aN
-BA
-BA
-aN
-aN
-aN
-aN
-aN
-BA
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-BA
-BA
-aN
-MN
-PR
-MN
-aN
-Rr
-aN
-aN
-BA
-BA
-aN
-aN
-aN
-BA
-BA
-aN
-aN
+(80,1,1) = {"
+ez
+ez
+yU
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+on
+on
+on
+fS
+fS
+ny
+ny
+ny
+fS
+on
+on
+nH
+on
+fS
+fS
+fS
+fS
+tq
+Xi
+fS
+ez
+ez
+ez
+ez
+ez
+xi
+yg
+yg
+yg
+Zo
+xi
+ez
+ez
+Ib
"}
-(56,1,1) = {"
-aN
-wj
-aN
-aN
-aN
-aN
-aN
-aN
-VK
-aN
-aN
-BA
-MN
-MN
-kM
-MN
-MN
-MN
-MN
-MN
-MN
-MN
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
+(81,1,1) = {"
+ez
+ez
+ez
+yU
+yU
+yU
+yU
+PO
+PO
+PO
+on
+PO
+PO
+fS
+PO
+fS
+Jw
+fS
+fS
+Ag
+Ag
+Ag
+Sq
+Ag
+fS
+fS
+fS
+on
+on
+on
+on
+ny
+ny
+ny
+ka
+fS
+fS
+on
+on
+fS
+fS
+fS
+fS
+fS
+jn
+fS
+Wa
+oT
+oT
+HS
+ez
+xi
+la
+az
+Gj
+Sp
+xi
+ez
+ez
+Ib
"}
-(57,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-MN
-MN
-Wc
-MN
-Wc
-MN
-MN
-Wc
-MN
-Wc
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
+(82,1,1) = {"
+ez
+bo
+ez
+yU
+yU
+yU
+PO
+PO
+PO
+PO
+on
+on
+PO
+fS
+fS
+ny
+fS
+fS
+Oh
+Oh
+Ag
+Ag
+Ag
+Oh
+Oh
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+ny
+ny
+ny
+fS
+fS
+nH
+on
+fS
+fS
+fS
+fS
+fS
+My
+fS
+ez
+ez
+ez
+ez
+ez
+xi
+hw
+tU
+tU
+Ev
+xi
+ez
+Ib
+Ib
+"}
+(83,1,1) = {"
+ez
+ez
+ez
+yU
+yU
+yU
+yU
+PO
+PO
+fS
+on
+on
+fS
+fS
+ny
+ny
+ny
+fS
+Yf
+IX
+VX
+VX
+VX
+OU
+Yf
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+ny
+ny
+ny
+fS
+ai
+nH
+fS
+fS
+fS
+fS
+fS
+fS
+Oh
+fS
+ez
+ez
+ez
+aV
+ez
+xi
+la
+Zm
+VB
+xB
+xi
+ez
+Ib
+Ib
+"}
+(84,1,1) = {"
+ez
+ez
+ez
+ez
+yU
+yU
+yU
+ez
+PO
+fS
+nH
+on
+ny
+ny
+ny
+ny
+ny
+fS
+Yf
+IX
+VX
+VX
+VX
+OU
+Yf
+fS
+fS
+fS
+fS
+fS
+fS
+Hg
+ny
+ny
+BZ
+fS
+nH
+nH
+fS
+fS
+Jw
+fS
+fS
+Oh
+Oh
+Oh
+ez
+ez
+ez
+ez
+ez
+xi
+xi
+qz
+va
+xi
+xi
+ez
+Ib
+Ib
+"}
+(85,1,1) = {"
+ez
+ez
+ez
+ez
+yU
+yU
+ez
+ez
+fS
+fS
+nH
+on
+ny
+ny
+ny
+ny
+fS
+fS
+Yf
+eA
+VX
+eQ
+VX
+eA
+Yf
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+ny
+ny
+ka
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Oh
+Oh
+Oh
+ez
+ez
+ez
+ez
+ez
+ez
+xi
+Gq
+Gq
+xi
+ez
+ez
+Ib
+Ib
+"}
+(86,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+fS
+fS
+YE
+nH
+ny
+ny
+ny
+ny
+fS
+fS
+Yf
+eA
+VX
+uN
+VX
+eA
+Yf
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+fS
+Oh
+Oh
+Oh
+ez
+ez
+ez
+ez
+ez
+ez
+xi
+tr
+tr
+xi
+ez
+ez
+Ib
+Ib
+"}
+(87,1,1) = {"
+ez
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+fS
+fS
+fS
+fS
+fS
+ny
+ny
+ny
+fS
+fS
+Yf
+Lw
+VX
+wF
+VX
+OU
+Yf
+fS
+fS
+fS
+fS
+Hg
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+Oh
+ez
+ez
+ez
+bo
+ez
+ez
+ez
+xi
+tG
+tG
+xi
+ez
+ez
+Ib
+Ib
"}
-(58,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-aN
-aN
-aN
-MN
-MN
-Wc
-FE
-Wc
-MN
-MN
-Wc
-rc
-Wc
-MN
-MN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-aN
-aN
-QE
-QE
+(88,1,1) = {"
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+My
+fS
+fS
+fS
+fS
+oK
+ny
+fS
+fS
+fS
+Yf
+IX
+VX
+VX
+VX
+IX
+Yf
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+My
+ez
+ez
+ez
+ez
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
"}
-(59,1,1) = {"
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-aN
-BA
-MN
-MN
-MN
-MN
-MN
-MN
-MN
-MN
-MN
-MN
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-QE
-QE
-QE
-aN
-QE
-QE
-QE
+(89,1,1) = {"
+Ib
+ez
+ez
+bo
+ez
+Hd
+ez
+ez
+My
+fS
+fS
+fS
+MY
+GY
+DT
+MY
+fS
+fS
+Oh
+Oh
+TO
+Eq
+ds
+Oh
+Oh
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+mN
+My
+bm
+Ck
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(60,1,1) = {"
-aN
-aN
-Wt
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-aN
-BA
-BA
-aN
-BA
-BA
-aN
-aN
-BA
-BA
-aN
-BA
-BA
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-Qy
+(90,1,1) = {"
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+My
+fS
+fS
+YE
+sS
+LO
+LO
+CB
+YE
+fS
+fS
+Oh
+Oh
+Oh
+Oh
+Oh
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+LI
+ty
+ty
+FL
+SF
+Ck
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(61,1,1) = {"
-Qy
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Wt
-aN
-QE
-QE
-QE
-QE
-aN
-dD
-aN
-aN
-aN
-QE
-Qy
-Qy
+(91,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+My
+fS
+fS
+YE
+fS
+on
+fS
+on
+YE
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+fS
+Hg
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+lm
+Ts
+cM
+tn
+ty
+ty
+ty
+bm
+bm
+bm
+Ck
+bm
+bm
+ez
+ez
+ez
+ez
+bo
+ez
+ez
+ez
"}
-(62,1,1) = {"
-Qy
-Qy
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-QE
-QE
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Qy
-Qy
-Qy
+(92,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+My
+Oh
+fS
+YE
+on
+on
+on
+on
+nH
+fS
+fS
+Hg
+fS
+fS
+fS
+Tm
+fS
+fS
+fS
+fS
+fS
+fS
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+eP
+Pr
+CH
+Xc
+JA
+yC
+aN
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
"}
-(63,1,1) = {"
-Qy
-Qy
-Qy
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-QE
-QE
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-dD
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Wt
-aN
-aN
-Qy
-Qy
-Qy
-Qy
+(93,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+My
+Oh
+fS
+fS
+fS
+on
+on
+on
+on
+on
+fS
+fS
+fS
+ny
+ny
+Fo
+ny
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+LI
+ty
+JM
+ur
+ty
+ty
+ty
+bm
+Ux
+bm
+bm
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+Ib
"}
-(64,1,1) = {"
-Qy
-Qy
-Qy
-Qy
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Qy
-Qy
-Qy
-Qy
-Qy
+(94,1,1) = {"
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+Oh
+Oh
+fS
+YE
+fS
+fS
+fS
+fS
+YE
+fS
+fS
+fS
+ny
+nF
+AC
+dC
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+lm
+ty
+wX
+wh
+zs
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
"}
-(65,1,1) = {"
-Qy
-Qy
-Qy
-Qy
-Qy
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-aN
-Qy
-Qy
-Qy
-Qy
-Qy
-Qy
+(95,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+Hd
+bo
+ez
+Oh
+Oh
+fS
+YE
+fS
+fS
+fS
+ah
+YE
+fS
+fS
+ny
+ve
+ny
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+Ux
+bm
+ez
+ez
+ez
+RD
+bm
+bm
+bm
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+"}
+(96,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+Oh
+Oh
+Oh
+YE
+fS
+Yk
+fS
+fS
+YE
+Oh
+Oh
+Oh
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+AF
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+"}
+(97,1,1) = {"
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+"}
+(98,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+bo
+ez
+ez
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+Oh
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+Ib
+Ib
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+PO
+Ib
+Ib
+ez
+ez
+bo
+ez
+ez
+ez
+Hd
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+"}
+(99,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+Hd
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+PO
+PO
+PO
+Ib
+Ib
+PO
+PO
+PO
+PO
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+PO
+PO
+PO
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+"}
+(100,1,1) = {"
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+bo
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+ez
+ez
+ez
+ez
+ez
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
+Ib
"}
diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
index 095b961ace0..848707c4b49 100644
--- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
+++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_saloon.dmm
@@ -1026,13 +1026,7 @@
/obj/structure/closet/cabinet,
/obj/effect/spawner/random/maintenance/two,
/obj/effect/decal/cleanable/dirt,
-/obj/item/gun/energy/plasmacutter{
- icon_state = "pulse_carbine";
- name = "pulse rifle";
- desc = "A supposedly heavy-duty, multifaceted energy rifle. The barrel looks off and the casing seems to be made of plastic";
- item_state = "pulse";
- icon = 'icons/obj/guns/manufacturer/nanotrasen_sharplite/48x32.dmi'
- },
+/obj/item/plasmacutter,
/turf/open/floor/wood,
/area/ruin/whitesands/saloon)
"EY" = (
diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
index f2582aea147..65f58a95514 100644
--- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm
@@ -10039,7 +10039,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/space/has_grav/spacemall/dorms)
"Me" = (
-/obj/machinery/computer/apc_control,
+/obj/machinery/computer/monitor,
/obj/structure/spider/stickyweb,
/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/spacemall/maint)
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_recyclebay.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_recyclebay.dmm
index 7efd708ff0d..03340e36a53 100644
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_recyclebay.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_recyclebay.dmm
@@ -4026,8 +4026,8 @@
"Bw" = (
/obj/structure/closet/toolcloset/empty,
/obj/effect/turf_decal/industrial/outline/yellow,
-/obj/item/gun/energy/plasmacutter,
-/obj/item/gun/energy/plasmacutter,
+/obj/item/plasmacutter,
+/obj/item/plasmacutter,
/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/gloves/color/yellow,
/obj/item/clothing/gloves/color/yellow,
diff --git a/_maps/configs/minutemen_lyra.json b/_maps/configs/minutemen_lyra.json
index 927b6983275..3b57bfc0927 100644
--- a/_maps/configs/minutemen_lyra.json
+++ b/_maps/configs/minutemen_lyra.json
@@ -2,6 +2,7 @@
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Lyra-class Relief Cruiser",
"prefix": "CLSV",
+ "manufacturer": "Lanchester Shipyards",
"namelists": ["GENERAL", "CLIP MINUTEMEN", "BEASTS"],
"description": "The Lyra-class traces its origins back to the first frontiersmen war, where civilian hulls were taken by Minutemen forces and converted into relief vessels. These various ships were kept in service with dubious performance and inconsistent upkeep up until FS-472, when the Lyra-class was officially proposed and set into production to fufill the roles of these ships. Initially unpopular and almost decommissioned due to lack of use in a calmer frontier, these vessels found a major resurgence after the ICW, with humanitarian issues becoming a much larger concern to the Colonial League. Lyra-class vessels often find themselves assisting in rebuilding efforts of affected planets, or helping the occasional frontier vessel.",
"tags": ["Medical", "Generalist", "Engineering", "RP Focus"],
diff --git a/_maps/configs/minutemen_typhon.json b/_maps/configs/minutemen_typhon.json
index fd1c1e51340..11075b6d129 100644
--- a/_maps/configs/minutemen_typhon.json
+++ b/_maps/configs/minutemen_typhon.json
@@ -44,5 +44,5 @@
"slots": 1
}
},
- "enabled": true
+ "enabled": false
}
diff --git a/_maps/configs/srm_sojourner.json b/_maps/configs/srm_sojourner.json
index 5af9d96a319..a548b004ae4 100644
--- a/_maps/configs/srm_sojourner.json
+++ b/_maps/configs/srm_sojourner.json
@@ -3,6 +3,7 @@
"map_name": "Sojourner-class Homesteader",
"faction": "/datum/faction/srm",
"prefix": "SRSV",
+ "manufacturer": "Ihejirika Civ. Manufacturing",
"namelists": [
"SAINT-ROUMAIN",
"BEASTS"
diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm
index f2b643f05ef..10d2a53d6a5 100644
--- a/_maps/shuttles/independent/independent_mudskipper.dmm
+++ b/_maps/shuttles/independent/independent_mudskipper.dmm
@@ -386,7 +386,7 @@
/obj/item/multitool,
/obj/item/stack/marker_beacon/thirty,
/obj/item/gear_pack/anglegrinder,
-/obj/item/gun/energy/plasmacutter,
+/obj/item/plasmacutter,
/obj/item/flashlight/seclite,
/obj/item/flashlight/seclite,
/obj/item/melee/knife/survival,
diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm
index 91ed2e0792e..323f50eadc0 100644
--- a/_maps/shuttles/independent/independent_sunskipper.dmm
+++ b/_maps/shuttles/independent/independent_sunskipper.dmm
@@ -2759,7 +2759,7 @@
/turf/open/floor/wood/walnut,
/area/ship/crew/canteen)
"FK" = (
-/obj/structure/sign/poster/official/work_for_a_future{
+/obj/structure/sign/poster/contraband/diet_guide{
pixel_y = 30
},
/turf/open/floor/plasteel/mono/white,
diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm
index 9fcf51ef956..0102c26ea41 100644
--- a/_maps/shuttles/inteq/inteq_vaquero.dmm
+++ b/_maps/shuttles/inteq/inteq_vaquero.dmm
@@ -1902,6 +1902,20 @@
"qe" = (
/turf/open/floor/carpet/black,
/area/ship/hallway/starboard)
+"qt" = (
+/obj/structure/table,
+/obj/item/plate,
+/obj/item/reagent_containers/food/drinks/sillycup{
+ pixel_y = 10;
+ pixel_x = -8
+ },
+/obj/item/food/ration/pack/grape_beverage{
+ pixel_y = 10;
+ pixel_x = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/dark,
+/area/ship/crew/canteen)
"qy" = (
/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{
dir = 1
@@ -2695,6 +2709,72 @@
},
/turf/open/floor/plasteel/patterned,
/area/ship/cargo)
+"wQ" = (
+/obj/structure/closet/secure_closet/armorycage{
+ anchored = 1;
+ can_be_unanchored = 1;
+ name = "equipment locker";
+ req_access = null;
+ req_access_txt = "1"
+ },
+/obj/effect/turf_decal/trimline/opaque/yellow/line,
+/obj/effect/turf_decal/siding/thinplating/dark,
+/obj/item/storage/box/teargas{
+ pixel_y = -4;
+ pixel_x = 8
+ },
+/obj/item/storage/box/zipties{
+ pixel_y = -4;
+ pixel_x = -7
+ },
+/obj/item/reagent_containers/spray/pepper{
+ pixel_y = 10;
+ pixel_x = -11
+ },
+/obj/item/reagent_containers/spray/pepper{
+ pixel_y = 10;
+ pixel_x = -3
+ },
+/obj/item/storage/pouch/ammo{
+ pixel_y = -10
+ },
+/obj/item/storage/pouch/ammo{
+ pixel_y = -10
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/melee/knife/survival{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/attachment/rail_light{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/obj/item/attachment/rail_light{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/obj/item/attachment/rail_light{
+ pixel_x = 6;
+ pixel_y = -4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/shield/heavy,
+/turf/open/floor/plasteel/tech/grid,
+/area/ship/security)
"wU" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -3488,72 +3568,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel/tech/grid,
/area/ship/security)
-"Db" = (
-/obj/structure/closet/secure_closet/armorycage{
- anchored = 1;
- can_be_unanchored = 1;
- name = "equipment locker";
- req_access = null;
- req_access_txt = "1"
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/line,
-/obj/effect/turf_decal/siding/thinplating/dark,
-/obj/item/storage/box/teargas{
- pixel_y = -4;
- pixel_x = 8
- },
-/obj/item/storage/box/zipties{
- pixel_y = -4;
- pixel_x = -7
- },
-/obj/item/reagent_containers/spray/pepper{
- pixel_y = 10;
- pixel_x = -11
- },
-/obj/item/reagent_containers/spray/pepper{
- pixel_y = 10;
- pixel_x = -3
- },
-/obj/item/storage/pouch/ammo{
- pixel_y = -10
- },
-/obj/item/storage/pouch/ammo{
- pixel_y = -10
- },
-/obj/item/melee/knife/survival{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/melee/knife/survival{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/melee/knife/survival{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/attachment/rail_light{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/attachment/rail_light{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/attachment/rail_light{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/shield/riot,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/tech/grid,
-/area/ship/security)
"Dh" = (
/obj/effect/turf_decal/techfloor,
/obj/structure/table/reinforced,
@@ -5773,20 +5787,6 @@
},
/turf/open/floor/plasteel/patterned/cargo_one,
/area/ship/cargo)
-"Xv" = (
-/obj/structure/table,
-/obj/item/plate,
-/obj/item/reagent_containers/food/drinks/sillycup{
- pixel_y = 10;
- pixel_x = -8
- },
-/obj/item/food/ration/pack/grape_beverage{
- pixel_y = 10;
- pixel_x = 8
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel/dark,
-/area/ship/crew/canteen)
"XA" = (
/obj/structure/closet/secure_closet/armorycage{
anchored = 1;
@@ -6656,7 +6656,7 @@ LQ
mg
GI
Fm
-Xv
+qt
XW
EB
aw
@@ -6860,7 +6860,7 @@ vT
Xi
gO
eL
-Db
+wQ
DP
ww
ww
diff --git a/_maps/shuttles/minutemen/minutemen_arke.dmm b/_maps/shuttles/minutemen/minutemen_arke.dmm
index 49744a16d43..0c2b044d60e 100644
--- a/_maps/shuttles/minutemen/minutemen_arke.dmm
+++ b/_maps/shuttles/minutemen/minutemen_arke.dmm
@@ -1306,7 +1306,7 @@
pixel_y = 4;
pixel_x = 5
},
-/obj/item/gun/energy/plasmacutter,
+/obj/item/plasmacutter,
/obj/item/t_scanner/adv_mining_scanner{
pixel_y = 4;
pixel_x = 5
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
index 840d768fc7c..49b15aa029a 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm
@@ -5978,6 +5978,9 @@
dir = 8
},
/obj/machinery/oven,
+/obj/structure/sign/poster/contraband/diet_guide{
+ pixel_y = 30
+ },
/turf/open/floor/plasteel,
/area/ship/crew/canteen)
"GY" = (
diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
index 0a63fbe0f19..68efacfb22e 100644
--- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
+++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm
@@ -1746,7 +1746,7 @@
/turf/open/floor/plasteel/dark,
/area/ship/hallway/port)
"lD" = (
-/obj/machinery/computer/apc_control{
+/obj/machinery/computer/monitor{
dir = 4;
icon_state = "computer-left"
},
diff --git a/_maps/shuttles/pirate/pirate_tortuga.dmm b/_maps/shuttles/pirate/pirate_tortuga.dmm
index c4f42e99749..cc09b6c14a3 100644
--- a/_maps/shuttles/pirate/pirate_tortuga.dmm
+++ b/_maps/shuttles/pirate/pirate_tortuga.dmm
@@ -583,6 +583,25 @@
"fv" = (
/turf/closed/wall/r_wall/rust,
/area/ship/cargo)
+"fx" = (
+/obj/effect/turf_decal/corner/opaque/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/corner/opaque/blue{
+ dir = 8
+ },
+/obj/structure/table/glass,
+/obj/item/storage/case/surgery{
+ pixel_y = 3
+ },
+/obj/item/clothing/suit/apron/surgical{
+ pixel_x = -7;
+ pixel_y = 10
+ },
+/turf/open/floor/plating{
+ icon_state = "plating_rust"
+ },
+/area/ship/medical)
"fA" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -671,6 +690,19 @@
},
/turf/open/floor/plating,
/area/ship/maintenance/port)
+"gz" = (
+/obj/machinery/door/window/brigdoor/eastleft,
+/obj/machinery/shower{
+ pixel_y = 17
+ },
+/obj/effect/turf_decal/techfloor/hole/right{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/hole{
+ dir = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
"gB" = (
/obj/effect/turf_decal/spline/fancy/opaque/black{
dir = 1
@@ -712,20 +744,6 @@
},
/turf/open/floor/pod/dark,
/area/ship/maintenance/starboard)
-"gK" = (
-/obj/machinery/light/small/directional/north,
-/obj/structure/toilet{
- pixel_y = 10
- },
-/obj/machinery/button/door{
- dir = 4;
- pixel_x = -24;
- id = "toilet1";
- name = "privacy lock";
- normaldoorcontrol = 1
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew/toilet)
"gM" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -734,27 +752,6 @@
/obj/structure/chair/comfy/grey/old/directional/south,
/turf/open/floor/carpet/nanoweave,
/area/ship/crew/crewtwo)
-"gO" = (
-/obj/structure/rack,
-/obj/item/storage/toolbox/ammo/c9mm{
- pixel_x = -10;
- pixel_y = 10
- },
-/obj/item/storage/toolbox/ammo/a308{
- pixel_x = -10
- },
-/obj/item/storage/toolbox/ammo/c9mm{
- pixel_x = 10;
- pixel_y = 10
- },
-/obj/item/storage/toolbox/ammo/a308{
- pixel_x = 10
- },
-/obj/item/storage/toolbox/ammo/shotgun{
- pixel_y = 9
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"gQ" = (
/obj/machinery/firealarm/directional/east,
/obj/structure/table,
@@ -1226,20 +1223,6 @@
},
/turf/open/floor/plasteel/telecomms_floor,
/area/ship/bridge)
-"la" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/power/smes/shuttle/precharged,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "sboard_engine"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
"ld" = (
/obj/structure/catwalk/over/plated_catwalk,
/obj/structure/railing{
@@ -1299,6 +1282,25 @@
"lJ" = (
/turf/closed/mineral/ship,
/area/ship/maintenance)
+"lK" = (
+/obj/machinery/griddle,
+/obj/machinery/light/directional/east,
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plasteel/mono,
+/area/ship/cargo)
+"lO" = (
+/obj/machinery/door/window/brigdoor/eastright,
+/obj/machinery/shower{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/hole,
+/obj/effect/turf_decal/techfloor/hole/right,
+/obj/item/bikehorn/rubberducky/plasticducky{
+ pixel_y = 7;
+ pixel_x = -6
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
"lQ" = (
/obj/machinery/telecomms/hub{
autolinkers = list("hub","bus","relay","messaging","pirate","broadcasterB","receiverB");
@@ -1440,81 +1442,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/pod/dark,
/area/ship/maintenance/port)
-"mG" = (
-/obj/structure/closet/secure_closet{
- icon_state = "sec";
- name = "equipment locker";
- req_access_txt = "3"
- },
-/obj/effect/turf_decal/box,
-/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
- pixel_y = 6;
- pixel_x = 7
- },
-/obj/machinery/light/directional/north,
-/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
- pixel_y = 6;
- pixel_x = 7
- },
-/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
- pixel_y = 6;
- pixel_x = 7
- },
-/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
- pixel_y = 6;
- pixel_x = 7
- },
-/obj/item/melee/knife/survival,
-/obj/item/melee/knife/survival,
-/obj/item/melee/knife/survival,
-/obj/item/melee/knife/survival,
-/obj/item/storage/belt/security/military/frontiersmen{
- pixel_x = -4;
- pixel_y = -10
- },
-/obj/item/storage/belt/security/military/frontiersmen{
- pixel_x = -4;
- pixel_y = -10
- },
-/obj/item/storage/belt/security/military/frontiersmen{
- pixel_x = -4;
- pixel_y = -10
- },
-/obj/item/storage/belt/security/military/frontiersmen{
- pixel_x = -4;
- pixel_y = -10
- },
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
- pixel_x = 8;
- pixel_y = -4
- },
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
-/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
- pixel_y = 6;
- pixel_x = 7
- },
-/obj/item/melee/boarding_axe,
-/obj/item/melee/boarding_axe,
-/obj/item/melee/boarding_axe,
-/obj/item/melee/boarding_axe,
-/obj/item/melee/boarding_axe,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"mZ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
@@ -1597,6 +1524,20 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/carpet/nanoweave,
/area/ship/crew/crewtwo)
+"nH" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "sboard_engine"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/maintenance/starboard)
"nT" = (
/obj/effect/turf_decal/box/corners{
dir = 4
@@ -1619,6 +1560,20 @@
},
/turf/open/floor/plasteel/tech/techmaint,
/area/ship/cargo)
+"nW" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "port_engine"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/maintenance/port)
"oe" = (
/obj/effect/turf_decal/borderfloor{
dir = 1
@@ -2015,20 +1970,6 @@
"so" = (
/turf/closed/wall/rust,
/area/ship/crew)
-"sr" = (
-/obj/machinery/power/smes/shuttle/precharged,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "sboard_engine"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/starboard)
"ss" = (
/obj/machinery/button/door{
dir = 1;
@@ -2611,29 +2552,6 @@
icon_state = "plating_rust"
},
/area/ship/maintenance)
-"xB" = (
-/obj/structure/closet/secure_closet{
- icon_door = "tac";
- icon_state = "tac";
- name = "boarding tools locker";
- req_access_txt = "3"
- },
-/obj/effect/turf_decal/box,
-/obj/item/storage/backpack/duffelbag/syndie/c4{
- pixel_y = 8
- },
-/obj/item/door_seal{
- pixel_y = -7
- },
-/obj/item/door_seal{
- pixel_y = -7
- },
-/obj/item/shield/riot/spike,
-/obj/item/storage/box/smokebombs,
-/obj/item/storage/toolbox/ammo/frag,
-/obj/item/crowbar/power,
-/turf/open/floor/mineral/plastitanium,
-/area/ship/security/armory)
"xV" = (
/obj/effect/turf_decal/borderfloor,
/obj/effect/turf_decal/siding/thinplating/dark{
@@ -2738,6 +2656,20 @@
},
/turf/open/floor/plasteel/mono,
/area/ship/cargo)
+"yF" = (
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "sboard_engine"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/maintenance/starboard)
"yH" = (
/obj/effect/turf_decal/techfloor,
/turf/open/floor/plasteel/tech/grid,
@@ -2822,6 +2754,21 @@
"zJ" = (
/turf/closed/wall/r_wall/rust,
/area/ship/maintenance/starboard)
+"zV" = (
+/obj/effect/decal/cleanable/glass,
+/obj/machinery/light/small/directional/north,
+/obj/structure/toilet{
+ pixel_y = 10
+ },
+/obj/machinery/button/door{
+ dir = 4;
+ pixel_x = -24;
+ id = "toilet2";
+ name = "privacy lock";
+ normaldoorcontrol = 1
+ },
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
"zZ" = (
/obj/effect/turf_decal/corner/opaque/black{
dir = 9
@@ -2920,6 +2867,28 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/plasteel/tech,
/area/ship/bridge)
+"AX" = (
+/obj/structure/closet/secure_closet{
+ icon_door = "tac";
+ icon_state = "tac";
+ name = "boarding tools locker";
+ req_access_txt = "3"
+ },
+/obj/effect/turf_decal/box,
+/obj/item/storage/backpack/duffelbag/syndie/c4{
+ pixel_y = 8
+ },
+/obj/item/door_seal{
+ pixel_y = -7
+ },
+/obj/item/door_seal{
+ pixel_y = -7
+ },
+/obj/item/storage/box/smokebombs,
+/obj/item/storage/toolbox/ammo/frag,
+/obj/item/crowbar/power,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"AZ" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -2932,8 +2901,7 @@
},
/turf/open/floor/pod/dark,
/area/ship/maintenance/starboard)
-"Be" = (
-/obj/effect/decal/cleanable/glass,
+"Bb" = (
/obj/machinery/light/small/directional/north,
/obj/structure/toilet{
pixel_y = 10
@@ -2941,7 +2909,7 @@
/obj/machinery/button/door{
dir = 4;
pixel_x = -24;
- id = "toilet2";
+ id = "toilet1";
name = "privacy lock";
normaldoorcontrol = 1
},
@@ -3112,6 +3080,29 @@
icon_state = "plating_rust"
},
/area/ship/maintenance)
+"Dw" = (
+/obj/machinery/light/directional/north,
+/obj/item/storage/pouch/squad,
+/obj/item/clothing/suit/armor/vest/marine/frontier,
+/obj/item/clothing/head/helmet/frontier,
+/obj/item/megaphone,
+/obj/item/clothing/under/frontiersmen/officer{
+ pixel_x = -5
+ },
+/obj/item/clothing/shoes/jackboots{
+ pixel_y = -13
+ },
+/obj/item/clothing/head/beret/sec/frontier/officer,
+/obj/item/radio/headset/pirate/alt,
+/obj/item/binoculars,
+/obj/structure/closet/secure_closet{
+ icon_state = "hos";
+ name = "Deck Boss' Locker";
+ req_access_txt = "3"
+ },
+/obj/item/storage/guncase/slammer,
+/turf/open/floor/plasteel/tech,
+/area/ship/bridge)
"DF" = (
/obj/structure/cable/yellow{
icon_state = "6-8"
@@ -3259,20 +3250,6 @@
},
/turf/open/floor/plating,
/area/ship/maintenance)
-"EI" = (
-/obj/machinery/power/smes/shuttle/precharged,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "port_engine"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
"EL" = (
/obj/effect/decal/cleanable/glass,
/obj/item/broken_bottle,
@@ -3499,6 +3476,20 @@
/obj/structure/curtain/cloth,
/turf/open/floor/plating/catwalk_floor,
/area/ship/security/armory)
+"Gv" = (
+/obj/machinery/shower{
+ pixel_y = 17
+ },
+/obj/effect/turf_decal/techfloor/hole{
+ dir = 1
+ },
+/obj/effect/turf_decal/techfloor/hole/right{
+ dir = 1
+ },
+/obj/machinery/light/small/directional/west,
+/obj/item/soap/homemade,
+/turf/open/floor/plasteel/showroomfloor,
+/area/ship/crew/toilet)
"Gx" = (
/obj/effect/turf_decal/techfloor{
dir = 1
@@ -3537,6 +3528,81 @@
},
/turf/open/floor/pod/dark,
/area/ship/maintenance/starboard)
+"GJ" = (
+/obj/structure/closet/secure_closet{
+ icon_state = "sec";
+ name = "equipment locker";
+ req_access_txt = "3"
+ },
+/obj/effect/turf_decal/box,
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/machinery/light/directional/north,
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/melee/knife/survival,
+/obj/item/storage/belt/security/military/frontiersmen{
+ pixel_x = -4;
+ pixel_y = -10
+ },
+/obj/item/storage/belt/security/military/frontiersmen{
+ pixel_x = -4;
+ pixel_y = -10
+ },
+/obj/item/storage/belt/security/military/frontiersmen{
+ pixel_x = -4;
+ pixel_y = -10
+ },
+/obj/item/storage/belt/security/military/frontiersmen{
+ pixel_x = -4;
+ pixel_y = -10
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+ pixel_x = 8;
+ pixel_y = -4
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+ pixel_x = 8;
+ pixel_y = -4
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+ pixel_x = 8;
+ pixel_y = -4
+ },
+/obj/item/clothing/suit/armor/vest/bulletproof/frontier{
+ pixel_x = 8;
+ pixel_y = -4
+ },
+/obj/item/flashlight/seclite,
+/obj/item/flashlight/seclite,
+/obj/item/flashlight/seclite,
+/obj/item/flashlight/seclite,
+/obj/item/clothing/head/helmet/bulletproof/x11/frontier{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/item/melee/boarding_axe,
+/obj/item/melee/boarding_axe,
+/obj/item/melee/boarding_axe,
+/obj/item/melee/boarding_axe,
+/obj/item/melee/boarding_axe,
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"GM" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -3708,20 +3774,6 @@
icon_state = "wood-broken5"
},
/area/ship/crew/crewtwo)
-"Iu" = (
-/obj/machinery/shower{
- pixel_y = 17
- },
-/obj/effect/turf_decal/techfloor/hole{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/hole/right{
- dir = 1
- },
-/obj/machinery/light/small/directional/west,
-/obj/item/soap/homemade,
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew/toilet)
"Iw" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -3782,29 +3834,6 @@
},
/turf/open/floor/plating,
/area/ship/cargo)
-"IF" = (
-/obj/machinery/light/directional/north,
-/obj/item/storage/pouch/squad,
-/obj/item/clothing/suit/armor/vest/marine/frontier,
-/obj/item/clothing/head/helmet/frontier,
-/obj/item/megaphone,
-/obj/item/clothing/under/frontiersmen/officer{
- pixel_x = -5
- },
-/obj/item/clothing/shoes/jackboots{
- pixel_y = -13
- },
-/obj/item/clothing/head/beret/sec/frontier/officer,
-/obj/item/radio/headset/pirate/alt,
-/obj/item/binoculars,
-/obj/structure/closet/secure_closet{
- icon_state = "hos";
- name = "Deck Boss' Locker";
- req_access_txt = "3"
- },
-/obj/item/storage/guncase/slammer,
-/turf/open/floor/plasteel/tech,
-/area/ship/bridge)
"II" = (
/obj/machinery/door/airlock/hatch,
/obj/structure/cable/yellow{
@@ -4013,12 +4042,6 @@
},
/turf/open/floor/plating,
/area/ship/cargo)
-"KE" = (
-/obj/machinery/griddle,
-/obj/machinery/light/directional/east,
-/obj/effect/decal/cleanable/wrapping,
-/turf/open/floor/plasteel/mono,
-/area/ship/cargo)
"KM" = (
/obj/structure/railing{
dir = 1
@@ -4077,19 +4100,6 @@
/obj/structure/catwalk/over/plated_catwalk,
/turf/open/floor/plating,
/area/ship/crew/toilet)
-"KZ" = (
-/obj/machinery/door/window/brigdoor/eastright,
-/obj/machinery/shower{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/hole,
-/obj/effect/turf_decal/techfloor/hole/right,
-/obj/item/bikehorn/rubberducky/plasticducky{
- pixel_y = 7;
- pixel_x = -6
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew/toilet)
"Lb" = (
/obj/structure/table,
/obj/item/reagent_containers/glass/bowl{
@@ -4632,39 +4642,6 @@
},
/turf/open/floor/plating,
/area/ship/cargo)
-"Po" = (
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 4
- },
-/obj/effect/turf_decal/corner/opaque/blue{
- dir = 8
- },
-/obj/structure/table/glass,
-/obj/item/storage/case/surgery{
- pixel_y = 3
- },
-/obj/item/clothing/suit/apron/surgical{
- pixel_x = -7;
- pixel_y = 10
- },
-/turf/open/floor/plating{
- icon_state = "plating_rust"
- },
-/area/ship/medical)
-"Pu" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/power/smes/shuttle/precharged,
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/door/poddoor/shutters{
- dir = 4;
- id = "port_engine"
- },
-/turf/open/floor/plasteel/tech,
-/area/ship/maintenance/port)
"Pw" = (
/obj/structure/cable{
icon_state = "4-9"
@@ -5099,6 +5076,27 @@
/obj/effect/turf_decal/borderfloor,
/turf/open/floor/plasteel/mono/dark,
/area/ship/crew/canteen)
+"Tg" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/ammo/c9mm{
+ pixel_x = -10;
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/ammo/a308{
+ pixel_x = -10
+ },
+/obj/item/storage/toolbox/ammo/c9mm{
+ pixel_x = 10;
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/ammo/a308{
+ pixel_x = 10
+ },
+/obj/item/storage/toolbox/ammo/shotgun{
+ pixel_y = 9
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/ship/security/armory)
"Tk" = (
/obj/effect/turf_decal/techfloor{
dir = 1
@@ -5559,6 +5557,20 @@
},
/turf/open/floor/carpet/nanoweave,
/area/ship/crew/crewtwo)
+"Xv" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/power/smes/shuttle/precharged,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/door/poddoor/shutters{
+ dir = 4;
+ id = "port_engine"
+ },
+/turf/open/floor/plasteel/tech,
+/area/ship/maintenance/port)
"XC" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -5821,19 +5833,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plasteel/white,
/area/ship/medical)
-"ZV" = (
-/obj/machinery/door/window/brigdoor/eastleft,
-/obj/machinery/shower{
- pixel_y = 17
- },
-/obj/effect/turf_decal/techfloor/hole/right{
- dir = 1
- },
-/obj/effect/turf_decal/techfloor/hole{
- dir = 1
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/ship/crew/toilet)
"ZY" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/red{
@@ -6093,8 +6092,8 @@ Ek
Ek
Ek
jA
-Pu
-EI
+Xv
+nW
TR
Ek
rd
@@ -6112,8 +6111,8 @@ xV
fv
Ek
wK
-sr
-la
+yF
+nH
zJ
Ek
Ek
@@ -6585,7 +6584,7 @@ Xs
fj
aT
bx
-KE
+lK
wQ
fU
hC
@@ -6646,7 +6645,7 @@ lJ
Px
Px
pF
-Iu
+Gv
bI
pF
td
@@ -6686,8 +6685,8 @@ Ek
Px
Px
pF
-ZV
-KZ
+gz
+lO
pF
DU
KU
@@ -6867,7 +6866,7 @@ VO
VO
VO
Vt
-xB
+AX
RH
hP
FP
@@ -6887,7 +6886,7 @@ Px
Px
Px
pF
-gK
+Bb
Ez
jp
gG
@@ -6905,9 +6904,9 @@ nv
VO
yj
iW
-Po
+fx
Vt
-gO
+Tg
gD
yH
FP
@@ -6947,7 +6946,7 @@ BB
UJ
fC
Vt
-mG
+GJ
Kr
FB
SD
@@ -6967,7 +6966,7 @@ Px
Px
Px
pF
-Be
+zV
ao
Cx
XC
@@ -7097,7 +7096,7 @@ fE
YE
ah
ah
-IF
+Dw
VH
qT
gB
diff --git a/_maps/shuttles/roumain/srm_elder.dmm b/_maps/shuttles/roumain/srm_elder.dmm
index 777fb22f8b7..20f1a4855d4 100644
--- a/_maps/shuttles/roumain/srm_elder.dmm
+++ b/_maps/shuttles/roumain/srm_elder.dmm
@@ -363,6 +363,30 @@
pixel_x = 8;
pixel_y = -6
},
+/obj/item/storage/box/ammo/a4570{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/item/storage/box/ammo/a4570{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/item/storage/box/ammo/a4570{
+ pixel_x = -6;
+ pixel_y = 9
+ },
+/obj/item/ammo_box/a4570{
+ pixel_x = -3;
+ pixel_y = -6
+ },
+/obj/item/ammo_box/a4570{
+ pixel_x = -8;
+ pixel_y = -6
+ },
+/obj/item/ammo_box/a4570{
+ pixel_x = -12;
+ pixel_y = -6
+ },
/turf/open/floor/wood/ebony,
/area/ship/storage)
"de" = (
@@ -2229,10 +2253,6 @@
/obj/machinery/door/window{
dir = 8
},
-/obj/item/gun/ballistic/rifle/illestren/factory{
- pixel_y = 3;
- pixel_x = -4
- },
/obj/item/gun/ballistic/rifle/illestren/factory{
pixel_x = -4;
pixel_y = -5
@@ -2241,6 +2261,10 @@
pixel_x = -4;
pixel_y = -1
},
+/obj/item/gun/ballistic/shotgun/flamingarrow/pyre/factory{
+ pixel_x = -6;
+ pixel_y = 3
+ },
/turf/open/floor/wood/ebony,
/area/ship/storage)
"Bq" = (
diff --git a/_maps/shuttles/roumain/srm_sojourner.dmm b/_maps/shuttles/roumain/srm_sojourner.dmm
index d12e60a0d36..2de4d20e274 100644
--- a/_maps/shuttles/roumain/srm_sojourner.dmm
+++ b/_maps/shuttles/roumain/srm_sojourner.dmm
@@ -2402,14 +2402,8 @@
/obj/effect/turf_decal/box/red/corners{
dir = 8
},
-/obj/item/shield/riot/buckler{
- pixel_x = 5;
- pixel_y = 8
- },
-/obj/item/shield/riot/buckler{
- pixel_x = 5;
- pixel_y = 8
- },
+/obj/item/shield/buckler,
+/obj/item/shield/buckler,
/obj/item/storage/belt/security/military/frontiersmen{
pixel_y = -1;
pixel_x = 4
diff --git a/_maps/shuttles/subshuttles/ngr_karst.dmm b/_maps/shuttles/subshuttles/ngr_karst.dmm
index 3e1ed41e942..b0a2b1e5a26 100644
--- a/_maps/shuttles/subshuttles/ngr_karst.dmm
+++ b/_maps/shuttles/subshuttles/ngr_karst.dmm
@@ -219,7 +219,6 @@
},
/obj/item/clothing/under/syndicate/ngr/fatigues,
/obj/item/clothing/head/helmet/ngr/swat,
-/obj/item/radio/headset/syndicate/alt,
/obj/item/clothing/shoes/combat,
/obj/item/clothing/gloves/fingerless{
desc = "These make you feel like a better pilot than you are.";
@@ -229,6 +228,7 @@
name = "Pilot's Locker";
req_access = list(1)
},
+/obj/item/radio/headset/syndicate/alt/ngr,
/turf/open/floor/plasteel/dark,
/area/ship/bridge)
"q" = (
diff --git a/_maps/shuttles/syndicate/syndicate_hardliners_leyak.dmm b/_maps/shuttles/syndicate/syndicate_hardliners_leyak.dmm
index 197d4679436..bbbc39ced5a 100644
--- a/_maps/shuttles/syndicate/syndicate_hardliners_leyak.dmm
+++ b/_maps/shuttles/syndicate/syndicate_hardliners_leyak.dmm
@@ -191,6 +191,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
/turf/open/floor/plating,
/area/ship/engineering/engines)
"bD" = (
@@ -1427,7 +1430,10 @@
dir = 9
},
/obj/machinery/firealarm/directional/south,
-/obj/machinery/portable_atmospherics/pump,
+/obj/machinery/power/cloak,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engines)
"qa" = (
@@ -3213,14 +3219,16 @@
/turf/open/floor/plasteel/tech/grid,
/area/ship/engineering/engines)
"Oa" = (
-/obj/effect/turf_decal/siding/thinplating/dark{
- dir = 9
- },
/obj/structure/cable{
icon_state = "0-2"
},
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/turf_decal/industrial/hatch/yellow,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 9
+ },
+/obj/machinery/portable_atmospherics/pump,
/turf/open/floor/plasteel/tech,
/area/ship/engineering/engines)
"Oi" = (
@@ -3500,15 +3508,15 @@
/area/ship/bridge)
"QE" = (
/obj/structure/catwalk/over/plated_catwalk/dark,
-/obj/structure/cable{
- icon_state = "4-10"
- },
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plating,
/area/ship/engineering/engines)
"QF" = (
@@ -3827,10 +3835,10 @@
dir = 1
},
/obj/structure/cable{
- icon_state = "2-5"
+ icon_state = "1-2"
},
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "2-4"
},
/turf/open/floor/plating,
/area/ship/engineering/engines)
diff --git a/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm b/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
index 1ace49e9efa..2e99509affe 100644
--- a/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
+++ b/_maps/shuttles/syndicate/syndicate_ngr_derecho.dmm
@@ -806,9 +806,7 @@
/area/ship/crew/canteen)
"gW" = (
/obj/structure/rack,
-/obj/item/gun/energy/plasmacutter{
- pixel_y = 15
- },
+/obj/item/plasmacutter,
/obj/machinery/airalarm/directional/south,
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/gear_pack/anglegrinder{
diff --git a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
index c67f1ef720c..cb9547b6ff2 100644
--- a/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
+++ b/_maps/shuttles/syndicate/syndicate_ngr_kaliandhi.dmm
@@ -3117,7 +3117,7 @@
/turf/open/floor/plasteel/tech,
/area/ship/security/armory)
"qy" = (
-/obj/machinery/computer/apc_control{
+/obj/machinery/computer/monitor{
icon_state = "computer-right"
},
/obj/effect/turf_decal/techfloor{
@@ -7927,6 +7927,10 @@
/obj/structure/cable{
icon_state = "0-4"
},
+/obj/machinery/light_switch{
+ pixel_x = -14;
+ pixel_y = 22
+ },
/turf/open/floor/plasteel/patterned/grid/dark,
/area/ship/maintenance/starboard)
"PM" = (
diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index 344b903488e..6773b2cb122 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -132,11 +132,6 @@
#define MUTCOLORS_SECONDARY 25
///Human skintones
#define SKINCOLORS 26
-///Used for determining which wounds are applicable to this species.
-///if we have flesh (can suffer slash/piercing/burn wounds, requires they don't have NOBLOOD)
-#define HAS_FLESH 27
-///if we have bones (can suffer bone wounds)
-#define HAS_BONE 28
//organ slots
#define ORGAN_SLOT_BRAIN "brain"
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index d9229b0814f..e151089f286 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -221,6 +221,11 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(/obj/item/gun)))
//We will round to this value in damage calculations.
#define DAMAGE_PRECISION 0.1
+/// Calls the effects of flashes. Screen overlays and such.
+#define FLASH_EFFECT (1<<0)
+/// Whether the flash should cause eye damage.
+#define FLASH_DAMAGE (1<<1)
+
/// Alternate attack defines. Return these at the end of procs like afterattack_secondary.
/// Calls the normal attack proc. For example, if returned in afterattack_secondary, will call afterattack.
/// Will continue the chain depending on the return value of the non-alternate proc, like with normal attacks.
diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm
index 86efbaee066..4075bb2733f 100644
--- a/code/__DEFINES/dcs/signals/signals.dm
+++ b/code/__DEFINES/dcs/signals/signals.dm
@@ -450,8 +450,10 @@
#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack"
///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proxiumity_flag, click_parameters)
#define COMSIG_MOB_ITEM_ATTACK_QDELETED "mob_item_attack_qdeleted"
-///from base of mob/RangedAttack(): (atom/A, params)
+///from base of mob/RangedAttack(): (atom/A, modifiers)
#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged"
+///from base of mob/RangedAttack(): (atom/target, modifiers)
+#define COMSIG_MOB_ATTACK_RANGED_SECONDARY "mob_attack_ranged_secondary"
///From base of mob/update_movespeed():area
#define COMSIG_MOB_MOVESPEED_UPDATED "mob_update_movespeed"
///from base of /mob/throw_item(): (atom/target)
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
index e3d88ac3d6b..8968a85c372 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm
@@ -18,6 +18,8 @@
// /mob/living/carbon physiology signals
#define COMSIG_CARBON_GAIN_WOUND "carbon_gain_wound" //from /datum/wound/proc/apply_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L)
#define COMSIG_CARBON_LOSE_WOUND "carbon_lose_wound" //from /datum/wound/proc/remove_wound() (/mob/living/carbon/C, /datum/wound/W, /obj/item/bodypart/L)
+/// Called after limb AND victim has been unset
+#define COMSIG_CARBON_POST_LOSE_WOUND "carbon_post_lose_wound" //from /datum/wound/proc/remove_wound() (/datum/wound/lost_wound, /obj/item/bodypart/part, ignore_limb, replaced)
///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment
#define COMSIG_CARBON_ATTACH_LIMB "carbon_attach_limb"
#define COMPONENT_NO_ATTACH (1<<0)
diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm
index 2f9688aab62..d7cc4b336ca 100644
--- a/code/__DEFINES/dcs/signals/signals_reagent.dm
+++ b/code/__DEFINES/dcs/signals/signals_reagent.dm
@@ -9,7 +9,7 @@
/// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS]
#define COMPONENT_NO_EXPOSE_REAGENTS (1<<0)
///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message)
-//#define COMSIG_ATOM_AFTER_EXPOSE_REAGENTS "atom_after_expose_reagents"
+#define COMSIG_ATOM_AFTER_EXPOSE_REAGENTS "atom_after_expose_reagents"
///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume)
#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent"
///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume)
diff --git a/code/__DEFINES/factions.dm b/code/__DEFINES/factions.dm
index 171b8a49f80..439dcb6d1f0 100644
--- a/code/__DEFINES/factions.dm
+++ b/code/__DEFINES/factions.dm
@@ -12,6 +12,7 @@
#define FACTION_VIGILITAS "Vigilitas Interstellar"
#define FACTION_FRONTIERSMEN "Frontiersmen Fleet"
#define FACTION_PGF "Pan-Gezena Federation"
+#define FACTION_ZOHIL "Zohil Explorat"
#define FACTION_INDEPENDENT "Independent"
#define FACTION_RAMZI "Ramzi Clique"
#define FACTION_UNKNOWN "Unknown"
@@ -30,6 +31,7 @@
#define PREFIX_VIGILITAS list("VISV")
#define PREFIX_FRONTIERSMEN list("FFV")
#define PREFIX_PGF list("PGF", "PGFMC", "PGFN", "PGFS")
+#define PREFIX_ZOHIL list("ZESV")
#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV", "MSV")
#define PREFIX_RAMZI list("RCSV")
#define PREFIX_NONE list()
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index baf12f09514..3b69bb4595c 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -208,7 +208,7 @@
#define TRAUMA_RESILIENCE_BASIC 1 //Curable with chems
#define TRAUMA_RESILIENCE_SURGERY 2 //Curable with brain surgery
#define TRAUMA_RESILIENCE_LOBOTOMY 3 //Curable with lobotomy
-#define TRAUMA_RESILIENCE_WOUND 4 //Curable by healing the head wound
+#define TRAUMA_RESILIENCE_WOUND 4 //Curable by healing the relevant wound
#define TRAUMA_RESILIENCE_MAGIC 5 //Curable only with magic
#define TRAUMA_RESILIENCE_ABSOLUTE 6 //This is here to stay
@@ -380,7 +380,7 @@
//MINOR TWEAKS/MISC
#define AGE_MIN 18 //youngest a character can be
#define AGE_MAX 85 //oldest a character can be
-#define AGE_MINOR 20 //legal age of space drinking and smoking
+#define AGE_DRINKING 20 //legal age of space drinking and smoking
#define WIZARD_AGE_MIN 30 //youngest a wizard can be
#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be
#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up
@@ -403,7 +403,7 @@
#define FLASH_PROTECTION_SENSITIVE -1
#define FLASH_PROTECTION_NONE 0
#define FLASH_PROTECTION_FLASH 1
-#define FLASH_PROTECTION_WELDER 2
+#define FLASH_PROTECTION_WELDER 3
// Roundstart trait system
diff --git a/code/__DEFINES/overmap.dm b/code/__DEFINES/overmap.dm
index 5b4f790089d..ea1365bc23d 100644
--- a/code/__DEFINES/overmap.dm
+++ b/code/__DEFINES/overmap.dm
@@ -113,4 +113,4 @@
#define SHIPMODULE_BSDRIVE "bluespace_drive"
#define SHIPMODULE_HELMCONSOLE "helm_console"
#define SHIPMODULE_TRANSPONDER "transponder"
-
+#define SHIPMODULE_CLOAKING "cloaking"
diff --git a/code/__DEFINES/paper.dm b/code/__DEFINES/paper.dm
index cccb3f7b871..29909abcaea 100644
--- a/code/__DEFINES/paper.dm
+++ b/code/__DEFINES/paper.dm
@@ -1,9 +1,9 @@
/// Maximimum number of characters that we allow on paper.
#define MAX_PAPER_LENGTH 5000
/// Max number of stamps that can be applied to the paper in tgui.
-#define MAX_PAPER_STAMPS 30
+#define MAX_PAPER_GRAPHICS 30
/// Max number of stamp overlays that we'll add to a piece of paper's icon.
-#define MAX_PAPER_STAMPS_OVERLAYS 4
+#define MAX_PAPER_GRAPHIC_OVERLAYS 4
/// Maximum length of input fields. Input fields greater than this length are clamped tgui-side. Input field text input greater than this length is rejected tgui-side, discarded + logged if it reaches DM-side.
#define MAX_PAPER_INPUT_FIELD_LENGTH MAX_NAME_LEN
diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index c5b37e2694d..8f5bc3ed498 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -123,7 +123,7 @@
#define RANDOM_HAIR_GRADIENT_STYLE "random_grad_style"
#define RANDOM_HAIR_GRADIENT_COLOR "random_grad_color"
-//prosthetics stuff
+//Limbs stuff
#define PROSTHETIC_NORMAL "normal"
#define PROSTHETIC_AMPUTATED "amputated"
#define PROSTHETIC_ROBOTIC "prosthetic"
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 4a139c2e562..609a65e52dd 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -115,6 +115,7 @@
#define INIT_ORDER_SOUND_CACHE 84
#define INIT_ORDER_SOUNDS 83
#define INIT_ORDER_INSTRUMENTS 82
+#define INIT_ORDER_WOUNDS 81
#define INIT_ORDER_VIS 80
#define INIT_ORDER_ACHIEVEMENTS 77
#define INIT_ORDER_RESEARCH 75
diff --git a/code/__DEFINES/traits/traits.dm b/code/__DEFINES/traits/traits.dm
index 1ac5ddf4205..dd87cb2b8aa 100644
--- a/code/__DEFINES/traits/traits.dm
+++ b/code/__DEFINES/traits/traits.dm
@@ -216,6 +216,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_NOMETABOLISM "no_metabolism"
#define TRAIT_NOCLONELOSS "no_cloneloss"
#define TRAIT_TOXIMMUNE "toxin_immune"
+#define TRAIT_NOBLOOD "noblood"
#define TRAIT_EASYDISMEMBER "easy_dismember"
#define TRAIT_LIMBATTACHMENT "limb_attach"
#define TRAIT_NOLIMBDISABLE "no_limb_disable"
@@ -436,6 +437,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define MAPPING_HELPER_TRAIT "mapping-helper" //obtained from mapping helper
/// Trait associated to wearing a suit
#define SUIT_TRAIT "suit"
+/// Trait associated with being EMPed
+#define EMP_TRAIT "emp"
+/// Trait associated with damage, whatever that means in the datum's context
+#define DAMAGE_TRAIT "damage"
/// Trait associated to lying down (having a [lying_angle] of a different value than zero).
#define LYING_DOWN_TRAIT "lying-down"
/// Trait associated to lacking electrical power.
@@ -488,6 +493,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define LACKING_MANIPULATION_APPENDAGES_TRAIT "lacking-manipulation-appengades" //trait associated to not having fine manipulation appendages such as hands
#define HANDCUFFED_TRAIT "handcuffed"
#define ORBITED_TRAIT "orbited"
+/// Trait applied to organs when they are unable to function.
+#define TRAIT_ORGAN_FAILING "organ_failing"
/// Trait granted by [/obj/item/warpwhistle]
#define WARPWHISTLE_TRAIT "warpwhistle"
///Turf trait for when a turf is transparent
@@ -531,6 +538,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Disables the floating animation. See above.
#define TRAIT_NO_FLOATING_ANIM "no-floating-animation"
+// Traits for ships and other overmap objects
+///This ship is cloaked or hidden and cannot be detected on long-range scanners
+#define TRAIT_CLOAKED "cloaked"
+///Currently only adds a blue-shifting during the cloak animation, will add functionality later when I add anti-ship weapons
+#define TRAIT_BLUESPACE_SHIFT "bluespace_shift"
+
/// Trait granted by [mob/living/silicon/ai]
/// Applied when the ai anchors itself
#define AI_ANCHOR_TRAIT "ai_anchor"
diff --git a/code/__DEFINES/wounds.dm b/code/__DEFINES/wounds.dm
index 8ed9aee0876..0832fc160f2 100644
--- a/code/__DEFINES/wounds.dm
+++ b/code/__DEFINES/wounds.dm
@@ -13,6 +13,12 @@
/// set wound_bonus on an item or attack to this to disable checking wounding for the attack
#define CANT_WOUND -100
+/// If there are multiple possible and valid wounds for the same type and severity, weight will be used to pick among them. See _wound_pregen_data.dm for more details
+/// This is used in pick_weight, so use integers
+#define WOUND_DEFAULT_WEIGHT 50
+/// Chance to roll a muscle wound from brute damage
+#define WOUND_MUSCLE_WEIGHT 15
+
// ~wound severities
#define WOUND_SEVERITY_TRIVIAL 0
#define WOUND_SEVERITY_MODERATE 1
@@ -22,18 +28,18 @@
#define WOUND_SEVERITY_LOSS 4
-// ~wound categories
-/// any brute weapon/attack that doesn't have sharpness. rolls for blunt bone wounds
-#define WOUND_BLUNT "blunt"
+// ~wound categories: wounding_types
+/// any brute weapon/attack that doesn't have sharpness. rolls for blunt bone and metal buckling wounds
+#define WOUND_BLUNT "wound_blunt"
/// any brute weapon/attack with sharpness = SHARP_EDGED. rolls for slash wounds
-#define WOUND_SLASH "slash"
-/// any brute weapon/attack with sharpness = SHARP_POINTY. rolls for piercing wounds
-#define WOUND_PIERCE "pierce"
-/// any concentrated burn attack (lasers really). rolls for burning wounds
-#define WOUND_BURN "burn"
-/// any brute attacks, rolled on a chance
-#define WOUND_MUSCLE "muscle"
+#define WOUND_SLASH "wound_slash"
+/// any brute weapon/attack with sharpness = SHARP_POINTY. rolls for piercing and electrical wounds
+#define WOUND_PIERCE "wound_pierce"
+/// any concentrated burn attack (lasers really). rolls for burning, heat-warping, and electrical wounds
+#define WOUND_BURN "wound_burn"
+/// Mainly a define used for wound_pregen_data, if a pregen data instance expects this, it will accept any and all wound types, even none at all
+#define WOUND_ALL "wound_all"
// ~determination second wind defines
// How much determination reagent to add each time someone gains a new wound in [/datum/wound/proc/second_wind]
@@ -47,22 +53,10 @@
/// While someone has determination in their system, their bleed rate is slightly reduced
#define WOUND_DETERMINATION_BLEED_MOD 0.85
-// ~wound global lists
-// list in order of highest severity to lowest
-GLOBAL_LIST_INIT(global_wound_types, list(WOUND_BLUNT = list(/datum/wound/blunt/critical, /datum/wound/blunt/severe, /datum/wound/blunt/moderate),
- WOUND_SLASH = list(/datum/wound/slash/critical, /datum/wound/slash/critical, /datum/wound/slash/moderate),
- WOUND_PIERCE = list(/datum/wound/pierce/critical, /datum/wound/pierce/severe, /datum/wound/pierce/moderate),
- WOUND_BURN = list(/datum/wound/burn/critical, /datum/wound/burn/severe, /datum/wound/burn/moderate),
- WOUND_MUSCLE = list(/datum/wound/muscle/severe, /datum/wound/muscle/moderate)
- ))
-
-// every single type of wound that can be rolled naturally, in case you need to pull a random one
-GLOBAL_LIST_INIT(global_all_wound_types, list(/datum/wound/blunt/critical, /datum/wound/blunt/severe, /datum/wound/blunt/moderate,
- /datum/wound/slash/critical, /datum/wound/slash/critical, /datum/wound/slash/moderate,
- /datum/wound/pierce/critical, /datum/wound/pierce/severe, /datum/wound/pierce/moderate,
- /datum/wound/burn/critical, /datum/wound/burn/severe, /datum/wound/burn/moderate,
- /datum/wound/muscle/severe, /datum/wound/muscle/moderate))
-
+/// Wounds using this competition mode will remove any wounds of a greater severity than itself in a random wound roll. In most cases, you dont want to use this.
+#define WOUND_COMPETITION_OVERPOWER_GREATERS "wound_submit"
+/// Wounds using this competition mode will remove any wounds of a lower severity than itself in a random wound roll. Used for ensuring the worse case scenario of a given injury_roll.
+#define WOUND_COMPETITION_OVERPOWER_LESSERS "wound_dominate"
// ~burn wound infection defines
// Thresholds for infection for burn wounds, once infestation hits each threshold, things get steadily worse
@@ -86,52 +80,108 @@ GLOBAL_LIST_INIT(global_all_wound_types, list(/datum/wound/blunt/critical, /datu
#define WOUND_SLASH_DEAD_CLOT_MIN 0.05
/// if we suffer a bone wound to the head that creates brain traumas, the timer for the trauma cycle is +/- by this percent (0-100)
#define WOUND_BONE_HEAD_TIME_VARIANCE 20
-/// Chance to roll a muscle wound from brute damage
-#define MUSCLE_WOUND_CHANCE 20
-
-
-// ~mangling defines
-// With the wounds pt. 2 update, general dismemberment now requires 2 things for a limb to be dismemberable (bone only creatures just need the second):
-// 1. Skin is mangled: A critical slash or pierce wound on that limb
-// 2. Bone is mangled: At least a severe bone wound on that limb
-// see [/obj/item/bodypart/proc/get_mangled_state] for more information
-#define BODYPART_MANGLED_NONE 0
-#define BODYPART_MANGLED_BONE 1
-#define BODYPART_MANGLED_FLESH 2
-#define BODYPART_MANGLED_BOTH 3
-
+/// charge drain per severity level
+#define WOUND_ELECTRIC_POWER_DRAIN 0.05
// ~biology defines
-// What kind of biology we have, and what wounds we can suffer, mostly relies on the HAS_FLESH and HAS_BONE species traits on human species
-/// golems and androids, cannot suffer any wounds
-#define BIO_INORGANIC 0
-/// skeletons and plasmemes, can only suffer bone wounds, only needs mangled bone to be able to dismember
-#define BIO_JUST_BONE 1
-/// nothing right now, maybe slimepeople in the future, can only suffer slashing, piercing, and burn wounds
-#define BIO_JUST_FLESH 2
-/// standard humanoids, can suffer all wounds, needs mangled bone and flesh to dismember. conveniently, what you get when you combine BIO_JUST_BONE and BIO_JUST_FLESH
-#define BIO_FLESH_BONE 3
-
+// What kind of biology we have, and what wounds we can suffer, relies on the biological_state var on bodyparts.
+/// Has absolutely fucking nothing, no wounds
+#define BIO_INORGANIC NONE
+/// Has bone - allows the victim to suffer T2-T3 bone blunt wounds
+#define BIO_BONE (1<<0)
+/// Has flesh - allows the victim to suffer fleshy slash pierce and burn wounds
+#define BIO_FLESH (1<<1)
+/// Has metal - allows the victim to suffer buckling and heat-warping wounds
+#define BIO_METAL (1<<2)
+/// Is wired internally - allows the victim to suffer electrical wounds (robotic T1-T3 slash/pierce)
+#define BIO_WIRED (1<<3)
+/// Has bloodflow - can suffer bleeding wounds and can bleed
+#define BIO_BLOODED (1<<4)
+/// Is connected by a joint - can suffer T1 bone blunt wounds (dislocation)
+#define BIO_JOINTED (1<<5)
+
+/// Robotic - can suffer all metal/wired wounds, such as: UNIMPLEMENTED PLEASE UPDATE ONCE SYNTH WOUNDS 9/5/2023 ~Niko
+#define BIO_ROBOTIC (BIO_METAL|BIO_WIRED)
+/// Has flesh and bone - See BIO_BONE and BIO_FLESH
+#define BIO_FLESH_BONE (BIO_BONE|BIO_FLESH)
+/// Standard humanoid - can bleed and suffer all flesh/bone wounds, such as: T1-3 slash/pierce/burn/blunt, except dislocations. Think human heads/chests
+#define BIO_STANDARD_UNJOINTED (BIO_FLESH_BONE|BIO_BLOODED)
+/// Standard humanoid limbs - can bleed and suffer all flesh/bone wounds, such as: T1-3 slash/pierce/burn/blunt. Can also bleed, and be dislocated. Think human arms and legs
+#define BIO_STANDARD_JOINTED (BIO_STANDARD_UNJOINTED|BIO_JOINTED)
+
+// "Where" a specific biostate is within a given limb
+// Interior is hard shit, the last line, shit like bones
+// Exterior is soft shit, targetted by slashes and pierces (usually), protects exterior
+// A limb needs both mangled interior and exterior to be dismembered, but slash/pierce must mangle exterior to attack the interior
+// Not having exterior/interior counts as mangled exterior/interior for the purposes of dismemberment
+/// The given biostate is on the "interior" of the limb - hard shit, protected by exterior
+#define ANATOMY_INTERIOR (1<<0)
+/// The given biostate is on the "exterior" of the limb - soft shit, protects interior
+#define ANATOMY_EXTERIOR (1<<1)
+#define ANATOMY_EXTERIOR_AND_INTERIOR (ANATOMY_EXTERIOR|ANATOMY_INTERIOR)
+
+// Wound series
+// A "wound series" is just a family of wounds that logically follow eachother
+// Multiple wounds in a single series cannot be on a limb - the highest severity will always be prioritized, and lower ones will be skipped
+
+/// T1-T3 Bleeding slash wounds. Requires flesh. Can cause bleeding, but doesn't require it. From: slash.dm
+#define WOUND_SERIES_FLESH_SLASH_BLEED "wound_series_flesh_slash_bled"
+/// T1-T3 Basic blunt wounds. T1 requires jointed, but 2-3 require bone. From: bone.dm
+#define WOUND_SERIES_BONE_BLUNT_BASIC "wound_series_bone_blunt_basic"
+/// T1-T3 Basic burn wounds. Requires flesh. From: burns.dm
+#define WOUND_SERIES_FLESH_BURN_BASIC "wound_series_flesh_burn_basic"
+/// T1-3 Bleeding puncture wounds. Requires flesh. Can cause bleeding, but doesn't require it. From: pierce.dm
+#define WOUND_SERIES_FLESH_PUNCTURE_BLEED "wound_series_flesh_puncture_bleed"
+/// T1-3 Buckling wounds. Requires metal. From: buckling.dm
+#define WOUND_SERIES_METAL_BUCKLING "wound_series_metal_buckling"
+/// T1-3 Heat-warping wounds. Requires metal. From: heat_warping.dm
+#define WOUND_SERIES_METAL_HEAT_WARPING "wound_series_metal_heat_warping"
+/// T1-3 Electrical wounds. Requires wired. From: electrical.dm
+#define WOUND_SERIES_WIRED_ELECTRICAL "wound_series_wired_electrical"
+/// T1-3 Muscle wounds. Requires flesh. From: muscle.dm
+#define WOUND_SERIES_FLESH_MUSCLE "wound_series_flesh_muscle"
+/// Generic loss wounds. See loss.dm
+#define WOUND_SERIES_LOSS_BASIC "wound_series_loss_basic"
+
+/// Used in get_corresponding_wound_type(): Will pick the highest severity wound out of severity_min and severity_max
+#define WOUND_PICK_HIGHEST_SEVERITY 1
+/// Used in get_corresponding_wound_type(): Will pick the lowest severity wound out of severity_min and severity_max
+#define WOUND_PICK_LOWEST_SEVERITY 2
+
+// With the wounds pt. 2 update, general dismemberment now requires 2 things for a limb to be dismemberable (exterior/bone only creatures just need the second):
+// 1. Exterior is mangled: A critical slash or pierce wound on that limb
+// 2. Interior is mangled: At least a severe bone wound on that limb
+// Lack of exterior or interior count as mangled exterior/interior respectively
+// see [/obj/item/bodypart/proc/get_mangled_state] for more information, as well as GLOB.bio_state_anatomy
+#define BODYPART_MANGLED_NONE NONE
+#define BODYPART_MANGLED_INTERIOR (1<<0)
+#define BODYPART_MANGLED_EXTERIOR (1<<1)
+#define BODYPART_MANGLED_BOTH (BODYPART_MANGLED_INTERIOR | BODYPART_MANGLED_EXTERIOR)
// ~wound flag defines
-/// If this wound requires having the HAS_FLESH flag for humanoids
-#define FLESH_WOUND (1<<0)
-/// If this wound requires having the HAS_BONE flag for humanaoids
-#define BONE_WOUND (1<<1)
-/// If having this wound counts as mangled flesh for dismemberment
-#define MANGLES_FLESH (1<<2)
-/// If having this wound counts as mangled bone for dismemberment
-#define MANGLES_BONE (1<<3)
+/// If having this wound counts as mangled exterior for dismemberment
+#define MANGLES_EXTERIOR (1<<0)
+/// If having this wound counts as mangled interior for dismemberment
+#define MANGLES_INTERIOR (1<<1)
/// If this wound marks the limb as being allowed to have gauze applied
-#define ACCEPTS_GAUZE (1<<4)
+#define ACCEPTS_GAUZE (1<<2)
/// If this wound marks the limb as being allowed to have splints applied
-#define ACCEPTS_SPLINT (1<<5)
+#define ACCEPTS_SPLINT (1<<3)
+/// Whether this wound is fixed when replacing the external plating
+#define PLATING_DAMAGE (1<<4)
+/// If this wound allows the victim to grasp it
+#define CAN_BE_GRASPED (1<<5)
+/// This causes the wound to numb the affected limb
+#define NUMBS_BODYPART (1<<6)
/// When a wound is staining the gauze with blood
#define GAUZE_STAIN_BLOOD 1
/// When a wound is staining the gauze with pus
#define GAUZE_STAIN_PUS 2
+/// Limb integrity is reduced to this before being used to calculate how much integrity loss it should have.
+#define WOUND_MAX_INTEGRITY_CONSIDERED 50
+
// ~blood_flow rates of change, these are used by [/datum/wound/proc/get_bleed_rate_of_change] from [/mob/living/carbon/proc/bleed_warn] to let the player know if their bleeding is getting better/worse/the same
/// Our wound is clotting and will eventually stop bleeding if this continues
#define BLOOD_FLOW_DECREASING -1
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index 72236dc21a0..7ebb379a4f3 100644
--- a/code/__HELPERS/_lists.dm
+++ b/code/__HELPERS/_lists.dm
@@ -70,6 +70,7 @@
#define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null
#define LAZYNULL(L) L = null
#define QDEL_LAZYLIST(L) for(var/I in L) qdel(I); L = null;
+#define QDEL_LAZYASSOCLIST(L) for(var/K in L) qdel(L[K]); L = null;
/// ORs two lazylists together without inserting errant nulls, returning a new list and not modifying the existing lists.
#define LAZY_LISTS_OR(left_list, right_list)\
(length(left_list)\
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 05041cfbb0b..8807bfea192 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -35,7 +35,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_screens, GLOB.ipc_screens_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_tail, GLOB.ipc_tail_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/body, GLOB.alternative_body_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/body/ipc_chassis, GLOB.ipc_chassis_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_spinneret, GLOB.spider_spinneret_list)
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 047dc2d98d1..70c8e42e9b8 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -73,7 +73,7 @@
if(!GLOB.ipc_tail_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_tail_list)
if(!GLOB.ipc_chassis_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/body/ipc_chassis, GLOB.ipc_chassis_list)
if(!GLOB.spider_legs_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_legs, GLOB.spider_legs_list)
if(!GLOB.spider_spinneret_list.len)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 43b9f09b9dd..58a08930bc3 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1097,14 +1097,14 @@ GLOBAL_REAL_VAR(list/stack_trace_storage)
str = "0" + str
. = str
-/atom/proc/Shake(pixelshiftx = 15, pixelshifty = 15, duration = 250)
+/// Perform a shake on an atom, resets its position afterwards
+/atom/proc/Shake(pixelshiftx = 2, pixelshifty = 2, duration = 2.5 SECONDS, shake_interval = 0.02 SECONDS)
var/initialpixelx = pixel_x
var/initialpixely = pixel_y
- var/shiftx = rand(-pixelshiftx,pixelshiftx)
- var/shifty = rand(-pixelshifty,pixelshifty)
- animate(src, pixel_x = pixel_x + shiftx, pixel_y = pixel_y + shifty, time = 0.2, loop = duration)
- pixel_x = initialpixelx
- pixel_y = initialpixely
+ animate(src, pixel_x = initialpixelx + rand(-pixelshiftx,pixelshiftx), pixel_y = initialpixelx + rand(-pixelshifty,pixelshifty), time = shake_interval, flags = ANIMATION_PARALLEL)
+ for (var/i in 3 to ((duration / shake_interval))) // Start at 3 because we already applied one, and need another to reset
+ animate(pixel_x = initialpixelx + rand(-pixelshiftx,pixelshiftx), pixel_y = initialpixely + rand(-pixelshifty,pixelshifty), time = shake_interval)
+ animate(pixel_x = initialpixelx, pixel_y = initialpixely, time = shake_interval)
/proc/weightclass2text(w_class)
switch(w_class)
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 8ff187f8819..bda6c75f4c6 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -39,6 +39,7 @@ GLOBAL_LIST_EMPTY(squid_face_list)
GLOBAL_LIST_EMPTY(ipc_screens_list)
GLOBAL_LIST_EMPTY(ipc_antennas_list)
GLOBAL_LIST_EMPTY(ipc_tail_list)
+GLOBAL_LIST_EMPTY(alternative_body_list)
GLOBAL_LIST_EMPTY(ipc_chassis_list)
GLOBAL_LIST_INIT(ipc_brain_list, list("Posibrain", "Man-Machine Interface"))
GLOBAL_LIST_EMPTY(spider_legs_list)
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index 3678bb492b4..b2a089374e3 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -164,7 +164,7 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items
/obj/item/restraints/legcuffs/bola = 1,
/obj/item/restraints/handcuffs/cable = 1,
/obj/item/melee/spear = 1,
- /obj/item/shield/riot/buckler = 1,
+ /obj/item/shield/buckler = 1,
/obj/item/grenade/iedcasing/spawned = 1,
/obj/item/melee/baton/cattleprod = 1,
/obj/item/throwing_star = 1,
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 326464a8ccb..a72b16ed538 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -302,7 +302,15 @@
* Useful for mobs that have their abilities mapped to right click.
*/
/mob/proc/ranged_secondary_attack(atom/target, modifiers)
+ var/signal_result = SEND_SIGNAL(src, COMSIG_MOB_ATTACK_RANGED_SECONDARY, target, modifiers)
+ if(signal_result & COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN)
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
+
+ if(signal_result & COMPONENT_SECONDARY_CONTINUE_ATTACK_CHAIN)
+ return SECONDARY_ATTACK_CONTINUE_CHAIN
+
+ return SECONDARY_ATTACK_CALL_NORMAL
/**
* Middle click
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 55e823bb6ff..275ed0aa9d7 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -137,23 +137,32 @@
/obj/attackby(obj/item/I, mob/living/user, params)
return ..() || ((obj_flags & CAN_BE_HIT) && I.attack_obj(src, user))
-/mob/living/attackby(obj/item/I, mob/living/user, params)
+/mob/living/attackby(obj/item/weapon, mob/living/user, params)
if(..())
return TRUE
- if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)
- for(var/datum/surgery/S in surgeries)
- if(body_position != LYING_DOWN && S.lying_required)
+
+ if(handle_tool_treatment(weapon, user, params2list(params)))
+ return TRUE
+
+ // MUST be done AFTER wound treatment
+ if((weapon.item_flags & SURGICAL_TOOL) && user.a_intent == INTENT_HELP && attempt_initiate_surgery(weapon, src, user))
+ return TRUE
+
+ //This should really be in attack but 2 much logic doesnt call parent
+ user.changeNext_move(weapon.attack_cooldown)
+ return weapon.attack(src, user, params)
+
+/// This handles treating wounds and performing surgeries with items. It is also a hack to avoid refactoring the entire attack chain (for now)
+/mob/living/proc/handle_tool_treatment(obj/item/tool, mob/living/user, list/modifiers)
+ if(user.a_intent == INTENT_HELP)
+ for(var/datum/surgery/active_surgery in surgeries)
+ if(body_position != LYING_DOWN && active_surgery.lying_required)
continue
- if(!S.self_operable && user == src)
+ if(!active_surgery.self_operable && user == src)
continue
- if(S.next_step(user, params2list(params)))
+ if(active_surgery.next_step(user, modifiers))
return TRUE
- if((I.item_flags & SURGICAL_TOOL) && user.a_intent == INTENT_HELP)
- if(attempt_initiate_surgery(I, src, user))
- return TRUE
- //This should really be in attack but 2 much logic doesnt call parent
- user.changeNext_move(I.attack_cooldown)
- return I.attack(src, user, params)
+ return FALSE
/mob/living/attack_hand(mob/living/user, list/modifiers)
if(..())
@@ -175,9 +184,12 @@
* * params - Click params of this attack
*/
/obj/item/proc/attack(mob/living/target_mob, mob/living/user, params)
- if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, target_mob, user, params) & COMPONENT_ITEM_NO_ATTACK)
- return
- SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, target_mob, user, params)
+ var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, target_mob, user, params) | SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, target_mob, user, params)
+ if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN)
+ return TRUE
+ if(signal_return & COMPONENT_SKIP_ATTACK)
+ return FALSE
+
if(item_flags & NOBLUDGEON)
return
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 074ee37614d..26e732ab5f0 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -34,7 +34,7 @@
A.attack_hand(src, modifiers)
/// Return TRUE to cancel other attack hand effects that respect it.
-/atom/proc/attack_hand(mob/user)
+/atom/proc/attack_hand(mob/user, list/modifiers)
. = FALSE
if(!(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND))
add_fingerprint(user)
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index c5f5407f442..4ac4b8c6b80 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -205,6 +205,7 @@ SUBSYSTEM_DEF(mapping)
CHECK_LIST_EXISTS("job_slots")
var/datum/map_template/shuttle/S = new(data["map_path"], data["map_name"], TRUE)
S.file_name = data["map_path"]
+ S.ship_class = data["map_name"]
if(istext(data["map_short_name"]))
S.short_name = data["map_short_name"]
diff --git a/code/controllers/subsystem/wounds.dm b/code/controllers/subsystem/wounds.dm
new file mode 100644
index 00000000000..dfe8e43832a
--- /dev/null
+++ b/code/controllers/subsystem/wounds.dm
@@ -0,0 +1,167 @@
+SUBSYSTEM_DEF(wounds)
+ name = "Wounds"
+ init_order = INIT_ORDER_WOUNDS
+ flags = SS_NO_FIRE
+
+ /// A "chronological" list of wound severities, starting at the least severe.
+ var/static/list/severities_chronological = list(
+ "[WOUND_SEVERITY_TRIVIAL]",
+ "[WOUND_SEVERITY_MODERATE]",
+ "[WOUND_SEVERITY_SEVERE]",
+ "[WOUND_SEVERITY_CRITICAL]"
+ )
+
+ /// A assoc list of BIO_ define to EXTERIOR/INTERIOR defines.
+ /// This is where the interior/exterior state of a given biostate is set.
+ /// Note that not all biostates are guaranteed to be one of these - and in fact, many are not
+ /// IMPORTANT NOTE: All keys are stored as text and must be converted via text2num
+ var/static/list/bio_state_anatomy = list(
+ "[BIO_WIRED]" = ANATOMY_EXTERIOR,
+ "[BIO_METAL]" = ANATOMY_INTERIOR,
+ "[BIO_FLESH]" = ANATOMY_EXTERIOR,
+ "[BIO_BONE]" = ANATOMY_INTERIOR,
+ )
+
+ /// Associated list of wound types and their pregen data.
+ var/list/datum/wound_pregen_data/pregen_data
+
+ // A wound series "collection" is merely a way for us to track what is in what series, and what their types are.
+ // Without this, we have no centralized way to determine what type is in what series outside of iterating over every pregen data.
+
+ /// A branching assoc list of (series -> list(severity -> list(typepath -> weight))). Allows you to say "I want a generic slash wound",
+ /// then "Of severity 2", and get a wound of that description - via get_corresponding_wound_type()
+ /// Series: A generic wound_series, such as WOUND_SERIES_BONE_BLUNT_BASIC
+ /// Severity: Any wounds held within this will be of this severity.
+ /// Typepath, Weight: Merely a pairing of a given typepath to its weight, held for convenience in pickweight.
+ var/list/series_collection
+
+ /// A branching assoc list of (wounding_type -> list(wound_series)).
+ /// Allows for determining of which wound series are caused by what.
+ var/static/list/types_to_series = list(
+ WOUND_BLUNT = list(
+ WOUND_SERIES_BONE_BLUNT_BASIC,
+ WOUND_SERIES_METAL_BUCKLING,
+ WOUND_SERIES_FLESH_MUSCLE,
+ ),
+ WOUND_SLASH = list(
+ WOUND_SERIES_FLESH_SLASH_BLEED,
+ WOUND_SERIES_WIRED_ELECTRICAL,
+ ),
+ WOUND_BURN = list(
+ WOUND_SERIES_FLESH_BURN_BASIC,
+ WOUND_SERIES_METAL_HEAT_WARPING,
+ WOUND_SERIES_WIRED_ELECTRICAL,
+ ),
+ WOUND_PIERCE = list(
+ WOUND_SERIES_FLESH_PUNCTURE_BLEED,
+ WOUND_SERIES_WIRED_ELECTRICAL,
+ ),
+ )
+
+/datum/controller/subsystem/wounds/Initialize(timeofday)
+ generate_wound_static_data()
+ generate_wound_series_collection()
+ return ..()
+
+/// Constructs [all_wound_pregen_data] by iterating through a typecache of pregen data, ignoring abstract types, and instantiating the rest.
+/datum/controller/subsystem/wounds/proc/generate_wound_static_data()
+ var/list/datum/wound_pregen_data/all_pregen_data = list()
+
+ for (var/datum/wound_pregen_data/iterated_path as anything in typecacheof(path = /datum/wound_pregen_data, ignore_root_path = TRUE))
+ if (initial(iterated_path.abstract))
+ continue
+
+ if (!isnull(all_pregen_data[initial(iterated_path.wound_path_to_generate)]))
+ stack_trace("pre-existing pregen data for [initial(iterated_path.wound_path_to_generate)] when [iterated_path] was being considered: [all_pregen_data[initial(iterated_path.wound_path_to_generate)]]. \
+ this is definitely a bug, and is probably because one of the two pregen data have the wrong wound typepath defined. [iterated_path] will not be instantiated")
+
+ continue
+
+ var/datum/wound_pregen_data/new_data = new iterated_path
+ LAZYSET(pregen_data, new_data.wound_path_to_generate, new_data)
+
+// Series -> severity -> type -> weight
+/// Generates [wound_series_collections] by iterating through all pregen_data. Refer to the mentioned list for documentation
+/datum/controller/subsystem/wounds/proc/generate_wound_series_collection()
+ for (var/datum/wound/wound_typepath as anything in typecacheof(/datum/wound, FALSE, TRUE))
+ var/datum/wound_pregen_data/data = pregen_data[wound_typepath]
+ if (!data)
+ continue
+
+ if (data.abstract)
+ stack_trace("somehow, a abstract wound_pregen_data instance ([data.type]) was instantiated and made it to generate_wound_series_collection()! \
+ i literally have no idea how! please fix this!")
+ continue
+
+ var/series = data.wound_series
+ var/list/datum/wound/series_list = series_collection[series]
+ if (isnull(series_list))
+ series_collection[series] = list()
+ series_list = series_collection[series]
+
+ var/severity = "[(initial(wound_typepath.severity))]"
+ var/list/datum/wound/severity_list = series_list[severity]
+ if (isnull(severity_list))
+ series_list[severity] = list()
+ severity_list = series_list[severity]
+
+ severity_list[wound_typepath] = data.weight
+
+/**
+ * Searches through all wounds for any of proper type, series, and biostate, and then returns a single one via pickweight.
+ * Is able to discern between, say, a flesh slash wound, and a metallic slash wound, and will return the respective one for the provided limb.
+ *
+ * The severity_max and severity_pick_mode args mostly exist in case you want a wound in a series that may not have your ideal severity wound, as it lets you
+ * essentially set a "fallback", where if your ideal wound doesnt exist, it'll still return something, trying to get closest to your ideal severity.
+ *
+ * Generally speaking, if you want a critical/severe/moderate wound, you should set severity_min to WOUND_SEVERITY_MODERATE, severity_max to your ideal wound,
+ * and severity_pick_mode to WOUND_PICK_HIGHEST_SEVERITY - UNLESS you for some reason want the LOWEST severity, in which case you should set
+ * severity_max to the highest wound you're willing to tolerate, and severity_pick_mode to WOUND_PICK_LOWEST_SEVERITY.
+ *
+ * Args:
+ * * list/wounding_types: A list of wounding_types. Only wounds that accept these wound types will be considered.
+ * * obj/item/bodypart/part: The limb we are considering. Extremely important for biostates.
+ * * severity_min: The minimum wound severity we will search for.
+ * * severity_max = severity_min: The maximum wound severity we will search for.
+ * * severity_pick_mode = WOUND_PICK_HIGHEST_SEVERITY: The "pick mode" we will use when considering multiple wounds of acceptable severity. See the above defines.
+ * * random_roll = TRUE: If this is considered a "random" consideration. If true, only wounds that can be randomly generated will be considered.
+ * * duplicates_allowed = FALSE: If exact duplicates of a given wound on part are tolerated. Useful for simply getting a path and not instantiating.
+ * * care_about_existing_wounds = TRUE: If we iterate over wounds to see if any are above or at a given wounds severity, and disregard it if any are. Useful for simply getting a path and not instantiating.
+ *
+ * Returns:
+ * A randomly picked wound typepath meeting all the above criteria and being applicable to the part's biotype - or null if there were none.
+ */
+/datum/controller/subsystem/wounds/proc/get_corresponding_wound_type(list/wounding_types, obj/item/bodypart/part, severity_min, severity_max = severity_min, severity_pick_mode = WOUND_PICK_HIGHEST_SEVERITY, random_roll = TRUE, duplicates_allowed = FALSE, care_about_existing_wounds = TRUE)
+ RETURN_TYPE(/datum/wound) // note that just because its set to return this doesnt mean its non-nullable
+
+ var/list/wounding_type_list = list()
+ for (var/wounding_type as anything in wounding_types)
+ wounding_type_list |= SSwounds.types_to_series[wounding_type]
+ if (!length(wounding_type_list))
+ return null
+
+ var/list/datum/wound/paths_to_pick_from = list()
+ for (var/series as anything in shuffle(wounding_type_list))
+ var/list/severity_list = series_collection[series]
+ if (!length(severity_list))
+ continue
+
+ var/picked_severity
+ for (var/severity_text as anything in shuffle(severities_chronological))
+ var/severity = text2num(severity_text)
+ if (severity > severity_min || severity < severity_max)
+ continue
+
+ if (isnull(picked_severity) || ((severity_pick_mode == WOUND_PICK_HIGHEST_SEVERITY && severity > picked_severity) || (severity_pick_mode == WOUND_PICK_LOWEST_SEVERITY && severity < picked_severity)))
+ picked_severity = severity
+
+ var/list/wound_typepaths = severity_list["[picked_severity]"]
+ if (!length(wound_typepaths))
+ continue
+
+ for (var/datum/wound/iterated_path as anything in wound_typepaths)
+ var/datum/wound_pregen_data/pregen_data = SSwounds.pregen_data[iterated_path]
+ if (pregen_data.can_be_applied_to(part, wounding_types, random_roll = random_roll, duplicates_allowed = duplicates_allowed, care_about_existing_wounds = care_about_existing_wounds))
+ paths_to_pick_from[iterated_path] = wound_typepaths[iterated_path]
+
+ return pick_weight(paths_to_pick_from) // we found our winners!
diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm
index f0686579e4d..ec0c0f958ba 100644
--- a/code/datums/components/butchering.dm
+++ b/code/datums/components/butchering.dm
@@ -97,10 +97,8 @@
H.apply_damage(source.force, BRUTE, BODY_ZONE_HEAD, wound_bonus = CANT_WOUND)
var/obj/item/bodypart/slit_throat = H.get_bodypart(BODY_ZONE_HEAD)
- if(slit_throat)
- var/datum/wound/slash/critical/screaming_through_a_slit_throat = new
- screaming_through_a_slit_throat.apply_wound(slit_throat)
- H.apply_status_effect(/datum/status_effect/neck_slice)
+ if (H.cause_wound_of_type_and_severity(WOUND_SLASH, slit_throat, WOUND_SEVERITY_CRITICAL))
+ H.apply_status_effect(/datum/status_effect/neck_slice)
/datum/component/butchering/proc/Butcher(mob/living/butcher, mob/living/meat)
var/turf/T = meat.drop_location()
diff --git a/code/datums/components/crafting/recipes/weapon.dm b/code/datums/components/crafting/recipes/weapon.dm
index 1f0151054e0..fdf0d3a9598 100644
--- a/code/datums/components/crafting/recipes/weapon.dm
+++ b/code/datums/components/crafting/recipes/weapon.dm
@@ -10,20 +10,6 @@
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
-/datum/crafting_recipe/strobeshield
- name = "Strobe Shield"
- result = /obj/item/shield/riot/flash
- reqs = list(/obj/item/stack/cable_coil = 1,
- /obj/item/assembly/flash/handheld = 1,
- /obj/item/shield/riot = 1)
- time = 40
- category = CAT_WEAPONRY
- subcategory = CAT_WEAPON
-
-/datum/crafting_recipe/strobeshield/New()
- ..()
- blacklist |= subtypesof(/obj/item/shield/riot/)
-
/datum/crafting_recipe/molotov
name = "Molotov"
result = /obj/item/reagent_containers/food/drinks/molotov
diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm
index 70fc4308f4b..ecda3afc45f 100644
--- a/code/datums/components/embedded.dm
+++ b/code/datums/components/embedded.dm
@@ -97,7 +97,8 @@
if(harmful)
victim.throw_alert("embeddedobject", /atom/movable/screen/alert/embeddedobject)
playsound(victim,'sound/weapons/bladeslice.ogg', 40)
- weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody!
+ if(limb.can_bleed())
+ weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody!
damage += weapon.w_class * impact_pain_mult
SEND_SIGNAL(victim, COMSIG_ADD_MOOD_EVENT, "embedded", /datum/mood_event/embedded)
diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm
index 5ceffc3cb75..feedd27667e 100644
--- a/code/datums/components/pellet_cloud.dm
+++ b/code/datums/components/pellet_cloud.dm
@@ -298,13 +298,13 @@
if(isbodypart(target))
hit_part = target
target = hit_part.owner
- if(wound_info_by_part[hit_part] && (initial(P.damage_type) == BRUTE || initial(P.damage_type) == BURN)) // so a cloud of disablers that deal stamina don't inadvertently end up causing burn wounds)
+ var/damage_type = initial(P.damage_type)
+ if(wound_info_by_part[hit_part] && (damage_type == BRUTE || damage_type == BURN)) // so a cloud of disablers that deal stamina don't inadvertently end up causing burn wounds)
var/damage_dealt = wound_info_by_part[hit_part][CLOUD_POSITION_DAMAGE]
var/w_bonus = wound_info_by_part[hit_part][CLOUD_POSITION_W_BONUS]
var/bw_bonus = wound_info_by_part[hit_part][CLOUD_POSITION_BW_BONUS]
- var/wound_type = (initial(P.damage_type) == BRUTE) ? WOUND_BLUNT : WOUND_BURN // sharpness is handled in the wound rolling
- wound_info_by_part[hit_part] = null
- hit_part.painless_wound_roll(wound_type, damage_dealt, w_bonus, bw_bonus, initial(P.sharpness))
+ wound_info_by_part -= hit_part
+ hit_part.wound_roll((damage_type == BRUTE) ? damage_dealt : 0, (damage_type == BURN) ? damage_dealt : 0, w_bonus, bw_bonus, initial(P.sharpness))
if(num_hits > 1)
target.visible_message(span_danger("[target] is hit by [num_hits] [proj_name]s[hit_part ? " in the [hit_part.name]" : ""]!"), null, null, COMBAT_MESSAGE_RANGE, target)
diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm
index 4b0f8f4a051..b8c66c1c657 100644
--- a/code/datums/components/storage/concrete/pockets.dm
+++ b/code/datums/components/storage/concrete/pockets.dm
@@ -2,6 +2,7 @@
max_items = 2
max_w_class = WEIGHT_CLASS_SMALL
max_combined_w_class = 50
+ alt_click_open = FALSE // alt-click has special interactions on a lot of clothing items and shouldn't be canceled by opening storage instead
use_sound = null
/datum/component/storage/concrete/pockets/handle_item_insertion(obj/item/I, prevent_warning, mob/user)
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index e2adb916295..097a0871da6 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -62,8 +62,12 @@
var/allow_big_nesting = FALSE //allow storage objects of the same or greater size.
- var/attack_hand_interact = TRUE //interact on attack hand.
- var/quickdraw = FALSE //altclick interact
+ /// Should left-click open this storage item while equipped?
+ var/attack_hand_interact = TRUE
+ /// Should alt-click open this storage item?
+ var/alt_click_open = TRUE
+ /// Should alt or right click quickly draw the first available item?
+ var/quickdraw = FALSE
///can we quickopen storage when it's in a pocket
var/pocket_openable = FALSE
@@ -122,10 +126,12 @@
RegisterSignal(parent, COMSIG_MOVABLE_POST_THROW, PROC_REF(close_all))
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
- RegisterSignals(parent, list(COMSIG_CLICK_ALT, COMSIG_ATOM_ATTACK_HAND_SECONDARY, COMSIG_ITEM_ATTACK_SELF_SECONDARY), PROC_REF(on_open_storage_click))
+ RegisterSignals(parent, list(COMSIG_ATOM_ATTACK_HAND_SECONDARY, COMSIG_ITEM_ATTACK_SELF_SECONDARY), PROC_REF(on_open_storage_click))
RegisterSignal(parent, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(on_open_storage_attackby))
RegisterSignal(parent, COMSIG_MOUSEDROP_ONTO, PROC_REF(mousedrop_onto))
RegisterSignal(parent, COMSIG_MOUSEDROPPED_ONTO, PROC_REF(mousedrop_receive))
+ if(alt_click_open)
+ RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_open_storage_click))
update_actions()
diff --git a/code/datums/components/writing.dm b/code/datums/components/writing.dm
new file mode 100644
index 00000000000..9be545c09c4
--- /dev/null
+++ b/code/datums/components/writing.dm
@@ -0,0 +1,631 @@
+/datum/component/writing
+ /// Lazylist of raw, unsanitised, unparsed text inputs that have been made to the paper.
+ var/list/datum/paper_input/raw_text_inputs
+ /// Lazylist of all raw stamp data to be sent to tgui.
+ var/list/datum/paper_graphic/raw_graphic_data
+ /// Lazylist of all fields that have had some input added to them.
+ var/list/datum/paper_field/raw_field_input_data
+
+ /// Helper cache that contains a list of all icon_states that are currently stamped on the paper.
+ var/list/graphic_cache
+ /// The number of input fields
+ var/input_field_count = 0
+ /// Readable by blind people
+ var/braille
+
+ /// Width of the TGUI window
+ var/window_width
+ /// Height of the TGUI window
+ var/window_height
+ /// Whether the TGUI window is resizable
+ var/resizable
+ /// List of asset datum typepaths used
+ var/list/asset_list
+
+ /// Positioning for applied graphics (stamps, icons, etc) in tgui
+ var/list/graphics
+
+/datum/component/writing/Initialize(
+ raw_text,
+ braille = FALSE,
+ window_width = 420,
+ window_height = 500,
+ resizable = TRUE,
+ asset_list = list(/datum/asset/spritesheet/simple/paper),
+ ...
+)
+ if(!isatom(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ if(raw_text)
+ add_raw_text(raw_text)
+ src.window_width = window_width
+ src.window_height = window_height
+ src.asset_list = asset_list
+ src.resizable = resizable
+ src.braille = braille
+
+ var/atom/parent_atom = parent
+ parent_atom.update_appearance()
+ return ..()
+
+/datum/component/writing/Destroy(force)
+ LAZYNULL(raw_text_inputs)
+ LAZYNULL(raw_graphic_data)
+ LAZYNULL(raw_field_input_data)
+ LAZYNULL(graphic_cache)
+ return ..()
+
+/datum/component/writing/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
+ RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby))
+ RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(handle_overlays))
+ if(isitem(parent))
+ RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self))
+
+/datum/component/writing/UnregisterFromParent()
+ if(isitem(parent))
+ UnregisterSignal(parent, COMSIG_ITEM_ATTACK_SELF)
+ UnregisterSignal(parent, list(COMSIG_ATOM_EXAMINE, COMSIG_ATOM_ATTACKBY, COMSIG_ATOM_UPDATE_OVERLAYS))
+
+/datum/component/writing/proc/on_examine(datum/source, mob/user, list/examine_list)
+ SIGNAL_HANDLER
+
+ if(!in_range(user, parent) && !isobserver(user))
+ examine_list += span_warning("You're too far away to read it!")
+ return
+
+ if(!braille && user.is_blind())
+ to_chat(user, span_warning("You are blind and can't read anything!"))
+ return
+
+ if(user.can_read(parent))
+ INVOKE_ASYNC(src, PROC_REF(ui_interact), user)
+ return
+ examine_list += span_warning("You cannot read it!")
+
+/// Handles attackby interaction
+/datum/component/writing/proc/on_attackby(datum/source, obj/item/attacking_item, mob/user, params)
+ SIGNAL_HANDLER
+
+ var/atom/parent_atom = parent
+
+ // Handle writing items.
+ var/writing_stats = istype(attacking_item) ? attacking_item.get_writing_implement_details() : null
+
+ if(writing_stats?["interaction_mode"] == MODE_WRITING)
+ if(!user.can_write(attacking_item))
+ return COMPONENT_NO_AFTERATTACK
+ if(get_total_length() >= MAX_PAPER_LENGTH)
+ to_chat(user, span_warning("This sheet of paper is full!"))
+ return COMPONENT_NO_AFTERATTACK
+
+ INVOKE_ASYNC(src, PROC_REF(ui_interact), user)
+ return COMPONENT_NO_AFTERATTACK
+
+ // Handle stamping items.
+ if(writing_stats?["interaction_mode"] == MODE_STAMPING)
+ if(!user.can_read(parent_atom) || user.is_blind())
+ //The paper's stampable window area is assumed approx 400x500
+ add_graphic(writing_stats["stamp_class"], rand(0, 400), rand(0, 500), rand(0, 360), writing_stats["stamp_icon_state"])
+ user.visible_message(span_notice("[user] blindly stamps [parent_atom] with \the [attacking_item]!"))
+ to_chat(user, span_notice("You stamp [parent_atom] with \the [attacking_item] the best you can!"))
+ playsound(parent_atom, 'sound/items/handling/standard_stamp.ogg', 50, vary = TRUE)
+ else
+ to_chat(user, span_notice("You ready your stamp over [parent_atom]! "))
+ INVOKE_ASYNC(src, PROC_REF(ui_interact), user)
+ return COMPONENT_NO_AFTERATTACK
+
+ INVOKE_ASYNC(src, PROC_REF(ui_interact), user)
+ return NONE
+
+/// Handles attack self interaction
+/datum/component/writing/proc/on_attack_self(datum/source, mob/user, list/modifiers)
+ SIGNAL_HANDLER
+ INVOKE_ASYNC(src, PROC_REF(ui_interact), user)
+
+/// Handles updating overlays
+/datum/component/writing/proc/handle_overlays(obj/item/parent, list/overlays)
+ SIGNAL_HANDLER
+
+ var/mutable_appearance/graphic_overlay
+ for(var/graphic_icon_state in graphic_cache)
+ graphic_overlay = mutable_appearance('icons/obj/bureaucracy.dmi', "paper_[graphic_icon_state]")
+ graphic_overlay.pixel_x = rand(-2, 2)
+ graphic_overlay.pixel_y = rand(-3, 2)
+ overlays += graphic_overlay
+
+/// Returns a deep copy list of raw_text_inputs, or null if the list is empty or doesn't exist.
+/datum/component/writing/proc/copy_raw_text()
+ if(!LAZYLEN(raw_text_inputs))
+ return null
+
+ var/list/datum/paper_input/copy_text = list()
+
+ for(var/datum/paper_input/existing_input as anything in raw_text_inputs)
+ copy_text += existing_input.make_copy()
+
+ return copy_text
+
+/// Returns a deep copy list of raw_field_input_data, or null if the list is empty or doesn't exist.
+/datum/component/writing/proc/copy_field_text()
+ if(!LAZYLEN(raw_field_input_data))
+ return null
+
+ var/list/datum/paper_field/copy_text = list()
+
+ for(var/datum/paper_field/existing_input as anything in raw_field_input_data)
+ copy_text += existing_input.make_copy()
+
+ return copy_text
+
+/// Returns a deep copy list of raw_stamp_data, or null if the list is empty or doesn't exist. Does not copy overlays or stamp_cache, only the tgui rendered stamps.
+/datum/component/writing/proc/copy_raw_graphics()
+ if(!LAZYLEN(raw_graphic_data))
+ return null
+
+ var/list/datum/paper_field/copy_graphics = list()
+
+ for(var/datum/paper_graphic/existing_input as anything in raw_graphic_data)
+ copy_graphics += existing_input.make_copy()
+
+ return copy_graphics
+
+/**
+ * This proc duplicates all content to another component.
+ *
+ * Arguments
+ * * other_text - The other component to copy to.
+ * * colored - If true, the copied paper will be coloured and will inherit all colours.
+ * * greyscale_override - If set to a colour string and coloured is false, it will override the default of COLOR_WEBSAFE_DARK_GRAY when copying.
+ */
+
+/datum/component/writing/proc/copy_to(datum/component/writing/other_text, colored = TRUE, greyscale_override = null)
+ other_text.raw_text_inputs = copy_raw_text()
+ other_text.raw_field_input_data = copy_field_text()
+
+ if(!colored)
+ var/new_color = greyscale_override || COLOR_WEBSAFE_DARK_GRAY
+ for(var/datum/paper_input/text as anything in other_text.raw_text_inputs)
+ text.colour = new_color
+
+ for(var/datum/paper_field/text as anything in other_text.raw_field_input_data)
+ text.field_data.colour = new_color
+
+ other_text.input_field_count = input_field_count
+ other_text.raw_graphic_data = copy_raw_graphics()
+ other_text.graphic_cache = graphic_cache?.Copy()
+
+/* This simple helper adds the supplied raw text to the paper, appending to the end of any existing contents.
+ *
+ * This a God proc that does not care about paper max length and expects sanity checking beforehand if you want to respect it.
+ *
+ * The caller is expected to handle updating icons and appearance after adding text, to allow for more efficient batch adding loops.
+ * * Arguments:
+ * * text - The text to append to the component.
+ * * font - The font to use.
+ * * color - The font color to use.
+ * * bold - Whether this text should be rendered completely bold.
+ */
+/datum/component/writing/proc/add_raw_text(text, font, color, bold, advanced_html)
+ var/new_input_datum = new /datum/paper_input(
+ text,
+ font,
+ color,
+ bold,
+ advanced_html,
+ )
+
+ input_field_count += get_input_field_count(text)
+
+ LAZYADD(raw_text_inputs, new_input_datum)
+
+/**
+ * This simple helper adds the supplied input field data to the paper.
+ *
+ * It will not overwrite any existing input field data by default and will early return FALSE if this scenario happens unless overwrite is
+ * set properly.
+ *
+ * Other than that, this is a God proc that does not care about max length or out-of-range IDs and expects sanity checking beforehand if
+ * you want to respect it.
+ *
+ * * Arguments:
+ * * field_id - The ID number of the field to which this data applies.
+ * * text - The text to append to the paper.
+ * * font - The font to use.
+ * * color - The font color to use.
+ * * bold - Whether this text should be rendered completely bold.
+ * * overwrite - If TRUE, will overwrite existing field ID's data if it exists.
+ */
+/datum/component/writing/proc/add_field_input(field_id, text, font, color, bold, signature_name, overwrite = FALSE)
+ var/datum/paper_field/field_data_datum = null
+
+ var/is_signature = ((text == "%sign") || (text == "%s"))
+
+ var/field_text = is_signature ? signature_name : text
+ var/field_font = is_signature ? SIGNATURE_FONT : font
+
+ for(var/datum/paper_field/field_input in raw_field_input_data)
+ if(field_input.field_index == field_id)
+ if(!overwrite)
+ return FALSE
+ field_data_datum = field_input
+ break
+
+ if(!field_data_datum)
+ var/new_field_input_datum = new /datum/paper_field(
+ field_id,
+ field_text,
+ field_font,
+ color,
+ bold,
+ is_signature,
+ )
+ LAZYADD(raw_field_input_data, new_field_input_datum)
+ return TRUE
+
+ var/new_input_datum = new /datum/paper_input(
+ field_text,
+ field_font,
+ color,
+ bold,
+ )
+
+ field_data_datum.field_data = new_input_datum;
+ field_data_datum.is_signature = is_signature;
+
+ return TRUE
+
+/datum/component/writing/proc/get_input_field_count(raw_text)
+ var/static/regex/field_regex = new(@"\[_+\]","g")
+
+ var/counter = 0
+ while(field_regex.Find(raw_text))
+ counter++
+
+ return counter
+
+/**
+ * This simple helper adds the supplied graphic to the paper, appending to the end of any existing graphics.
+ *
+ * This a God proc that does not care about graphic max count and expects sanity checking beforehand if you want to respect it.
+ *
+ * It does however respect the overlay limit and will not apply any overlays past the cap.
+ *
+ * The caller is expected to handle updating icons and appearance after adding text, to allow for more efficient batch adding loops.
+ * * Arguments:
+ * * graphic_class - Div class for the graphic.
+ * * graphic_x - X coordinate to render the graphic in tgui.
+ * * graphic_y - Y coordinate to render the graphic in tgui.
+ * * rotation - Degrees of rotation for the graphic to be rendered with in tgui.
+ * * graphic_icon_state - Icon state for the graphic as part of overlay rendering.
+ */
+/datum/component/writing/proc/add_graphic(graphic_class, graphic_x, graphic_y, rotation, graphic_icon_state)
+ var/new_graphic_datum = new /datum/paper_graphic(graphic_class, graphic_x, graphic_y, rotation)
+ LAZYADD(raw_graphic_data, new_graphic_datum);
+
+ if(LAZYLEN(graphic_cache) > MAX_PAPER_GRAPHIC_OVERLAYS)
+ return
+ var/atom/parent_atom = parent
+ LAZYADD(graphic_cache, graphic_icon_state)
+ parent_atom.update_overlays()
+
+/datum/component/writing/proc/get_total_length()
+ var/total_length = 0
+ for(var/datum/paper_input/entry as anything in raw_text_inputs)
+ total_length += length(entry.raw_text)
+
+ return total_length
+
+/// Get a single string representing the text on a page
+/datum/component/writing/proc/get_raw_text()
+ var/paper_contents = ""
+ for(var/datum/paper_input/line as anything in raw_text_inputs)
+ paper_contents += line.raw_text + "/"
+ return paper_contents
+
+// TGUI stuff - allows actually seeing the paper interface
+
+/datum/component/writing/ui_state(mob/user)
+ return parent.ui_state(user)
+
+/datum/component/writing/ui_status(mob/user, datum/ui_state/state)
+ if(!in_range(user, parent) && !isobserver(user))
+ return UI_CLOSE
+ if(user.incapacitated(TRUE, TRUE) || (isobserver(user) && !check_rights_for(user.client, R_ADMIN)))
+ return UI_UPDATE
+ // Even harder to read if you're blind... unless it has braille!
+ // .. or if you cannot read
+ if(!braille && user.is_blind())
+ to_chat(user, span_warning("You are blind and can't read anything!"))
+ return UI_CLOSE
+ if(!user.can_read(parent))
+ return UI_CLOSE
+ // Get the parent atom's UI status
+ var/parent_status = parent.ui_status(user, state)
+ var/atom/parent_atom = parent
+ // If the paper is on an unwritable noticeboard
+ if(istype(parent_atom.loc, /obj/structure/noticeboard))
+ var/obj/structure/noticeboard/noticeboard = parent_atom.loc
+ if(!noticeboard.allowed(user))
+ parent_status = min(parent_status, UI_UPDATE)
+ return parent_status
+
+/datum/component/writing/ui_host()
+ return parent.ui_host()
+
+/datum/component/writing/ui_assets(mob/user)
+ var/list/ui_asset_list = list()
+ for(var/asset_type in asset_list)
+ ui_asset_list += get_asset_datum(asset_type)
+ return ui_asset_list
+
+/datum/component/writing/ui_interact(mob/user, datum/tgui/ui)
+ ui = SStgui.try_update_ui(user, src, ui)
+ if(!ui)
+ var/atom/parent_atom = parent
+ ui = new(user, src, "PaperSheet", parent_atom.name)
+ ui.open()
+
+/datum/component/writing/ui_static_data(mob/user)
+ var/list/static_data = list()
+
+ var/atom/parent_atom = parent
+
+ static_data["user_name"] = user.real_name
+
+ static_data["raw_text_input"] = list()
+ for(var/datum/paper_input/text_input as anything in raw_text_inputs)
+ static_data["raw_text_input"] += list(text_input.to_list())
+
+ static_data["raw_field_input"] = list()
+ for(var/datum/paper_field/field_input as anything in raw_field_input_data)
+ static_data["raw_field_input"] += list(field_input.to_list())
+
+ static_data["raw_graphic_input"] = list()
+ for(var/datum/paper_graphic/graphic_input as anything in raw_graphic_data)
+ static_data["raw_graphic_input"] += list(graphic_input.to_list())
+
+ static_data["max_length"] = MAX_PAPER_LENGTH
+ static_data["max_input_field_length"] = MAX_PAPER_INPUT_FIELD_LENGTH
+ static_data["paper_color"] = parent_atom.color ? parent_atom.color : COLOR_WHITE
+ static_data["paper_name"] = parent_atom
+ static_data["paper_width"] = window_width
+ static_data["paper_height"] = window_height
+ static_data["paper_resizable"] = resizable
+
+ static_data["default_pen_font"] = PEN_FONT
+ static_data["default_pen_color"] = COLOR_BLACK
+ static_data["signature_font"] = FOUNTAIN_PEN_FONT
+
+ return static_data
+
+/datum/component/writing/ui_data(mob/user)
+ var/list/data = list()
+ if(!isliving(user))
+ return data
+
+ var/atom/parent_atom = parent
+ var/obj/item/holding = user.get_active_held_item()
+ // Use a clipboard's pen, if applicable
+ if(istype(parent_atom.loc, /obj/item/clipboard))
+ var/obj/item/clipboard/clipboard = parent_atom.loc
+ // This is just so you can still use a stamp if you're holding one. Otherwise, it'll
+ // use the clipboard's pen, if applicable.
+ if(!istype(holding, /obj/item/stamp) && clipboard.pen)
+ holding = clipboard.pen
+ data["held_item_details"] = istype(holding) ? holding.get_writing_implement_details() : null
+
+ return data
+
+/datum/component/writing/ui_act(action, params, datum/tgui/ui)
+ . = ..()
+ if(.)
+ return
+
+ var/mob/user = ui.user
+
+ var/atom/parent_atom = parent
+
+ switch(action)
+ if("add_stamp")
+ var/obj/item/holding = user.get_active_held_item()
+ var/stamp_info = holding?.get_writing_implement_details()
+ if(!stamp_info || (stamp_info["interaction_mode"] != MODE_STAMPING))
+ return TRUE
+
+ var/stamp_class = stamp_info["stamp_class"];
+
+ // If the paper is on an unwritable noticeboard, this usually shouldn't be possible.
+ if(istype(parent_atom.loc, /obj/structure/noticeboard))
+ var/obj/structure/noticeboard/noticeboard = parent_atom.loc
+ if(!noticeboard.allowed(user))
+ log_paper("[key_name(user)] tried to add stamp to [parent_atom] when it was on an unwritable noticeboard: \"[stamp_class]\"")
+ return TRUE
+
+ var/stamp_x = text2num(params["x"])
+ var/stamp_y = text2num(params["y"])
+ var/stamp_rotation = text2num(params["rotation"])
+ var/stamp_icon_state = stamp_info["stamp_icon_state"]
+
+ if (LAZYLEN(raw_graphic_data) >= MAX_PAPER_GRAPHICS)
+ to_chat(usr, pick("You try to stamp but you miss!", "There is no where else you can stamp!"))
+ return TRUE
+
+ add_graphic(stamp_class, stamp_x, stamp_y, stamp_rotation, stamp_icon_state)
+ user.visible_message(span_notice("[user] stamps [parent_atom] with \the [holding.name]!"), span_notice("You stamp [parent_atom] with \the [holding.name]!"))
+ playsound(parent_atom, 'sound/items/handling/standard_stamp.ogg', 50, vary = TRUE)
+ parent_atom.update_appearance()
+ update_static_data_for_all_viewers()
+ return TRUE
+ if("add_text")
+ var/paper_input = params["text"]
+ var/this_input_length = length(paper_input)
+
+ if(this_input_length == 0)
+ to_chat(user, pick("Writing block strikes again!", "You forgot to write anything!"))
+ return TRUE
+
+ // If the paper is on an unwritable noticeboard, this usually shouldn't be possible.
+ if(istype(parent_atom.loc, /obj/structure/noticeboard))
+ var/obj/structure/noticeboard/noticeboard = parent_atom.loc
+ if(!noticeboard.allowed(user))
+ log_paper("[key_name(user)] tried to write to [parent_atom] when it was on an unwritable noticeboard: \"[paper_input]\"")
+ return TRUE
+
+ var/obj/item/holding = user.get_active_held_item()
+ // Use a clipboard's pen, if applicable
+ if(istype(parent_atom.loc, /obj/item/clipboard))
+ var/obj/item/clipboard/clipboard = parent_atom.loc
+ // This is just so you can still use a stamp if you're holding one. Otherwise, it'll
+ // use the clipboard's pen, if applicable.
+ if(!istype(holding, /obj/item/stamp) && clipboard.pen)
+ holding = clipboard.pen
+
+ // As of the time of writing, can_write outputs a message to the user so we don't have to.
+ if(!user.can_write(holding))
+ return TRUE
+
+ var/current_length = get_total_length()
+ var/new_length = current_length + this_input_length
+
+ // tgui should prevent this outcome.
+ if(new_length > MAX_PAPER_LENGTH)
+ log_paper("[key_name(user)] tried to write to [parent_atom] when it would exceed the length limit by [new_length - MAX_PAPER_LENGTH] characters: \"[paper_input]\"")
+ return TRUE
+
+ // Safe to assume there are writing implement details as user.can_write(...) fails with an invalid writing implement.
+ var/writing_implement_data = holding.get_writing_implement_details()
+
+ add_raw_text(paper_input, writing_implement_data["font"], writing_implement_data["color"], writing_implement_data["use_bold"], check_rights_for(user?.client, R_FUN))
+
+ log_paper("[key_name(user)] wrote to [parent_atom]: \"[paper_input]\"")
+ to_chat(user, "You have added to your paper masterpiece!");
+
+ update_static_data_for_all_viewers()
+ parent_atom.update_appearance()
+ return TRUE
+ if("fill_input_field")
+ // If the paper is on an unwritable noticeboard, this usually shouldn't be possible.
+ if(istype(parent_atom.loc, /obj/structure/noticeboard))
+ var/obj/structure/noticeboard/noticeboard = parent_atom.loc
+ if(!noticeboard.allowed(user))
+ log_paper("[key_name(user)] tried to write to the input fields of [parent_atom] when it was on an unwritable noticeboard!")
+ return TRUE
+
+ var/obj/item/holding = user.get_active_held_item()
+ // Use a clipboard's pen, if applicable
+ if(istype(parent_atom.loc, /obj/item/clipboard))
+ var/obj/item/clipboard/clipboard = parent_atom.loc
+ // This is just so you can still use a stamp if you're holding one. Otherwise, it'll
+ // use the clipboard's pen, if applicable.
+ if(!istype(holding, /obj/item/stamp) && clipboard.pen)
+ holding = clipboard.pen
+
+ // As of the time of writing, can_write outputs a message to the user so we don't have to.
+ if(!user.can_write(holding))
+ return TRUE
+
+ // Safe to assume there are writing implement details as user.can_write(...) fails with an invalid writing implement.
+ var/writing_implement_data = holding.get_writing_implement_details()
+ var/list/field_data = params["field_data"]
+
+ for(var/field_key in field_data)
+ var/field_text = field_data[field_key]
+ var/text_length = length(field_text)
+ if(text_length > MAX_PAPER_INPUT_FIELD_LENGTH)
+ log_paper("[key_name(user)] tried to write to field [field_key] with text over the max limit ([text_length] out of [MAX_PAPER_INPUT_FIELD_LENGTH]) with the following text: [field_text]")
+ return TRUE
+ if(text2num(field_key) >= input_field_count)
+ log_paper("[key_name(user)] tried to write to invalid field [field_key] (when the paper only has [input_field_count] fields) with the following text: [field_text]")
+ return TRUE
+
+ if(!add_field_input(field_key, field_text, writing_implement_data["font"], writing_implement_data["color"], writing_implement_data["use_bold"], user.real_name))
+ log_paper("[key_name(user)] tried to write to field [field_key] when it already has data, with the following text: [field_text]")
+
+ update_static_data_for_all_viewers()
+ return TRUE
+
+/// A single instance of a saved raw input onto paper.
+/datum/paper_input
+ /// Raw, unsanitised, unparsed text for an input.
+ var/raw_text = ""
+ /// Font to draw the input with.
+ var/font = ""
+ /// Colour to draw the input with.
+ var/colour = ""
+ /// Whether to render the font bold or not.
+ var/bold = FALSE
+ /// Whether the creator of this input field has the R_FUN permission, thus allowing less sanitization
+ var/advanced_html = FALSE
+
+/datum/paper_input/New(_raw_text, _font, _colour, _bold, _advanced_html)
+ raw_text = _raw_text
+ font = _font
+ colour = _colour
+ bold = _bold
+ advanced_html = _advanced_html
+
+/datum/paper_input/proc/make_copy()
+ return new /datum/paper_input(raw_text, font, colour, bold, advanced_html);
+
+/datum/paper_input/proc/to_list()
+ return list(
+ raw_text = raw_text,
+ font = font,
+ color = colour,
+ bold = bold,
+ advanced_html = advanced_html,
+ )
+
+/// A single instance of a saved graphic on paper.
+/datum/paper_graphic
+ /// Asset class of the for rendering in tgui
+ var/class = ""
+ /// X position of graphic.
+ var/graphic_x = 0
+ /// Y position of stamp.
+ var/graphic_y = 0
+ /// Rotation of stamp in degrees. 0 to 359.
+ var/rotation = 0
+
+/datum/paper_graphic/New(_class, _graphic_x, _graphic_y, _rotation)
+ class = _class
+ graphic_x = _graphic_x
+ graphic_y = _graphic_y
+ rotation = _rotation
+
+/datum/paper_graphic/proc/make_copy()
+ return new /datum/paper_graphic(class, graphic_x, graphic_y, rotation)
+
+/datum/paper_graphic/proc/to_list()
+ return list(
+ class = class,
+ x = graphic_x,
+ y = graphic_y,
+ rotation = rotation,
+ )
+
+/// A reference to some data that replaces a modifiable input field at some given index in paper raw input parsing.
+/datum/paper_field
+ /// When tgui parses the raw input, if it encounters a field_index matching the nth user input field, it will disable it and replace it with the field_data.
+ var/field_index = -1
+ /// The data that tgui should substitute in-place of the input field when parsing.
+ var/datum/paper_input/field_data = null
+ /// If TRUE, requests tgui to render this field input in a more signature-y style.
+ var/is_signature = FALSE
+
+/datum/paper_field/New(_field_index, raw_text, font, colour, bold, _is_signature)
+ field_index = _field_index
+ field_data = new /datum/paper_input(raw_text, font, colour, bold)
+ is_signature = _is_signature
+
+/datum/paper_field/proc/make_copy()
+ return new /datum/paper_field(field_index, field_data.raw_text, field_data.font, field_data.colour, field_data.bold, is_signature)
+
+/datum/paper_field/proc/to_list()
+ return list(
+ field_index = field_index,
+ field_data = field_data.to_list(),
+ is_signature = is_signature,
+ )
diff --git a/code/datums/elements/kneecapping.dm b/code/datums/elements/kneecapping.dm
index 9df4782a0f5..975161c0d64 100644
--- a/code/datums/elements/kneecapping.dm
+++ b/code/datums/elements/kneecapping.dm
@@ -90,9 +90,10 @@
span_danger("You swing \the [weapon] at [target]'s kneecaps!"),
)
- var/datum/wound/blunt/severe/severe_wound_type = /datum/wound/blunt/severe
- var/datum/wound/blunt/critical/critical_wound_type = /datum/wound/blunt/critical
- leg.receive_damage(brute = weapon.force, wound_bonus = rand(initial(severe_wound_type.threshold_minimum), initial(critical_wound_type.threshold_minimum) + 10))
+ var/min_wound = leg.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_SEVERE, return_value_if_no_wound = 30, wound_source = weapon)
+ var/max_wound = leg.get_wound_threshold_of_wound_type(WOUND_BLUNT, WOUND_SEVERITY_CRITICAL, return_value_if_no_wound = 50, wound_source = weapon)
+
+ leg.receive_damage(brute = weapon.force, wound_bonus = rand(min_wound, max_wound + 10))
log_combat(attacker, target, "broke the kneecaps of", weapon)
target.update_damage_overlays()
attacker.do_attack_animation(target, used_item = weapon)
diff --git a/code/datums/elements/robotic_heal.dm b/code/datums/elements/robotic_heal.dm
new file mode 100644
index 00000000000..978efd5220d
--- /dev/null
+++ b/code/datums/elements/robotic_heal.dm
@@ -0,0 +1,93 @@
+/datum/element/robotic_heal
+ element_flags = ELEMENT_BESPOKE
+ argument_hash_start_idx = 2
+ /// Brute damage healed by the attached item.
+ var/brute_heal
+ /// Burn damage healed by the attached item.
+ var/burn_heal
+ /// Delay when self-repairing with this item.
+ var/self_delay
+ /// Delay when repairing others with this item.
+ var/other_delay
+ /// The message when using this item to heal.
+ var/heal_message
+
+/datum/element/robotic_heal/Attach(datum/target, brute_heal = 0, burn_heal = 0, self_delay = 3 SECONDS, other_delay = 1 SECONDS)
+ if(!isitem(target))
+ return ELEMENT_INCOMPATIBLE
+ src.brute_heal = brute_heal
+ src.burn_heal = burn_heal
+ src.self_delay = self_delay
+ src.other_delay = other_delay
+ if(!heal_message) // This only needs to be set once for its first attached item
+ if(brute_heal && burn_heal)
+ heal_message = "dents and burnt wires in"
+ else if(brute_heal)
+ heal_message = "dents on"
+ else
+ heal_message = "burnt wires in"
+ RegisterSignal(target, COMSIG_ITEM_ATTACK, PROC_REF(on_item_attack))
+ return ..()
+
+/datum/element/robotic_heal/Detach(datum/source, ...)
+ UnregisterSignal(source, COMSIG_ITEM_ATTACK)
+ return ..()
+
+/// Intercepts [mob/living/attack()] and tries to heal a robotic limb if possible.
+/datum/element/robotic_heal/proc/on_item_attack(obj/item/tool, mob/living/patient, mob/user, params)
+ SIGNAL_HANDLER
+
+ if(user.a_intent != INTENT_HELP)
+ return NONE
+
+ if(!iscarbon(patient))
+ return NONE
+
+ var/obj/item/bodypart/part_to_repair = patient.get_bodypart(user.zone_selected)
+ if(!part_to_repair)
+ to_chat(user, span_warning("[patient]'s [parse_zone(user.zone_selected)] is missing!"))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+ if(!IS_ROBOTIC_LIMB(part_to_repair))
+ to_chat(user, span_warning("[tool] can't repair this!"))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+ if(!(brute_heal && part_to_repair.brute_dam > 0) && !(burn_heal && part_to_repair.burn_dam > 0))
+ to_chat(user, span_warning("[patient]'s [part_to_repair.plaintext_zone] is already in good condition!"))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+ if(part_to_repair.get_damage() <= part_to_repair.wound_integrity_loss)
+ to_chat(user, span_warning("[patient]'s [part_to_repair.plaintext_zone] cannot be repaired any further!"))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+ if(!patient.is_exposed(user))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+ if(!tool.tool_start_check(user, patient, amount = 1))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+ user.visible_message(
+ span_notice("[user] starts to fix some of the [heal_message] [patient]'s [part_to_repair.plaintext_zone]"),
+ span_notice("You start to fix some of the [heal_message] [patient]'s [part_to_repair.plaintext_zone]."),
+ )
+
+ INVOKE_ASYNC(src, PROC_REF(item_heal_robotic), tool, patient, user, part_to_repair, patient == user ? self_delay : other_delay)
+ return COMPONENT_CANCEL_ATTACK_CHAIN
+
+/**
+ * Heal a robotic body part on a mob
+ */
+/datum/element/robotic_heal/proc/item_heal_robotic(obj/item/tool, mob/living/carbon/patient, mob/user, obj/item/bodypart/part_to_repair, delay)
+ if(!tool.use_tool(patient, user, delay, amount = 1, volume = 50, extra_checks = CALLBACK(patient, TYPE_PROC_REF(/mob/living, is_exposed), user, user.zone_selected)))
+ return
+
+ if(QDELETED(part_to_repair))
+ to_chat(user, span_warning("[patient]'s [part_to_repair.plaintext_zone] is gone!"))
+ return
+
+ part_to_repair.heal_damage(brute_heal, burn_heal, FALSE, BODYTYPE_ROBOTIC)
+ patient.update_damage_overlays()
+ user.visible_message(
+ span_notice("[user] fixes some of the [heal_message] [patient]'s [part_to_repair.plaintext_zone]."),
+ span_notice("You fix some of the [heal_message] [patient]'s [part_to_repair.plaintext_zone]"),
+ )
diff --git a/code/datums/elements/tool_flash.dm b/code/datums/elements/tool_flash.dm
index 9912e072fe1..903127ddeeb 100644
--- a/code/datums/elements/tool_flash.dm
+++ b/code/datums/elements/tool_flash.dm
@@ -34,4 +34,4 @@
SIGNAL_HANDLER
if(user && get_dist(get_turf(source), get_turf(user)) <= 1)
- user.flash_act(min(flash_strength,1))
+ user.flash_act(max(flash_strength, 1))
diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm
index fbff7d70b01..e504845ba4f 100644
--- a/code/datums/mood_events/drug_events.dm
+++ b/code/datums/mood_events/drug_events.dm
@@ -74,6 +74,11 @@
mood_change = 9
timeout = 3 MINUTES
+/datum/mood_event/stimulant_light
+ description = span_nicegreen("I feel so light. So productive!")
+ mood_change = 2
+ timeout = 3 MINUTES
+
/datum/mood_event/stimulant_medium
description = span_nicegreen("I have so much energy! I feel like I could do anything!")
mood_change = 4
@@ -84,6 +89,11 @@
mood_change = 6
timeout = 3 MINUTES
+/datum/mood_event/stimulant_bad
+ description = span_boldwarning("Fuck. Need to move. Need to do something. I'm not doing enough. I'm not DOING ENOUGH!!")
+ mood_change = -10
+ timeout = 6 MINUTES
+
/datum/mood_event/legion_good
mood_change = 5
description = span_nicegreen("Everything feels so light! I'm strong! Unstoppable!")
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index 0c016e7fc92..e8968170091 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -284,6 +284,11 @@
mood_change = -18
timeout = 3 MINUTES
+/datum/mood_event/headache
+ description = span_warning("My head hurts....")
+ mood_change = -3
+ timeout = 5 MINUTES
+
/datum/mood_event/bad_touch_bear_hug
description = span_warning("I just got squeezed way too hard.")
mood_change = -3
diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm
index dbc9578cfc1..c476b982091 100644
--- a/code/datums/progressbar.dm
+++ b/code/datums/progressbar.dm
@@ -63,7 +63,7 @@
if(!(timed_action_flags & IGNORE_USER_LOC_CHANGE))
RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
var/obj/mecha/mech = user.loc
- if(ismecha(user.loc) && user == mech.occupant)
+ if(ismecha(user.loc) && user == mech.occupant && mech != target)
RegisterSignal(mech, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved))
if(!(timed_action_flags & IGNORE_TARGET_LOC_CHANGE))
if(user != target)
diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm
index f39fbc02c3f..e6565ecd923 100644
--- a/code/datums/shuttles.dm
+++ b/code/datums/shuttles.dm
@@ -26,6 +26,8 @@
var/token_icon_state = "ship_generic"
/// The prefix of the ship's name.
var/prefix = "ISV"
+ /// The class of this ship.
+ var/ship_class = "Ship"
/// The name of the ship's manufacturer.
var/manufacturer = "Unknown"
/// The faction this ship belongs to.
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index f8fdf900459..f0455e32ee7 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -318,24 +318,34 @@
id = "neck_slice"
status_type = STATUS_EFFECT_UNIQUE
alert_type = null
- duration = -1
+ duration = STATUS_EFFECT_PERMANENT
-/datum/status_effect/neck_slice/tick()
- var/mob/living/carbon/human/H = owner
- var/obj/item/bodypart/throat = H.get_bodypart(BODY_ZONE_HEAD)
- if(H.stat == DEAD || !throat)
- H.remove_status_effect(/datum/status_effect/neck_slice)
+/datum/status_effect/neck_slice/on_apply()
+ if(!ishuman(owner))
+ return FALSE
+ if(!owner.get_bodypart(BODY_ZONE_HEAD))
+ return FALSE
+ return TRUE
+
+/datum/status_effect/neck_slice/tick(seconds_between_ticks)
+ var/obj/item/bodypart/throat = owner.get_bodypart(BODY_ZONE_HEAD)
+ if(owner.stat == DEAD || !throat) // they can lose their head while it's going.
+ qdel(src)
+ return
var/still_bleeding = FALSE
- for(var/datum/wound/W as anything in throat.wounds)
- if(W.wound_type == WOUND_SLASH && W.severity > WOUND_SEVERITY_MODERATE)
+ for(var/datum/wound/bleeding_thing as anything in throat.wounds)
+ var/datum/wound_pregen_data/pregen_data = SSwounds.pregen_data[bleeding_thing.type]
+
+ if(pregen_data.wounding_types_valid(throat, list(WOUND_SLASH)) && bleeding_thing.severity > WOUND_SEVERITY_MODERATE && bleeding_thing.blood_flow > 0)
still_bleeding = TRUE
break
if(!still_bleeding)
- H.remove_status_effect(/datum/status_effect/neck_slice)
+ qdel(src)
+ return
if(prob(10))
- H.emote(pick("gasp", "gag", "choke"))
+ owner.emote(pick("gasp", "gag", "choke"))
/mob/living/proc/apply_necropolis_curse(set_curse)
var/datum/status_effect/necropolis_curse/C = has_status_effect(STATUS_EFFECT_NECROPOLIS_CURSE)
diff --git a/code/datums/status_effects/debuffs/fire_stacks.dm b/code/datums/status_effects/debuffs/fire_stacks.dm
index b7aee1f2c51..f2e34a986a5 100644
--- a/code/datums/status_effects/debuffs/fire_stacks.dm
+++ b/code/datums/status_effects/debuffs/fire_stacks.dm
@@ -180,28 +180,20 @@
if(!no_protection)
if(thermal_protection >= FIRE_IMMUNITY_MAX_TEMP_PROTECT)
+ SEND_SIGNAL(victim, COMSIG_CLEAR_MOOD_EVENT, "on_fire")
return
if(thermal_protection >= FIRE_SUIT_MAX_TEMP_PROTECT)
+ SEND_SIGNAL(victim, COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire)
victim.adjust_bodytemperature(5.5 * seconds_between_ticks)
return
victim.adjust_bodytemperature((victim.dna.species.bodytemp_heating_rate_max + (stacks * 12)) * 0.5 * seconds_between_ticks)
- victim.apply_damage((stacks * 0.5), FIRE, blocked = victim.run_armor_check(null, "fire", armour_penetration=stacks*5, silent=TRUE), spread_damage = TRUE)
- if(SPT_PROB(20, seconds_between_ticks))
- var/obj/item/bodypart/it_burns = victim.get_bodypart(pick(BODY_ZONE_L_ARM,BODY_ZONE_L_LEG, BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_CHEST, BODY_ZONE_HEAD))
- if(it_burns)
- var/datum/wound/burn_injury
- switch(stacks)
- if(1 to 3)
- EMPTY_BLOCK_GUARD
- if(3 to 7)
- burn_injury = new /datum/wound/burn/moderate
- if(7 to 14)
- burn_injury = new /datum/wound/burn/severe
- if(14 to 20)
- burn_injury = new /datum/wound/burn/critical
- if(burn_injury)
- burn_injury.apply_wound(it_burns)
+ if(!victim.apply_damage((stacks * 0.5), BURN, blocked = victim.run_armor_check(null, FIRE, armour_penetration=stacks*5, silent=TRUE), spread_damage = TRUE))
+ return
+ if(SPT_PROB(50, seconds_between_ticks))
+ var/obj/item/bodypart/it_burns = victim.get_random_bodypart()
+ if(it_burns) // apply_damage doesn't cause wounds without a selected bodypart, so we do this manually here
+ it_burns.wound_roll(0, stacks * min(victim.bodytemperature / FIRE_MINIMUM_TEMPERATURE_TO_EXIST, 2), no_dismember = TRUE)
SEND_SIGNAL(victim, COMSIG_ADD_MOOD_EVENT, "on_fire", /datum/mood_event/on_fire)
/**
diff --git a/code/datums/status_effects/wound_effects.dm b/code/datums/status_effects/wound_effects.dm
index 47e43ffc235..4455424202d 100644
--- a/code/datums/status_effects/wound_effects.dm
+++ b/code/datums/status_effects/wound_effects.dm
@@ -11,21 +11,39 @@
/datum/status_effect/determined/on_apply()
. = ..()
- owner.visible_message(
- span_danger("[owner]'s body tenses up noticeably, gritting against [owner.p_their()] pain!"),
- span_notice("Your senses sharpen as your body tenses up from the wounds you've sustained!"),
- vision_distance = COMBAT_MESSAGE_RANGE,
- )
+ if(owner.mob_biotypes & MOB_ROBOTIC)
+ owner.visible_message(
+ span_danger("[owner]'s cooling fans spin up far louder than usual."),
+ span_notice("Acceptable damage threshold exceeded. Emergency self-preservation protocol initiated."),
+ vision_distance = COMBAT_MESSAGE_RANGE,
+ )
+ else
+ owner.visible_message(
+ span_danger("[owner]'s body tenses up noticeably, gritting against [owner.p_their()] pain!"),
+ span_notice("Your senses sharpen as your body tenses up from the wounds you've sustained!"),
+ vision_distance = COMBAT_MESSAGE_RANGE,
+ )
if(ishuman(owner))
var/mob/living/carbon/human/human_owner = owner
human_owner.physiology.bleed_mod *= WOUND_DETERMINATION_BLEED_MOD
/datum/status_effect/determined/on_remove()
- owner.visible_message(
- span_danger("[owner]'s body slackens noticeably!"),
- span_warning("Your adrenaline rush dies off, and the pain from your wounds come aching back in..."),
- vision_distance = COMBAT_MESSAGE_RANGE,
- )
+ if(owner.mob_biotypes & MOB_ROBOTIC)
+ var/mob/living/carbon/carbon_owner = owner
+ if(!iscarbon(owner))
+ stack_trace("Determination status effect applied to non-carbon [owner] of type [owner.type]")
+ carbon_owner = null
+ owner.visible_message(
+ span_danger("[owner]'s cooling fans suddenly quiet down."),
+ span_notice("Emergency self-preservation protocol concluded. [rand(2, 100 * LAZYLEN(carbon_owner?.all_wounds))] new errors to report."),
+ vision_distance = COMBAT_MESSAGE_RANGE,
+ )
+ else
+ owner.visible_message(
+ span_danger("[owner]'s body slackens noticeably!"),
+ span_warning("Your adrenaline rush dies off, and the pain from your wounds come aching back in..."),
+ vision_distance = COMBAT_MESSAGE_RANGE,
+ )
if(ishuman(owner))
var/mob/living/carbon/human/human_owner = owner
human_owner.physiology.bleed_mod /= WOUND_DETERMINATION_BLEED_MOD
@@ -144,9 +162,9 @@
alert_type = NONE
/datum/status_effect/wound/on_creation(mob/living/new_owner, incoming_wound)
- . = ..()
linked_wound = incoming_wound
linked_limb = linked_wound.limb
+ return ..()
/datum/status_effect/wound/on_remove()
linked_wound = null
@@ -166,67 +184,68 @@
if(W == linked_wound)
qdel(src)
-// bones
-/datum/status_effect/wound/blunt
+/datum/status_effect/wound/nextmove_modifier()
+ var/mob/living/carbon/status_owner = owner
+
+ if(status_owner.get_active_hand() == linked_limb)
+ return linked_wound.get_action_delay_mult()
+
+ return ..()
-/datum/status_effect/wound/blunt/on_apply()
+// bones
+/datum/status_effect/wound/blunt/bone
+/*
+/datum/status_effect/wound/blunt/bone/on_apply()
. = ..()
- RegisterSignal(owner, COMSIG_MOB_SWAP_HANDS, PROC_REF(on_swap_hands))
- on_swap_hands()
+ if(.)
+ RegisterSignal(owner, COMSIG_MOB_SWAP_HANDS, PROC_REF(on_swap_hands))
+ on_swap_hands()
-/datum/status_effect/wound/blunt/on_remove()
+/datum/status_effect/wound/blunt/bone/on_remove()
. = ..()
UnregisterSignal(owner, COMSIG_MOB_SWAP_HANDS)
var/mob/living/carbon/wound_owner = owner
- wound_owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/blunt_wound)
+ wound_owner.remove_actionspeed_modifier(/datum/actionspeed_modifier/status_effect/blunt_wound)
-/datum/status_effect/wound/blunt/proc/on_swap_hands()
+/datum/status_effect/wound/blunt/bone/proc/on_swap_hands()
SIGNAL_HANDLER
var/mob/living/carbon/wound_owner = owner
if(wound_owner.get_active_hand() == linked_limb)
- wound_owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/blunt_wound, (linked_wound.interaction_efficiency_penalty - 1))
+ wound_owner.add_actionspeed_modifier(/datum/actionspeed_modifier/status_effect/blunt_wound, (linked_wound.interaction_efficiency_penalty - 1))
else
- wound_owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/blunt_wound)
-
-/datum/status_effect/wound/blunt/nextmove_modifier()
- var/mob/living/carbon/C = owner
-
- if(C.get_active_hand() == linked_limb)
- return linked_wound.interaction_efficiency_penalty
-
- return 1
-
+ wound_owner.remove_actionspeed_modifier(/datum/actionspeed_modifier/status_effect/blunt_wound)
+*/
// blunt
-/datum/status_effect/wound/blunt/moderate
+/datum/status_effect/wound/blunt/bone/moderate
id = "disjoint"
-/datum/status_effect/wound/blunt/severe
+/datum/status_effect/wound/blunt/bone/severe
id = "hairline"
-/datum/status_effect/wound/blunt/critical
+/datum/status_effect/wound/blunt/bone/critical
id = "compound"
// slash
-/datum/status_effect/wound/slash/moderate
+/datum/status_effect/wound/slash/flesh/moderate
id = "abrasion"
-/datum/status_effect/wound/slash/severe
+/datum/status_effect/wound/slash/flesh/severe
id = "laceration"
-/datum/status_effect/wound/slash/critical
+/datum/status_effect/wound/slash/flesh/critical
id = "avulsion"
// pierce
-/datum/status_effect/wound/pierce/moderate
+/datum/status_effect/wound/pierce/bleed/moderate
id = "breakage"
-/datum/status_effect/wound/pierce/severe
+/datum/status_effect/wound/pierce/bleed/severe
id = "puncture"
-/datum/status_effect/wound/pierce/critical
+/datum/status_effect/wound/pierce/bleed/critical
id = "rupture"
// burns
-/datum/status_effect/wound/burn/moderate
+/datum/status_effect/wound/burn/flesh/moderate
id = "seconddeg"
-/datum/status_effect/wound/burn/severe
+/datum/status_effect/wound/burn/flesh/severe
id = "thirddeg"
-/datum/status_effect/wound/burn/critical
+/datum/status_effect/wound/burn/flesh/critical
id = "fourthdeg"
// muscle
diff --git a/code/datums/wounds/_wound_static_data.dm b/code/datums/wounds/_wound_static_data.dm
new file mode 100644
index 00000000000..df5a146d162
--- /dev/null
+++ b/code/datums/wounds/_wound_static_data.dm
@@ -0,0 +1,188 @@
+/// A singleton datum that holds pre-gen and static data about a wound. Each wound datum should have a corresponding wound_pregen_data.
+/datum/wound_pregen_data
+ /// The typepath of the wound we will be handling and storing data of. NECESSARY IF THIS IS A NON-ABSTRACT TYPE!
+ var/datum/wound/wound_path_to_generate
+
+ /// Will this be instantiated?
+ var/abstract = FALSE
+
+ /// If true, our wound can be selected in ordinary wound rolling. If this is set to false, our wound can only be directly instantiated by use of specific typepath.
+ var/can_be_randomly_generated = TRUE
+
+ /// A list of biostates a limb must have to receive our wound, in wounds.dm.
+ var/required_limb_biostate
+ /// If false, we will check if the limb has all of our required biostates instead of just any.
+ var/require_any_biostate = FALSE
+
+ /// If false, we will iterate through wounds on a given limb, and if any match our type, we wont add our wound.
+ var/duplicates_allowed = FALSE
+
+ /// If we require BIO_BLOODED, we will not add our wound if this is true and the limb cannot bleed.
+ var/ignore_cannot_bleed = TRUE // a lot of bleed wounds should still be applied for purposes of mangling flesh
+
+ /// A list of bodyzones this is incompatible with.
+ var/list/excluded_zones = list()
+
+ /// The types of attack that can generate this wound. E.g. WOUND_SLASH = A sharp attack can cause this, WOUND_BLUNT = an attack with no sharpness/an attack with sharpness against a limb with mangled exterior can cause this.
+ var/list/required_wounding_types
+ /// [required_wounding_types] but requires the associated anatomy to be mangled first.
+ var/list/mangled_wounding_types
+ /// If true, this wound can only be generated by all [required_wounding_types] at once, not just any.
+ var/match_all_wounding_types = FALSE
+
+ /// The weight that will be used if, by the end of wound selection, there are multiple valid wounds. This will be inserted into pick_weight, so use integers.
+ var/weight = WOUND_DEFAULT_WEIGHT
+
+ /// The minimum injury roll a attack must get to generate us. Affected by our wound's threshold_penalty and series_threshold_penalty, as well as the attack's wound_bonus. See check_wounding_mods().
+ var/threshold_minimum
+
+ /// The series of wounds this is in. See wounds.dm (the defines file) for a more detailed explanation - but tldr is that no 2 wounds of the same series can be on a limb.
+ var/wound_series
+
+ /// If true, we will attempt to, during a random wound roll, overpower and remove other wound typepaths from the possible wounds list using [competition_mode] and [overpower_wounds_of_even_severity].
+ var/compete_for_wounding = TRUE
+ /// The competition mode with which we will remove other wounds from a possible wound roll assuming [compete_for_wounding] is TRUE. See wounds.dm, the defines file, for more information on what these do.
+ var/competition_mode = WOUND_COMPETITION_OVERPOWER_LESSERS
+ /// If this and [compete_for_wounding] is true, we will remove wounds of an even severity to us during a random wound roll.
+ var/overpower_wounds_of_even_severity = FALSE
+
+
+/datum/wound_pregen_data/New()
+ . = ..()
+
+ if (!abstract)
+ if (required_limb_biostate == null)
+ stack_trace("required_limb_biostate null - please set it! occured on: [src.type]")
+ if (wound_path_to_generate == null)
+ stack_trace("wound_path_to_generate null - please set it! occured on: [src.type]")
+
+// this proc is the primary reason this datum exists - a singleton instance so we can always run this proc even without the wound existing
+/**
+ * Args:
+ * * obj/item/bodypart/limb: The limb we are considering.
+ * * wound_type: The type of the "wound acquisition attempt". Example: A slashing attack cannot proc a blunt wound, so wound_type = WOUND_SLASH would
+ * fail if we expect WOUND_BLUNT. Defaults to the wound type we expect.
+ * * datum/wound/old_wound: If we would replace a wound, this would be said wound. Nullable.
+ * * random_roll = FALSE: If this is in the context of a random wound generation, and this wound wasn't specifically checked.
+ *
+ * Returns:
+ * FALSE if the limb cannot be wounded, if wound_type is not ours, if we have a higher severity wound already in our series,
+ * if we have a biotype mismatch, if the limb isnt in a viable zone, or if theres any duplicate wound types.
+ * TRUE otherwise.
+ */
+/datum/wound_pregen_data/proc/can_be_applied_to(obj/item/bodypart/limb, list/suggested_wounding_types = required_wounding_types, datum/wound/old_wound, random_roll = FALSE, duplicates_allowed = src.duplicates_allowed, care_about_existing_wounds = TRUE)
+ SHOULD_BE_PURE(TRUE)
+
+ if(!istype(limb) || !limb.owner)
+ return FALSE
+
+ if(random_roll && !can_be_randomly_generated)
+ return FALSE
+
+ if(HAS_TRAIT(limb.owner, TRAIT_NEVER_WOUNDED) || (limb.owner.status_flags & GODMODE))
+ return FALSE
+
+ if(!wounding_types_valid(limb, suggested_wounding_types))
+ return FALSE
+
+ if(care_about_existing_wounds)
+ for(var/datum/wound/preexisting_wound as anything in limb.wounds)
+ var/datum/wound_pregen_data/pregen_data = SSwounds.pregen_data[preexisting_wound.type]
+ if(pregen_data.wound_series == wound_series)
+ if(preexisting_wound.severity >= wound_path_to_generate::severity)
+ return FALSE
+
+ if(!ignore_cannot_bleed && ((required_limb_biostate & BIO_BLOODED) && !limb.can_bleed()))
+ return FALSE
+
+ if(!biostate_valid(limb.biological_state))
+ return FALSE
+
+ if(limb.body_zone in excluded_zones)
+ return FALSE
+
+ // we accept promotions and demotions, but no point in redundancy. This should have already been checked wherever the wound was rolled and applied for (see: bodypart damage code), but we do an extra check
+ // in case we ever directly add wounds
+ if(!duplicates_allowed)
+ for (var/datum/wound/preexisting_wound as anything in limb.wounds)
+ if (preexisting_wound.type == wound_path_to_generate && (preexisting_wound != old_wound))
+ return FALSE
+ return TRUE
+
+/// Returns true if we have the given biostates, or any biostate in it if check_for_any is true. False otherwise.
+/datum/wound_pregen_data/proc/biostate_valid(biostate)
+ if (require_any_biostate)
+ if (!(biostate & required_limb_biostate))
+ return FALSE
+ else if (!((biostate & required_limb_biostate) == required_limb_biostate)) // check for all
+ return FALSE
+
+ return TRUE
+
+/**
+ * A simple getter for [weight], with arguments supplied to allow custom behavior.
+ *
+ * Args:
+ * * obj/item/bodypart/limb: The limb we are contemplating being added to. Nullable.
+ * * list/wounding_types: The amount of damage for each wounding type. Nullable.
+ * * attack_direction: The direction of the attack that'd cause us. Nullable.
+ * * damage_source: The entity that would cause us. Nullable.
+ *
+ * Returns:
+ * Our weight.
+ */
+/datum/wound_pregen_data/proc/get_weight(obj/item/bodypart/limb, list/wounding_types, attack_direction, damage_source)
+ return weight
+
+/// Returns TRUE if we use WOUND_ALL, or we require all types and have all/if we require any and have any, FALSE otherwise.
+/datum/wound_pregen_data/proc/wounding_types_valid(obj/item/bodypart/limb, list/suggested_wounding_types)
+ if (WOUND_ALL in required_wounding_types)
+ return TRUE
+ if (!length(suggested_wounding_types))
+ return FALSE
+
+ for(var/iter_wounding_type as anything in suggested_wounding_types)
+ if(!(iter_wounding_type in required_wounding_types))
+ if(match_all_wounding_types)
+ return FALSE
+ else
+ if(!match_all_wounding_types)
+ return TRUE
+
+ if(LAZYLEN(mangled_wounding_types))
+ var/mangled_state = limb.get_mangled_state()
+ for(var/iter_mangled_type as anything in mangled_wounding_types)
+ if(mangled_state & mangled_wounding_types[iter_mangled_type])
+ return TRUE
+
+ return match_all_wounding_types // if we get here, we've matched everything
+
+/**
+ * A simple getter for [threshold_minimum], with arguments supplied to allow custom behavior.
+ *
+ * Args:
+ * * obj/item/bodypart/part: The limb we are contemplating being added to.
+ * * attack_direction: The direction of the attack that'd generate us. Nullable.
+ * * damage_source: The source of the damage that'd cause us. Nullable.
+ */
+/datum/wound_pregen_data/proc/get_threshold_for(obj/item/bodypart/part, attack_direction, damage_source)
+ return threshold_minimum
+
+/// Returns a new instance of our wound datum.
+/datum/wound_pregen_data/proc/generate_instance(obj/item/bodypart/limb, ...)
+ RETURN_TYPE(/datum/wound)
+
+ return new wound_path_to_generate
+
+/datum/wound_pregen_data/Destroy(force, ...)
+ var/error_message = "[src], a singleton wound pregen data instance, was destroyed! This should not happen!"
+ if (force)
+ error_message += " NOTE: This Destroy() was called with force == TRUE. This instance will be deleted and replaced with a new one."
+ stack_trace(error_message)
+
+ if (!force)
+ return QDEL_HINT_LETMELIVE
+
+ . = ..()
+
+ SSwounds.pregen_data[wound_path_to_generate] = new src.type //recover
diff --git a/code/datums/wounds/_wounds.dm b/code/datums/wounds/_wounds.dm
index 88480101f5c..5e35e6aab11 100644
--- a/code/datums/wounds/_wounds.dm
+++ b/code/datums/wounds/_wounds.dm
@@ -13,6 +13,13 @@
deciding what specific wound will be applied. I'd like to have a few different types of wounds for at least some of the choices, but I'm just doing rough generals for now. Expect polishing
*/
+#define WOUND_CRITICAL_BLUNT_DISMEMBER_BONUS 15
+
+// Applied into wounds when they're scanned with the wound analyzer, halves time to treat them manually.
+#define TRAIT_WOUND_SCANNED "wound_scanned"
+// I dunno lol
+#define ANALYZER_TRAIT "analyzer_trait"
+
/datum/wound
/// What it's named
var/name = "Wound"
@@ -29,25 +36,25 @@
var/occur_text = ""
/// This sound will be played upon the wound being applied
var/sound_effect
+ /// The volume of [sound_effect]
+ var/sound_volume = 70
- /// Either WOUND_SEVERITY_TRIVIAL, WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, WOUND_SEVERITY_CRITICAL, WOUND_SEVERITY_LOSS
- var/severity = WOUND_SEVERITY_MODERATE
- /// The list of wounds it belongs in, WOUND_BLUNT, WOUND_SLASH, WOUND_BURN, WOUND_MUSCLE
- var/wound_type
+ /// Either WOUND_SEVERITY_TRIVIAL, WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, WOUND_SEVERITY_CRITICAL, WOUND_SEVERITY_LOSS. FALSE prevents it from rolling.
+ var/severity = FALSE
- /// What body zones can we affect
- var/list/viable_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
+ /// What body zones can we NOT affect
+ var/list/excluded_zones = list()
/// Who owns the body part that we're wounding
var/mob/living/carbon/victim = null
- /// The bodypart we're parented to
+ /// The bodypart we're parented to. Not guaranteed to be non-null, especially after/during removal or if we haven't been applied
var/obj/item/bodypart/limb = null
/// Specific items such as bandages or sutures that can try directly treating this wound
var/list/treatable_by
/// Specific items such as bandages or sutures that can try directly treating this wound only if the user has the victim in an aggressive grab or higher
var/list/treatable_by_grabbed
- /// Tools with the specified tool flag will also be able to try directly treating this wound
- var/treatable_tool
+ /// Any tools with any of the flags in this list will be usable to try directly treating this wound
+ var/list/treatable_tools
/// How long it will take to treat this wound with a standard effective tool, assuming it doesn't need surgery
var/base_treat_time = 3 SECONDS
@@ -55,6 +62,8 @@
var/interaction_efficiency_penalty = 1
/// Incoming damage on this limb will be multiplied by this, to simulate tenderness and vulnerability (mostly burns).
var/damage_mulitplier_penalty = 1
+ /// The proportion of damage on this limb that cannot be healed until this wound is removed (0-1).
+ var/limb_integrity_penalty = 0
/// If set and this wound is applied to a leg, we take this many deciseconds extra per step on this leg
var/limp_slowdown
/// If this wound has a limp_slowdown and is applied to a leg, it has this chance to limp each step
@@ -62,10 +71,10 @@
/// How much we're contributing to this limb's bleed_rate
var/blood_flow
- /// The minimum we need to roll on [/obj/item/bodypart/proc/check_wounding] to begin suffering this wound, see check_wounding_mods() for more
- var/threshold_minimum
/// How much having this wound will add to all future check_wounding() rolls on this limb, to allow progression to worse injuries with repeated damage
var/threshold_penalty
+ /// How much having this wound will add to all future check_wounding() rolls on this limb, but only for wounds of its own series
+ var/series_threshold_penalty = 0
/// If we need to process each life tick
var/processes = FALSE
@@ -78,23 +87,25 @@
var/datum/status_effect/linked_status_effect
/// If we're operating on this wound and it gets healed, we'll nix the surgery too
var/datum/surgery/attached_surgery
- /// if you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * 25 power
- var/cryo_progress
+ /// if you're a lazy git and just throw them in cryo, the wound will go away after accumulating severity * [base_regen_progress_to_qdel] power
+ var/regen_progress
+
+ /// The base amount of [regen_progress] required to have ourselves fully healed by cryo. Multiplied against severity.
+ var/base_regen_progress_to_qdel = 33
/// If we forced this wound through badmin smite, we won't count it towards the round totals
var/from_smite
+ /// The biological state required for this wound to be applied
+ var/bio_state_required = BIO_BONE | BIO_FLESH
/// What flags apply to this wound
- var/wound_flags = (FLESH_WOUND | BONE_WOUND | ACCEPTS_GAUZE)
+ var/wound_flags = ACCEPTS_GAUZE
/datum/wound/Destroy()
- if(attached_surgery)
- QDEL_NULL(attached_surgery)
+ QDEL_NULL(attached_surgery)
// destroy can call remove_wound() and remove_wound() calls qdel, so we check to make sure there's anything to remove first
- if(limb?.wounds && (src in limb.wounds))
+ if(limb)
remove_wound()
- set_limb(null)
- victim = null
return ..()
/**
@@ -109,25 +120,11 @@
* * attack_direction: For bloodsplatters, if relevant
*/
/datum/wound/proc/apply_wound(obj/item/bodypart/L, silent = FALSE, datum/wound/old_wound = null, smited = FALSE, attack_direction = null)
- if(!istype(L) || !L.owner || !(L.body_zone in viable_zones) || !IS_ORGANIC_LIMB(L) || HAS_TRAIT(L.owner, TRAIT_NEVER_WOUNDED))
+ if(!can_be_applied_to(L, old_wound))
qdel(src)
- return
+ return FALSE
- if(ishuman(L.owner))
- var/mob/living/carbon/human/H = L.owner
- if(((wound_flags & BONE_WOUND) && !(HAS_BONE in H.dna.species.species_traits)) || ((wound_flags & FLESH_WOUND) && !(HAS_FLESH in H.dna.species.species_traits)))
- qdel(src)
- return
-
- // we accept promotions and demotions, but no point in redundancy. This should have already been checked wherever the wound was rolled and applied for (see: bodypart damage code), but we do an extra check
- // in case we ever directly add wounds
- for(var/i in L.wounds)
- var/datum/wound/preexisting_wound = i
- if((preexisting_wound.type == type) && (preexisting_wound != old_wound))
- qdel(src)
- return
-
- victim = L.owner
+ set_victim(L.owner)
set_limb(L)
LAZYADD(victim.all_wounds, src)
LAZYADD(limb.wounds, src)
@@ -152,7 +149,7 @@
var/msg = span_danger("[victim]'s [limb.name] [occur_text]!")
var/vis_dist = COMBAT_MESSAGE_RANGE
- if(severity != WOUND_SEVERITY_MODERATE)
+ if(severity > WOUND_SEVERITY_MODERATE)
msg = "[msg]"
vis_dist = DEFAULT_MESSAGE_RANGE
@@ -162,27 +159,119 @@
vision_distance = vis_dist,
)
if(sound_effect)
- playsound(L.owner, sound_effect, 70 + 20 * severity, TRUE)
+ playsound(L.owner, sound_effect, sound_volume + (20 * severity), TRUE)
wound_injury(old_wound, attack_direction = attack_direction)
if(!demoted)
second_wind()
+ return TRUE
+
+/// Returns TRUE if we can be applied to the limb.
+/datum/wound/proc/can_be_applied_to(obj/item/bodypart/limb, datum/wound/old_wound)
+ var/datum/wound_pregen_data/pregen_data = SSwounds.pregen_data[type]
+
+ // We assume we aren't being randomly applied - we have no reason to believe we are
+ // And, besides, if we were, you could just as easily check our pregen data rather than run this proc
+ // Generally speaking this proc is called in apply_wound, which is called when the caller is already confidant in its ability to be applied
+ return pregen_data.can_be_applied_to(limb, old_wound = old_wound)
+
+/// Returns the zones we can be applied to.
+/datum/wound/proc/get_excluded_zones()
+ var/datum/wound_pregen_data/pregen_data = SSwounds.pregen_data[type]
+
+ return pregen_data.excluded_zones
+
+/// Returns the biostate we require to be applied.
+/datum/wound/proc/get_required_biostate()
+ var/datum/wound_pregen_data/pregen_data = SSwounds.pregen_data[type]
+
+ return pregen_data.required_limb_biostate
+
+/datum/wound/proc/null_victim()
+ SIGNAL_HANDLER
+ set_victim(null)
+
+/// Setter for [victim]. Should completely transfer signals, attributes, etc. To the new victim - if there is any, as it can be null.
+/datum/wound/proc/set_victim(new_victim)
+ if(victim)
+ UnregisterSignal(victim, COMSIG_QDELETING)
+
+ remove_wound_from_victim()
+ victim = new_victim
+ if(victim)
+ RegisterSignal(victim, COMSIG_QDELETING, PROC_REF(null_victim))
+
+/// Proc called to change the variable `limb` and react to the event.
+/datum/wound/proc/set_limb(obj/item/bodypart/new_value, replaced = FALSE)
+ if(limb == new_value)
+ return FALSE //Limb can either be a reference to something or `null`. Returning the number variable makes it clear no change was made.
+ . = limb
+ if(limb) // if we're nulling limb, we're basically detaching from it, so we should remove ourselves in that case
+ UnregisterSignal(limb, COMSIG_QDELETING)
+ if(wound_flags & ACCEPTS_GAUZE)
+ UnregisterSignal(limb, list(COMSIG_BODYPART_GAUZED, COMSIG_BODYPART_GAUZE_DESTROYED))
+ if(wound_flags & ACCEPTS_SPLINT)
+ UnregisterSignal(limb, list(COMSIG_BODYPART_SPLINTED, COMSIG_BODYPART_SPLINT_DESTROYED))
+ LAZYREMOVE(limb.wounds, src)
+ limb.update_wounds(replaced)
+ if (disabling)
+ limb.remove_traits(list(TRAIT_PARALYSIS, TRAIT_DISABLED_BY_WOUND), REF(src))
+
+ limb = new_value
+
+ // POST-CHANGE
+
+ if (limb)
+ RegisterSignal(limb, COMSIG_QDELETING, PROC_REF(source_died))
+ if(wound_flags & ACCEPTS_GAUZE)
+ RegisterSignals(limb, list(COMSIG_BODYPART_GAUZED, COMSIG_BODYPART_GAUZE_DESTROYED), PROC_REF(gauze_state_changed))
+ if(wound_flags & ACCEPTS_SPLINT)
+ RegisterSignals(limb, list(COMSIG_BODYPART_SPLINTED, COMSIG_BODYPART_SPLINT_DESTROYED), PROC_REF(splint_state_changed))
+ if (disabling)
+ limb.add_traits(list(TRAIT_PARALYSIS, TRAIT_DISABLED_BY_WOUND), REF(src))
+
+ if (victim)
+ start_limping_if_we_should() // the status effect already handles removing itself
+
+ update_inefficiencies()
+
+/datum/wound/proc/start_limping_if_we_should()
+ if ((limb.body_zone == BODY_ZONE_L_LEG || limb.body_zone == BODY_ZONE_R_LEG) && limp_slowdown > 0 && limp_chance > 0)
+ victim.apply_status_effect(/datum/status_effect/limp)
+
+/// Deletes the wound if its attached limb is deleted.
+/datum/wound/proc/source_died()
+ SIGNAL_HANDLER
+ qdel(src)
+
/// Remove the wound from whatever it's afflicting, and cleans up whateverstatus effects it had or modifiers it had on interaction times. ignore_limb is used for detachments where we only want to forget the victim
/datum/wound/proc/remove_wound(ignore_limb, replaced = FALSE)
//TODO: have better way to tell if we're getting removed without replacement (full heal)
+ var/old_victim = victim
+ var/old_limb = limb
+
set_disabling(FALSE)
if(victim)
- LAZYREMOVE(victim.all_wounds, src)
- if(!victim.all_wounds)
- victim.clear_alert("wound")
- SEND_SIGNAL(victim, COMSIG_CARBON_LOSE_WOUND, src, limb)
+ remove_wound_from_victim()
if(limb && !ignore_limb)
- LAZYREMOVE(limb.wounds, src)
- limb.update_wounds(replaced)
+ set_limb(null, replaced) // since we're removing limb's ref to us, we should do the same
+ // if you want to keep the ref, do it externally, theres no reason for us to remember it
+
+ if (ismob(old_victim))
+ var/mob/mob_victim = old_victim
+ SEND_SIGNAL(mob_victim, COMSIG_CARBON_POST_LOSE_WOUND, src, old_limb, ignore_limb, replaced)
+
+/datum/wound/proc/remove_wound_from_victim()
+ if(!victim)
+ return
+ LAZYREMOVE(victim.all_wounds, src)
+ if(!victim.all_wounds)
+ victim.clear_alert("wound")
+ SEND_SIGNAL(victim, COMSIG_CARBON_LOSE_WOUND, src, limb)
/**
* replace_wound() is used when you want to replace the current wound with a new wound, presumably of the same category, just of a different severity (either up or down counts)
@@ -190,13 +279,13 @@
* This proc actually instantiates the new wound based off the specific type path passed, then returns the new instantiated wound datum.
*
* Arguments:
- * * new_type - The TYPE PATH of the wound you want to replace this, like /datum/wound/slash/severe
+ * * new_wound - The wound instance you want to replace this
* * smited - If this is a smite, we don't care about this wound for stat tracking purposes (not yet implemented)
*/
-/datum/wound/proc/replace_wound(new_type, smited = FALSE, attack_direction = attack_direction)
- var/datum/wound/new_wound = new new_type
- remove_wound(replaced=TRUE)
- new_wound.apply_wound(limb, old_wound = src, smited = smited, attack_direction = attack_direction)
+/datum/wound/proc/replace_wound(datum/wound/new_wound, smited = FALSE, attack_direction = attack_direction)
+ var/obj/item/bodypart/cached_limb = limb // remove_wound() nulls limb so we have to track it locally
+ remove_wound(replaced = new_wound)
+ new_wound.apply_wound(cached_limb, old_wound = src, smited = smited, attack_direction = attack_direction)
. = new_wound
qdel(src)
@@ -204,21 +293,6 @@
/datum/wound/proc/wound_injury(datum/wound/old_wound = null, attack_direction = null)
return
-/// Proc called to change the variable `limb` and react to the event.
-/datum/wound/proc/set_limb(new_value)
- if(limb == new_value)
- return FALSE //Limb can either be a reference to something or `null`. Returning the number variable makes it clear no change was made.
- . = limb
- limb = new_value
- if(. && disabling)
- var/obj/item/bodypart/old_limb = .
- REMOVE_TRAIT(old_limb, TRAIT_PARALYSIS, REF(src))
- REMOVE_TRAIT(old_limb, TRAIT_DISABLED_BY_WOUND, REF(src))
- if(limb)
- if(disabling)
- ADD_TRAIT(limb, TRAIT_PARALYSIS, REF(src))
- ADD_TRAIT(limb, TRAIT_DISABLED_BY_WOUND, REF(src))
-
/// Proc called to change the variable `disabling` and react to the event.
/datum/wound/proc/set_disabling(new_value)
if(disabling == new_value)
@@ -235,6 +309,65 @@
if(limb?.can_be_disabled)
limb.update_disabled()
+/// Setter for [interaction_efficiency_penalty]. Updates the actionspeed of our actionspeed mod.
+/datum/wound/proc/set_interaction_efficiency_penalty(new_value)
+ //var/should_update = (new_value != interaction_efficiency_penalty)
+
+ interaction_efficiency_penalty = new_value
+
+ /*if (should_update)
+ update_actionspeed_modifier()*/
+
+/// Returns a "adjusted" interaction_efficiency_penalty that will be used for the actionspeed mod.
+/datum/wound/proc/get_effective_actionspeed_modifier()
+ return interaction_efficiency_penalty - 1
+
+/// Returns the decisecond multiplier of any click interactions, assuming our limb is being used.
+/datum/wound/proc/get_action_delay_mult()
+ SHOULD_BE_PURE(TRUE)
+
+ return interaction_efficiency_penalty
+
+/// Returns the decisecond increment of any click interactions, assuming our limb is being used.
+/datum/wound/proc/get_action_delay_increment()
+ SHOULD_BE_PURE(TRUE)
+
+ return 0
+
+/// Signal proc for if gauze has been applied or removed from our limb.
+/datum/wound/proc/gauze_state_changed()
+ SIGNAL_HANDLER
+
+/// Signal proc for if a splint has been applied or removed from our limb.
+/datum/wound/proc/splint_state_changed()
+ SIGNAL_HANDLER
+
+ if (wound_flags & ACCEPTS_SPLINT)
+ update_inefficiencies()
+
+/// Updates our limping and interaction penalties in accordance with our gauze.
+/datum/wound/proc/update_inefficiencies()
+ if (wound_flags & ACCEPTS_SPLINT)
+ if(limb.body_zone in list(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
+ if(limb.current_splint?.splint_factor)
+ limp_slowdown = initial(limp_slowdown) * limb.current_splint.splint_factor
+ limp_chance = initial(limp_chance) * limb.current_splint.splint_factor
+ else
+ limp_slowdown = initial(limp_slowdown)
+ limp_chance = initial(limp_chance)
+ else if(limb.body_zone in list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
+ if(limb.current_splint?.splint_factor)
+ set_interaction_efficiency_penalty(1 + ((get_effective_actionspeed_modifier()) * limb.current_splint.splint_factor))
+ else
+ set_interaction_efficiency_penalty(initial(interaction_efficiency_penalty))
+
+ if(initial(disabling))
+ set_disabling(!limb.current_splint)
+
+ limb.update_wounds()
+
+ start_limping_if_we_should()
+
/// Additional beneficial effects when the wound is gained, in case you want to give a temporary boost to allow the victim to try an escape or last stand
/datum/wound/proc/second_wind()
switch(severity)
@@ -268,37 +401,39 @@
if(QDELETED(I) || limb.body_zone != user.zone_selected || (I.force && user.a_intent != INTENT_HELP))
return FALSE
- var/allowed = FALSE
-
- // check if we have a valid treatable tool
- if(I.tool_behaviour == treatable_tool)
- allowed = TRUE
- else if(treatable_tool == TOOL_CAUTERY && I.get_temperature() && user == victim) // allow improvised cauterization on yourself without an aggro grab
- allowed = TRUE
- // failing that, see if we're aggro grabbing them and if we have an item that works for aggro grabs only
- else if(user.pulling == victim && user.grab_state >= GRAB_AGGRESSIVE && check_grab_treatments(I, user))
- allowed = TRUE
- // failing THAT, we check if we have a generally allowed item
- else
- for(var/allowed_type in treatable_by)
- if(istype(I, allowed_type))
- allowed = TRUE
- break
-
- // if none of those apply, we return false to avoid interrupting
- if(!allowed)
+ if(!item_can_treat(I, user))
return FALSE
+ // now that we've determined we have a valid attempt at treating, we can stomp on their dreams if we're already interacting with the patient or if their part is obscured
+ if(DOING_INTERACTION_WITH_TARGET(user, victim))
+ to_chat(user, span_warning("You're already interacting with [victim]!"))
+ return TRUE
+
// next we check if the bodypart in actually accessible (not under thick clothing). We skip the species trait check since skellies
// & such may need to use bone gel but may be wearing a space suit for..... whatever reason a skeleton would wear a space suit for
if(ishuman(victim))
var/mob/living/carbon/human/victim_human = victim
- if(!victim_human.can_inject(user, injection_flags = INJECT_CHECK_IGNORE_SPECIES))
+ if(!victim_human.try_inject(user, injection_flags = INJECT_CHECK_IGNORE_SPECIES | INJECT_TRY_SHOW_ERROR_MESSAGE))
return TRUE
// lastly, treat them
- treat(I, user)
- return TRUE
+ return treat(I, user) // we allow treat to return a value so it can control if the item does its normal interaction or not
+
+/// Returns TRUE if the item can be used to treat our wounds. Hooks into treat() - only things that return TRUE here may be used there.
+/datum/wound/proc/item_can_treat(obj/item/potential_treater, mob/user)
+ // check if we have a valid treatable tool
+ if(potential_treater.tool_behaviour in treatable_tools)
+ return TRUE
+ if((TOOL_CAUTERY in treatable_tools) && potential_treater.get_temperature() && user == victim) // allow improvised cauterization on yourself without an aggro grab
+ return TRUE
+ // failing that, see if we're aggro grabbing them and if we have an item that works for aggro grabs only
+ if(user.pulling == victim && user.grab_state >= GRAB_AGGRESSIVE && check_grab_treatments(potential_treater, user))
+ return TRUE
+ // failing THAT, we check if we have a generally allowed item
+ for(var/allowed_type in treatable_by)
+ if(istype(potential_treater, allowed_type))
+ return TRUE
+ return FALSE
/// Return TRUE if we have an item that can only be used while aggro grabbed (unhanded aggro grab treatments go in [/datum/wound/proc/try_handling]). Treatment is still is handled in [/datum/wound/proc/treat]
/datum/wound/proc/check_grab_treatments(obj/item/I, mob/user)
@@ -321,15 +456,25 @@
return (!QDELETED(src) && limb)
/// When our parent bodypart is hurt
-/datum/wound/proc/receive_damage(wounding_type, wounding_dmg, wound_bonus, attack_direction)
+/datum/wound/proc/receive_damage(list/wounding_types, total_wound_dmg, wound_bonus, attack_direction, damage_source)
return
/// Called from cryoxadone and pyroxadone when they're proc'ing. Wounds will slowly be fixed separately from other methods when these are in effect. crappy name but eh
/datum/wound/proc/on_xadone(power)
- cryo_progress += power
- if(cryo_progress > 33 * severity)
+ regen_progress += power
+ return handle_regen_progress()
+
+/// Does various actions based on [regen_progress]. By default, qdeletes the wound past a certain threshold.
+/datum/wound/proc/handle_regen_progress()
+ if(regen_progress > get_regen_progress_to_qdel())
qdel(src)
+/// Returns the amount of [regen_progress] we need to be qdeleted.
+/datum/wound/proc/get_regen_progress_to_qdel()
+ SHOULD_BE_PURE(TRUE)
+
+ return base_regen_progress_to_qdel * severity
+
/// When synthflesh is applied to the victim, we call this. No sense in setting up an entire chem reaction system for wounds when we only care for a few chems. Probably will change in the future
/datum/wound/proc/on_synthflesh(power)
return
@@ -377,8 +522,59 @@
* * mob/user: The user examining the wound's owner, if that matters
*/
/datum/wound/proc/get_examine_description(mob/user)
- . = "[victim.p_their(TRUE)] [limb.name] [examine_desc]"
- . = severity <= WOUND_SEVERITY_MODERATE ? "[.]." : "[.]!"
+ var/desc
+
+ if((wound_flags & ACCEPTS_SPLINT) && limb.current_splint)
+ desc = "[victim.p_their()] [limb.name] is [get_sling_condition()] fastened with a [limb.current_splint.name]"
+ else if ((wound_flags & ACCEPTS_GAUZE) && limb.current_gauze)
+ desc = "[victim.p_their()] [limb.name] is [get_gauze_condition()] fastened in a sling of [limb.current_gauze.name]"
+ else
+ desc = "[victim.p_their()] [limb.name] [examine_desc]"
+
+ desc = modify_desc_before_span(desc, user)
+
+ return get_desc_intensity(desc)
+
+/// A hook proc used to modify desc before it is spanned via [get_desc_intensity]. Useful for inserting spans yourself.
+/datum/wound/proc/modify_desc_before_span(desc, mob/user)
+ return desc
+
+/datum/wound/proc/get_gauze_condition()
+ SHOULD_BE_PURE(TRUE)
+ if (!limb.current_gauze)
+ return null
+
+ switch(limb.current_gauze.absorption_capacity)
+ if(0 to 1.25)
+ return "just barely"
+ if(1.25 to 2.75)
+ return "loosely"
+ if(2.75 to 4)
+ return "mostly"
+ if(4 to INFINITY)
+ return "tightly"
+
+/datum/wound/proc/get_sling_condition()
+ SHOULD_BE_PURE(TRUE)
+ if (!limb.current_splint)
+ return null
+
+ switch(limb.current_splint.sling_condition)
+ if(0 to 1.25)
+ return "just barely"
+ if(1.25 to 2.75)
+ return "loosely"
+ if(2.75 to 4)
+ return "mostly"
+ if(4 to INFINITY)
+ return "tightly"
+
+/// Spans [desc] based on our severity.
+/datum/wound/proc/get_desc_intensity(desc)
+ SHOULD_BE_PURE(TRUE)
+ if (severity > WOUND_SEVERITY_MODERATE)
+ return span_bold("[desc]!")
+ return "[desc]."
/datum/wound/proc/get_scanner_description(mob/user)
return "Type: [name]\nSeverity: [severity_text()]\nDescription: [desc]\nRecommended Treatment: [treat_text]"
@@ -394,6 +590,14 @@
if(WOUND_SEVERITY_CRITICAL)
return "Critical"
+/// Returns TRUE if our limb is the head or chest, FALSE otherwise.
+/// Essential in the sense of "we cannot live without it".
+/datum/wound/proc/limb_essential()
+ var/obj/item/organ/brain/victim_brain = victim?.getorganslot(ORGAN_SLOT_BRAIN)
+ if(victim_brain && limb.body_zone == victim_brain.zone) // IPCs don't need their head to live
+ return TRUE
+ return (limb.body_zone == BODY_ZONE_CHEST)
+
/// Whether we should show an interactable topic in examines of the wound. href_list["wound_topic"]
/datum/wound/proc/show_wound_topic(mob/user)
return FALSE
@@ -401,3 +605,21 @@
/// Gets the name of the wound with any interactable topic if possible
/datum/wound/proc/get_topic_name(mob/user)
return show_wound_topic(user) ? "[lowertext(name)]" : lowertext(name)
+
+/// Gets the flat percentage chance increment of a dismember occuring, if a dismember is attempted (requires mangled flesh and bone). returning 15 = +15%.
+/datum/wound/proc/get_dismember_chance_bonus(existing_chance)
+ SHOULD_BE_PURE(TRUE)
+
+ var/datum/wound_pregen_data/pregen_data = get_pregen_data()
+ if((WOUND_BLUNT in pregen_data.required_wounding_types) && severity >= WOUND_SEVERITY_CRITICAL)
+ return WOUND_CRITICAL_BLUNT_DISMEMBER_BONUS // we only require mangled bone (T2 blunt), but if there's a critical blunt, we'll add 15% more
+
+/// Returns our pregen data, which is practically guaranteed to exist, so this proc can safely be used raw.
+/// In fact, since it's RETURN_TYPEd to wound_pregen_data, you can even directly access the variables without having to store the value of this proc in a typed variable.
+/// Ex. get_pregen_data().wound_series
+/datum/wound/proc/get_pregen_data()
+ RETURN_TYPE(/datum/wound_pregen_data)
+
+ return SSwounds.pregen_data[type]
+
+#undef WOUND_CRITICAL_BLUNT_DISMEMBER_BONUS
diff --git a/code/datums/wounds/blunt.dm b/code/datums/wounds/blunt.dm
new file mode 100644
index 00000000000..219b7dd8805
--- /dev/null
+++ b/code/datums/wounds/blunt.dm
@@ -0,0 +1,3 @@
+/datum/wound/blunt
+ name = "Blunt Wound"
+ sound_effect = 'sound/effects/wounds/crack1.ogg'
diff --git a/code/datums/wounds/bones.dm b/code/datums/wounds/bones.dm
index 14b3ac2ffdb..efcc402ac2d 100644
--- a/code/datums/wounds/bones.dm
+++ b/code/datums/wounds/bones.dm
@@ -2,11 +2,17 @@
Blunt/Bone wounds
*/
-/datum/wound/blunt
+/datum/wound_pregen_data/bone
+ abstract = TRUE
+ required_limb_biostate = BIO_BONE
+
+ required_wounding_types = list(WOUND_BLUNT)
+
+ wound_series = WOUND_SERIES_BONE_BLUNT_BASIC
+
+/datum/wound/blunt/bone
name = "Blunt (Bone) Wound"
- sound_effect = 'sound/effects/wounds/crack1.ogg'
- wound_type = WOUND_BLUNT
- wound_flags = (BONE_WOUND | ACCEPTS_SPLINT)
+ wound_flags = ACCEPTS_SPLINT
///Have we been bone gel'd?
var/gelled
@@ -30,16 +36,12 @@
/*
Overwriting of base procs
*/
-/datum/wound/blunt/wound_injury(datum/wound/old_wound = null, attack_direction = null)
- // hook into gaining/losing gauze so crit bone wounds can re-enable/disable depending if they're slung or not
- RegisterSignals(limb, list(COMSIG_BODYPART_SPLINTED, COMSIG_BODYPART_SPLINT_DESTROYED), PROC_REF(update_inefficiencies))
-
+/datum/wound/blunt/bone/wound_injury(datum/wound/old_wound = null, attack_direction = null)
if(limb.body_zone == BODY_ZONE_HEAD && brain_trauma_group)
processes = TRUE
active_trauma = victim.gain_trauma_type(brain_trauma_group, TRAUMA_RESILIENCE_WOUND)
next_trauma_cycle = world.time + (rand(100 - WOUND_BONE_HEAD_TIME_VARIANCE, 100 + WOUND_BONE_HEAD_TIME_VARIANCE) * 0.01 * trauma_cycle_cooldown)
- RegisterSignal(victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(attack_with_hurt_hand))
if(limb.held_index && victim.get_item_for_held_index(limb.held_index) && (disabling || prob(30 * severity)))
var/obj/item/I = victim.get_item_for_held_index(limb.held_index)
if(istype(I, /obj/item/offhand))
@@ -53,19 +55,27 @@
)
update_inefficiencies()
+ return ..()
+
+/datum/wound/blunt/bone/set_victim(new_victim)
+ if(victim)
+ UnregisterSignal(victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK)
+ if(new_victim)
+ RegisterSignal(new_victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(attack_with_hurt_hand))
+ return ..()
-/datum/wound/blunt/remove_wound(ignore_limb, replaced)
+/datum/wound/blunt/bone/remove_wound(ignore_limb, replaced)
limp_slowdown = 0
limp_chance = 0
QDEL_NULL(active_trauma)
- if(limb)
- UnregisterSignal(limb, list(COMSIG_BODYPART_GAUZED, COMSIG_BODYPART_GAUZE_DESTROYED))
- if(victim)
- UnregisterSignal(victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK)
return ..()
-/datum/wound/blunt/handle_process(delta_time, times_fired)
+/datum/wound/blunt/bone/handle_process(delta_time, times_fired)
. = ..()
+
+ if(!victim || IS_IN_STASIS(victim))
+ return
+
if(limb.body_zone == BODY_ZONE_HEAD && brain_trauma_group && world.time > next_trauma_cycle)
if(active_trauma)
QDEL_NULL(active_trauma)
@@ -73,8 +83,7 @@
active_trauma = victim.gain_trauma_type(brain_trauma_group, TRAUMA_RESILIENCE_WOUND)
next_trauma_cycle = world.time + (rand(100-WOUND_BONE_HEAD_TIME_VARIANCE, 100+WOUND_BONE_HEAD_TIME_VARIANCE) * 0.01 * trauma_cycle_cooldown)
- var/is_bone_creature = victim.get_biological_state() == BIO_JUST_BONE
- if(!gelled || (!taped && !is_bone_creature))
+ if(!gelled || (!taped && limb.biological_state != BIO_BONE))
return
regen_ticks_current++
@@ -92,7 +101,7 @@
remove_wound()
/// If we're a human who's punching something with a broken arm, we might hurt ourselves doing so
-/datum/wound/blunt/proc/attack_with_hurt_hand(mob/M, atom/target, proximity)
+/datum/wound/blunt/bone/proc/attack_with_hurt_hand(mob/M, atom/target, proximity)
SIGNAL_HANDLER
if(victim.get_active_hand() != limb || victim.a_intent == INTENT_HELP || !ismob(target) || severity <= WOUND_SEVERITY_MODERATE)
@@ -117,16 +126,16 @@
return COMPONENT_NO_ATTACK_HAND
-/datum/wound/blunt/receive_damage(wounding_type, wounding_dmg, wound_bonus)
- if(!victim || wounding_dmg < WOUND_MINIMUM_DAMAGE)
+/datum/wound/blunt/bone/receive_damage(list/wounding_types, total_wound_dmg, wound_bonus)
+ if(!victim || total_wound_dmg < WOUND_MINIMUM_DAMAGE)
return
if(ishuman(victim))
var/mob/living/carbon/human/human_victim = victim
if(NOBLOOD in human_victim.dna?.species.species_traits)
return
- if(limb.body_zone == BODY_ZONE_CHEST && victim.blood_volume && prob(internal_bleeding_chance + wounding_dmg))
- var/blood_bled = rand(1, wounding_dmg * (severity == WOUND_SEVERITY_CRITICAL ? 2 : 1.5)) // 12 brute toolbox can cause up to 18/24 bleeding with a severe/critical chest wound
+ if(limb.body_zone == BODY_ZONE_CHEST && victim.blood_volume && prob(internal_bleeding_chance + total_wound_dmg))
+ var/blood_bled = rand(1, total_wound_dmg * (severity == WOUND_SEVERITY_CRITICAL ? 2 : 1.5)) // 12 brute toolbox can cause up to 18/24 bleeding with a severe/critical chest wound
switch(blood_bled)
if(1 to 6)
victim.bleed(blood_bled, TRUE)
@@ -155,97 +164,65 @@
new /obj/effect/temp_visual/dir_setting/bloodsplatter(victim.loc, victim.dir)
victim.add_splatter_floor(get_step(victim.loc, victim.dir))
-
-/datum/wound/blunt/get_examine_description(mob/user)
- if(!limb.current_splint && !gelled && !taped)
- return ..()
-
- var/list/msg = list()
- if(!limb.current_splint)
- msg += "[victim.p_their(TRUE)] [limb.name] [examine_desc]"
- else
- var/sling_condition = ""
- // how much life we have left in these bandages
- switch(limb.current_splint.sling_condition)
- if(0 to 1.25)
- sling_condition = "just barely"
- if(1.25 to 2.75)
- sling_condition = "loosely"
- if(2.75 to 4)
- sling_condition = "mostly"
- if(4 to INFINITY)
- sling_condition = "tightly"
-
- msg += "[victim.p_their(TRUE)] [limb.name] is [sling_condition] fastened with a [limb.current_splint.name]"
+/datum/wound/blunt/bone/modify_desc_before_span(desc)
+ . = ..()
if(taped)
- msg += ", and appears to be reforming itself under some surgical tape!"
+ . += ", [span_notice("and appears to be reforming itself under some surgical tape!")]"
else if(gelled)
- msg += ", with fizzing flecks of blue bone gel sparking off the bone!"
- else
- msg += "!"
- return "[msg.Join()]"
+ . += ", [span_notice("with fizzing flecks of blue bone gel sparking off the bone!")]"
/*
- New common procs for /datum/wound/blunt/
+ New common procs for /datum/wound/blunt/bone/
*/
-/datum/wound/blunt/proc/update_inefficiencies()
- SIGNAL_HANDLER
-
- if(limb.body_zone in list(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
- if(limb.current_splint?.splint_factor)
- limp_slowdown = initial(limp_slowdown) * limb.current_splint.splint_factor
- limp_chance = initial(limp_chance) * limb.current_splint.splint_factor
- else
- limp_slowdown = initial(limp_slowdown)
- limp_chance = initial(limp_chance)
- victim.apply_status_effect(STATUS_EFFECT_LIMP)
-
- else if(limb.body_zone in list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
- if(limb.current_splint?.splint_factor)
- interaction_efficiency_penalty = 1 + ((interaction_efficiency_penalty - 1) * limb.current_splint.splint_factor)
- else
- interaction_efficiency_penalty = interaction_efficiency_penalty
- interaction_efficiency_penalty = initial(interaction_efficiency_penalty)
-
- if(initial(disabling))
- if(limb.current_splint && limb.current_splint.helps_disabled)
- set_disabling(FALSE)
- else
- set_disabling(TRUE)
-
- limb.update_wounds()
-
/// Joint Dislocation (Moderate Blunt)
-/datum/wound/blunt/moderate
+/datum/wound/blunt/bone/moderate
name = "Joint Dislocation"
- desc = "Patient's bone has been unset from socket, causing pain and reduced motor function."
- treat_text = "Recommended application of bonesetter to affected limb, though manual relocation by applying an aggressive grab to the patient and helpfully interacting with afflicted limb may suffice."
+ desc = "Patient's limb has been unset from socket, causing pain and reduced motor function."
+ treat_text = "Recommended application of bonesetter or wrench to affected limb, though manual relocation by applying an aggressive grab to the patient and helpfully interacting with afflicted limb may suffice."
examine_desc = "is awkwardly janked out of place"
occur_text = "janks violently and becomes unseated"
severity = WOUND_SEVERITY_MODERATE
- viable_zones = list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
+ wound_flags = ACCEPTS_SPLINT | PLATING_DAMAGE
+ excluded_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST)
interaction_efficiency_penalty = 1.2
limp_slowdown = 2.25
limp_chance = 50
- threshold_minimum = 35
threshold_penalty = 15
- treatable_tool = TOOL_BONESET
- wound_flags = (BONE_WOUND)
- status_effect_type = /datum/status_effect/wound/blunt/moderate
+ treatable_tools = list(TOOL_BONESET, TOOL_WRENCH)
+ wound_flags = NONE
+ status_effect_type = /datum/status_effect/wound/blunt/bone/moderate
+
+/datum/wound_pregen_data/bone/dislocate
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/blunt/bone/moderate
+
+ required_limb_biostate = BIO_JOINTED
+
+ threshold_minimum = 35
+
+/datum/wound_pregen_data/bone/dislocate/get_threshold_for(obj/item/bodypart/part, attack_direction, damage_source)
+ if(part.biological_state & BIO_METAL)
+ return threshold_minimum * 2
+ return ..()
-/datum/wound/blunt/moderate/Destroy()
+/datum/wound/blunt/bone/moderate/Destroy()
if(victim)
UnregisterSignal(victim, COMSIG_LIVING_DOORCRUSHED)
return ..()
-/datum/wound/blunt/moderate/wound_injury(datum/wound/old_wound, attack_direction = null)
- . = ..()
- RegisterSignal(victim, COMSIG_LIVING_DOORCRUSHED, PROC_REF(door_crush))
+/datum/wound/blunt/bone/moderate/set_victim(new_victim)
+ if(victim)
+ UnregisterSignal(victim, COMSIG_LIVING_DOORCRUSHED)
+ if(new_victim)
+ RegisterSignal(new_victim, COMSIG_LIVING_DOORCRUSHED, PROC_REF(door_crush))
+
+ return ..()
/// Getting smushed in an airlock/firelock is a last-ditch attempt to try relocating your limb
-/datum/wound/blunt/moderate/proc/door_crush()
+/datum/wound/blunt/bone/moderate/proc/door_crush()
if(prob(40))
victim.visible_message(
span_danger("[victim]'s dislocated [limb.name] pops back into place!"),
@@ -253,7 +230,13 @@
)
remove_wound()
-/datum/wound/blunt/moderate/try_handling(mob/living/carbon/human/user, modifiers)
+/datum/wound/blunt/bone/moderate/treat(obj/item/treatment, mob/user)
+ if((limb.biological_state & BIO_BONE) && treatment.tool_behaviour == TOOL_BONESET)
+ return boneset_limb(treatment, user)
+ if((limb.biological_state & BIO_METAL) && treatment.tool_behaviour == TOOL_WRENCH)
+ return wrench_limb(treatment, user)
+
+/datum/wound/blunt/bone/moderate/try_handling(mob/living/carbon/human/user, modifiers)
if(user.pulling != victim || user.zone_selected != limb.body_zone || user.a_intent == INTENT_GRAB)
return FALSE
@@ -276,7 +259,7 @@
return TRUE
/// If someone is snapping our dislocated joint back into place by hand with an aggro grab and help intent
-/datum/wound/blunt/moderate/proc/chiropractice(mob/living/carbon/human/user)
+/datum/wound/blunt/bone/moderate/proc/chiropractice(mob/living/carbon/human/user)
var/time = base_treat_time
if(!do_after(user, time, target=victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
return
@@ -302,7 +285,7 @@
chiropractice(user)
/// If someone is snapping our dislocated joint into a fracture by hand with an aggro grab and harm or disarm intent
-/datum/wound/blunt/moderate/proc/malpractice(mob/living/carbon/human/user)
+/datum/wound/blunt/bone/moderate/proc/malpractice(mob/living/carbon/human/user)
var/time = base_treat_time
if(!do_after(user, time, target=victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
@@ -327,20 +310,20 @@
limb.receive_damage(brute = 10, wound_bonus = 10)
malpractice(user)
-/datum/wound/blunt/moderate/treat(obj/item/I, mob/user)
+/datum/wound/blunt/bone/moderate/proc/boneset_limb(obj/item/treatment, mob/user)
if(victim == user)
victim.visible_message(
- span_danger("[user] begins resetting [victim.p_their()] [limb.name] with [I]."),
- span_warning("You begin resetting your [limb.name] with [I]..."),
+ span_danger("[user] begins resetting [victim.p_their()] [limb.name] with [treatment]."),
+ span_warning("You begin resetting your [limb.name] with [treatment]..."),
)
else
user.visible_message(
- span_danger("[user] begins resetting [victim]'s [limb.name] with [I]."),
- span_notice("You begin resetting [victim]'s [limb.name] with [I]..."),
+ span_danger("[user] begins resetting [victim]'s [limb.name] with [treatment]."),
+ span_notice("You begin resetting [victim]'s [limb.name] with [treatment]..."),
)
if(!do_after(user, base_treat_time * (user == victim ? 1.5 : 1), target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
if(victim == user)
limb.receive_damage(brute = 5, wound_bonus = CANT_WOUND)
@@ -358,11 +341,28 @@
to_chat(victim, span_userdanger("[user] resets your [limb.name]!"))
qdel(src)
+ return TRUE
+
+/datum/wound/blunt/bone/moderate/proc/wrench_limb(obj/item/wrench, mob/user)
+ if(!victim)
+ return FALSE
+ victim.visible_message(
+ span_notice("[user] starts tightening the bolts on [victim]'s [limb.name]..."),
+ span_notice("[user] starts tightening the bolts on your [limb.name].")
+ )
+ if(!wrench.use_tool(victim, user, 3 SECONDS, volume = 50))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] wrenches [victim]'s [limb.name] back into place."),
+ span_notice("[user] wrenches your [limb.name] back into place.")
+ )
+ qdel(src)
+ return TRUE
/*
Severe (Hairline Fracture)
*/
-/datum/wound/blunt/severe
+/datum/wound/blunt/bone/severe
name = "Hairline Fracture"
desc = "Patient's bone has suffered a crack in the foundation, causing serious pain and reduced limb functionality."
treat_text = "Recommended light surgical application of bone gel, though a sling of medical gauze will prevent worsening situation."
@@ -373,18 +373,24 @@
interaction_efficiency_penalty = 2
limp_slowdown = 6
limp_chance = 60
- threshold_minimum = 70
threshold_penalty = 30
treatable_by = list(/obj/item/stack/sticky_tape/surgical, /obj/item/stack/medical/bone_gel)
- status_effect_type = /datum/status_effect/wound/blunt/severe
+ status_effect_type = /datum/status_effect/wound/blunt/bone/severe
brain_trauma_group = BRAIN_TRAUMA_MILD
trauma_cycle_cooldown = 5 MINUTES
internal_bleeding_chance = 40
- wound_flags = (BONE_WOUND | ACCEPTS_SPLINT | MANGLES_BONE)
+ wound_flags = ACCEPTS_SPLINT | MANGLES_INTERIOR
regen_ticks_needed = 120 // ticks every 2 seconds, 240 seconds, so roughly 4 minutes default
+/datum/wound_pregen_data/bone/hairline
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/blunt/bone/severe
+
+ threshold_minimum = 70
+
/// Compound Fracture (Critical Blunt)
-/datum/wound/blunt/critical
+/datum/wound/blunt/bone/critical
name = "Compound Fracture"
desc = "Patient's bones have suffered multiple gruesome fractures, causing significant pain and near uselessness of limb."
treat_text = "Immediate binding of affected limb, followed by surgical intervention ASAP."
@@ -397,31 +403,37 @@
limp_chance = 70
limp_slowdown = 9
sound_effect = 'sound/effects/wounds/crack2.ogg'
- threshold_minimum = 115
threshold_penalty = 50
disabling = TRUE
treatable_by = list(/obj/item/stack/sticky_tape/surgical, /obj/item/stack/medical/bone_gel)
- status_effect_type = /datum/status_effect/wound/blunt/critical
+ status_effect_type = /datum/status_effect/wound/blunt/bone/critical
brain_trauma_group = BRAIN_TRAUMA_SEVERE
trauma_cycle_cooldown = 5 MINUTES
internal_bleeding_chance = 60
- wound_flags = (BONE_WOUND | ACCEPTS_SPLINT | MANGLES_BONE)
+ wound_flags = ACCEPTS_SPLINT | MANGLES_INTERIOR
regen_ticks_needed = 240 // ticks every 2 seconds, 480 seconds, so roughly 8 minutes default
+/datum/wound_pregen_data/bone/compound
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/blunt/bone/critical
+
+ threshold_minimum = 115
+
// doesn't make much sense for "a" bone to stick out of your head
-/datum/wound/blunt/critical/apply_wound(obj/item/bodypart/L, silent = FALSE, datum/wound/old_wound = null, smited = FALSE, attack_direction = null)
+/datum/wound/blunt/bone/critical/apply_wound(obj/item/bodypart/L, silent = FALSE, datum/wound/old_wound = null, smited = FALSE, attack_direction = null)
if(L.body_zone == BODY_ZONE_HEAD)
occur_text = "splits open, exposing a bare, cracked skull through the flesh and blood"
examine_desc = "has an unsettling indent, with bits of skull poking out"
. = ..()
/// if someone is using bone gel on our wound
-/datum/wound/blunt/proc/gel(obj/item/stack/medical/bone_gel/I, mob/user)
+/datum/wound/blunt/bone/proc/gel(obj/item/stack/medical/bone_gel/I, mob/user)
// skellies get treated nicer with bone gel since their "reattach dismembered limbs by hand" ability sucks when it's still critically wounded
// i hate you
if(gelled)
to_chat(user, span_warning("[user == victim ? "Your" : "[victim]'s"] [limb.name] is already coated with bone gel!"))
- return
+ return TRUE
user.visible_message(
span_danger("[user] begins hastily applying [I] to [victim]'s' [limb.name]..."),
@@ -429,7 +441,7 @@
)
if(!do_after(user, base_treat_time * 1.5 * (user == victim ? 1.5 : 1), target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
I.use(1)
victim.force_pain_noise(60)
@@ -460,7 +472,7 @@
span_notice("You pass out from the pain of applying [I] to your [limb.name] before you can finish!"),
)
victim.AdjustUnconscious(5 SECONDS)
- return
+ return TRUE
victim.visible_message(
span_notice("[victim] finishes applying [I] to [victim.p_their()] [limb.name], grimacing from the pain!"),
span_notice("You finish applying [I] to your [limb.name], and your bones explode in pain!"),
@@ -469,15 +481,16 @@
limb.receive_damage(25, stamina = 100, wound_bonus = CANT_WOUND)
gelled = TRUE
processes = TRUE
+ return TRUE
/// if someone is using surgical tape on our wound
-/datum/wound/blunt/proc/tape(obj/item/stack/sticky_tape/surgical/I, mob/user)
+/datum/wound/blunt/bone/proc/tape(obj/item/stack/sticky_tape/surgical/I, mob/user)
if(!gelled)
to_chat(user, span_warning("[user == victim ? "Your" : "[victim]'s"] [limb.name] must be coated with bone gel to perform this emergency operation!"))
- return
+ return TRUE
if(taped)
to_chat(user, span_warning("[user == victim ? "Your" : "[victim]'s"] [limb.name] is already wrapped in [I.name]."))
- return
+ return TRUE
user.visible_message(
span_danger("[user] begins applying [I] to [victim]'s' [limb.name]..."),
@@ -485,7 +498,7 @@
)
if(!do_after(user, base_treat_time * (user == victim ? 1.5 : 1), target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
if(victim == user)
regen_ticks_needed *= 1.5
@@ -506,20 +519,21 @@
taped = TRUE
processes = TRUE
+ return TRUE
-/datum/wound/blunt/treat(obj/item/I, mob/user)
+/datum/wound/blunt/bone/treat(obj/item/I, mob/user)
if(istype(I, /obj/item/stack/medical/bone_gel))
- gel(I, user)
+ return gel(I, user)
else if(istype(I, /obj/item/stack/sticky_tape/surgical))
- tape(I, user)
+ return tape(I, user)
-/datum/wound/blunt/get_scanner_description(mob/user)
+/datum/wound/blunt/bone/get_scanner_description(mob/user)
. = ..()
. += "
"
if(severity > WOUND_SEVERITY_MODERATE)
- if(victim.get_biological_state() == BIO_JUST_BONE)
+ if((limb.biological_state & BIO_BONE) && !(limb.biological_state & BIO_FLESH))
if(!gelled)
. += "Recommended Treatment: Apply bone gel directly to injured limb. Creatures of pure bone don't seem to mind bone gel application nearly as much as fleshed individuals. Surgical tape will also be unnecessary.\n"
else
diff --git a/code/datums/wounds/burns.dm b/code/datums/wounds/burns.dm
index 56d4d421578..e56691f17d0 100644
--- a/code/datums/wounds/burns.dm
+++ b/code/datums/wounds/burns.dm
@@ -6,10 +6,12 @@
/datum/wound/burn
name = "Burn Wound"
a_or_from = "from"
- wound_type = WOUND_BURN
- processes = TRUE
sound_effect = 'sound/effects/wounds/sizzle1.ogg'
- wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE)
+
+/datum/wound/burn/flesh
+ name = "Burn (Flesh) Wound"
+ a_or_from = "from"
+ processes = TRUE
treatable_by = list(/obj/item/stack/medical/ointment, /obj/item/stack/medical/mesh) // sterilizer and alcohol will require reagent treatments, coming soon
@@ -30,8 +32,18 @@
/// Once we reach infestation beyond WOUND_INFESTATION_SEPSIS, we get this many warnings before the limb is completely paralyzed (you'd have to ignore a really bad burn for a really long time for this to happen)
var/strikes_to_lose_limb = 3
+/datum/wound_pregen_data/flesh_burn
+ abstract = TRUE
+
+ required_wounding_types = list(WOUND_BURN)
+ required_limb_biostate = BIO_FLESH
+
+ wound_series = WOUND_SERIES_FLESH_BURN_BASIC
+
+/datum/wound/burn/flesh/handle_process(seconds_per_tick, times_fired)
+ if (!victim || IS_IN_STASIS(victim))
+ return
-/datum/wound/burn/handle_process()
. = ..()
if(strikes_to_lose_limb == 0) // we've already hit sepsis, nothing more to do
victim.adjustToxLoss(0.5)
@@ -124,7 +136,7 @@
set_disabling(TRUE)
strikes_to_lose_limb--
-/datum/wound/burn/get_examine_description(mob/user)
+/datum/wound/burn/flesh/get_examine_description(mob/user)
if(strikes_to_lose_limb <= 0)
return span_deadsay("[victim.p_their(TRUE)] [limb.name] has locked up completely and is non-functional.")
@@ -157,7 +169,7 @@
return "[condition.Join()]"
-/datum/wound/burn/get_scanner_description(mob/user)
+/datum/wound/burn/flesh/get_scanner_description(mob/user)
if(strikes_to_lose_limb == 0)
var/oopsie = "Type: [name]\nSeverity: [severity_text()]"
oopsie += "
Infection Level: The bodypart has suffered complete sepsis and must be removed. Amputate or augment limb immediately.
"
@@ -190,15 +202,15 @@
*/
/// if someone is using ointment or mesh on our burns
-/datum/wound/burn/proc/ointmentmesh(obj/item/stack/medical/I, mob/user)
+/datum/wound/burn/flesh/proc/ointmentmesh(obj/item/stack/medical/I, mob/user)
user.visible_message(
span_notice("[user] begins applying [I] to [victim]'s [limb.name]..."),
span_notice("You begin applying [I] to [user == victim ? "your" : "[victim]'s"] [limb.name]..."),
)
if (I.amount <= 0)
- return
+ return TRUE
if(!do_after(user, (user == victim ? I.self_delay : I.other_delay), extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
limb.heal_damage(I.heal_brute, I.heal_burn)
user.visible_message(
@@ -213,25 +225,26 @@
// in this fashion rather than have the cut immediately clear up. maybe bleed wounds could downgrade into muscle wounds...?
if((infestation <= 0 || sanitization >= infestation) && (flesh_damage <= 0 || flesh_healing > flesh_damage))
to_chat(user, span_notice("You've done all you can with [I], [victim]'s [limb.name] can't be treated further."))
+ return TRUE
else
- try_treating(I, user)
+ return try_treating(I, user)
-/datum/wound/burn/treat(obj/item/I, mob/user)
+/datum/wound/burn/flesh/treat(obj/item/I, mob/user)
if(istype(I, /obj/item/stack/medical/ointment))
- ointmentmesh(I, user)
+ return ointmentmesh(I, user)
else if(istype(I, /obj/item/stack/medical/mesh))
var/obj/item/stack/medical/mesh/mesh_check = I
if(!mesh_check.is_open)
to_chat(user, span_warning("You need to open [mesh_check] first."))
return
- ointmentmesh(mesh_check, user)
+ return ointmentmesh(mesh_check, user)
-/datum/wound/burn/on_synthflesh(amount)
+/datum/wound/burn/flesh/on_synthflesh(amount)
flesh_healing += amount * 0.5 // 20u patch will heal 10 flesh standard
/// When a -tane chem is applied to the victim, we call this.
-/datum/wound/burn/on_tane(amount)
+/datum/wound/burn/flesh/on_tane(amount)
if(amount > 10 && severity <= WOUND_SEVERITY_SEVERE)
qdel(src)
return
@@ -241,7 +254,7 @@
return
//crystal reagent lets you fully clear burns because they're rare chemicals and burns suck ass with no cryo
-/datum/wound/burn/on_crystal(power)
+/datum/wound/burn/flesh/on_crystal(power)
if(power>=5)
to_chat(victim, span_green("The burns on your [limb.name] have been regenerated, leaving only minor necrosis."))
victim.adjustCloneLoss(5)
@@ -249,7 +262,7 @@
return
//So does rezadone
-/datum/wound/burn/on_rezadone(power)
+/datum/wound/burn/flesh/on_rezadone(power)
if(power>=10)
// Rapidly regenerating burns isn't so clean, especially when there's an infection to purge
to_chat(victim, span_green("The burns on your [limb.name] clear up, leaving you with an ill feeling."))
@@ -268,7 +281,7 @@
return
// we don't even care about first degree burns, straight to second
-/datum/wound/burn/moderate
+/datum/wound/burn/flesh/moderate
name = "Second Degree Burns"
desc = "Patient is suffering considerable burns with mild skin penetration, weakening limb integrity and increased burning sensations."
treat_text = "Recommended application of topical ointment or regenerative mesh to affected region."
@@ -276,27 +289,38 @@
occur_text = "breaks out with violent red burns"
severity = WOUND_SEVERITY_MODERATE
damage_mulitplier_penalty = 1.05
- threshold_minimum = 40
threshold_penalty = 20
- status_effect_type = /datum/status_effect/wound/burn/moderate
+ status_effect_type = /datum/status_effect/wound/burn/flesh/moderate
flesh_damage = 5
-/datum/wound/burn/severe
+/datum/wound_pregen_data/flesh_burn/second_degree
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/burn/flesh/moderate
+ threshold_minimum = 40
+
+/datum/wound/burn/flesh/severe
name = "Third Degree Burns"
desc = "Patient is suffering extreme burns with full skin penetration, creating serious risk of infection and greatly reduced limb integrity."
treat_text = "Recommended immediate disinfection and excision of any infected skin, followed by bandaging and ointment."
examine_desc = "appears seriously charred, with aggressive red splotches"
occur_text = "chars rapidly, spreading angry red burns"
severity = WOUND_SEVERITY_SEVERE
+ wound_flags = ACCEPTS_GAUZE | NUMBS_BODYPART
damage_mulitplier_penalty = 1.1
- threshold_minimum = 80
threshold_penalty = 30
- status_effect_type = /datum/status_effect/wound/burn/severe
+ status_effect_type = /datum/status_effect/wound/burn/flesh/severe
treatable_by = list(/obj/item/stack/medical/ointment, /obj/item/stack/medical/mesh)
infestation_rate = 0.03
flesh_damage = 12.5
-/datum/wound/burn/critical
+/datum/wound_pregen_data/flesh_burn/third_degree
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/burn/flesh/severe
+ threshold_minimum = 80
+
+/datum/wound/burn/flesh/critical
name = "Catastrophic Burns"
desc = "Patient is suffering near complete loss of tissue and significantly charred muscle and bone, creating life-threatening risk of infection and negligible limb integrity."
treat_text = "Immediate surgical debriding of any infected skin, followed by potent tissue regeneration formula and bandaging."
@@ -305,9 +329,15 @@
severity = WOUND_SEVERITY_CRITICAL
damage_mulitplier_penalty = 1.15
sound_effect = 'sound/effects/wounds/sizzle2.ogg'
- threshold_minimum = 140
threshold_penalty = 80
- status_effect_type = /datum/status_effect/wound/burn/critical
+ status_effect_type = /datum/status_effect/wound/burn/flesh/critical
treatable_by = list(/obj/item/stack/medical/ointment, /obj/item/stack/medical/mesh)
infestation_rate = 0.07
flesh_damage = 20
+ wound_flags = ACCEPTS_GAUZE | MANGLES_EXTERIOR | NUMBS_BODYPART
+
+/datum/wound_pregen_data/flesh_burn/fourth_degree
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/burn/flesh/critical
+ threshold_minimum = 140
diff --git a/code/datums/wounds/dismember.dm b/code/datums/wounds/dismember.dm
index df516429c49..faf3a8115b9 100644
--- a/code/datums/wounds/dismember.dm
+++ b/code/datums/wounds/dismember.dm
@@ -1,16 +1,31 @@
+/datum/wound_pregen_data/loss
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/loss
+ required_limb_biostate = NONE
+ require_any_biostate = TRUE
+
+ required_wounding_types = list(WOUND_ALL)
+
+ wound_series = WOUND_SERIES_LOSS_BASIC
+
+ threshold_minimum = WOUND_DISMEMBER_OUTRIGHT_THRESH // not actually used since dismembering is handled differently, but may as well assign it since we got it
+
/datum/wound/loss
name = "Dismemberment Wound"
desc = "Tis but a flesh wound."
sound_effect = 'sound/effects/wounds/dismember.ogg'
severity = WOUND_SEVERITY_LOSS
- threshold_minimum = WOUND_DISMEMBER_OUTRIGHT_THRESH // not actually used since dismembering is handled differently, but may as well assign it since we got it
status_effect_type = null
wound_flags = null
+ /// The wounding_type of the attack that caused us. Used to generate the description of our scar. Currently unused, but primarily exists in case non-biological wounds are added.
+ var/loss_wounding_type
+
/// Our special proc for our special dismembering, the wounding type only matters for what text we have
/datum/wound/loss/proc/apply_dismember(obj/item/bodypart/dismembered_part, wounding_type = WOUND_SLASH, outright = FALSE, attack_direction)
- if(!istype(dismembered_part) || !dismembered_part.owner || !(dismembered_part.body_zone in viable_zones) || isalien(dismembered_part.owner) || !dismembered_part.can_dismember())
+ if(!istype(dismembered_part) || !dismembered_part.owner || (dismembered_part.body_zone in get_excluded_zones()) || isalien(dismembered_part.owner) || !dismembered_part.can_dismember())
qdel(src)
return
@@ -18,10 +33,31 @@
if(dismembered_part.body_zone == BODY_ZONE_CHEST)
occur_text = "is split open, causing [victim.p_their()] internals organs to spill out!"
- else if(outright)
+ else
+ occur_text = dismembered_part.get_dismember_message(wounding_type, outright)
+
+ var/msg = span_bolddanger("[victim]'s [dismembered_part.name] [occur_text]!")
+
+ victim.visible_message(msg, span_userdanger("Your [dismembered_part.name] [occur_text]!"))
+
+ loss_wounding_type = wounding_type
+
+ set_limb(dismembered_part)
+ second_wind()
+ log_wound(victim, src)
+ if(dismembered_part.can_bleed() && wounding_type != WOUND_BURN && victim.blood_volume)
+ victim.spray_blood(attack_direction, severity)
+ dismembered_part.dismember(dam_type = (wounding_type == WOUND_BURN ? BURN : BRUTE))
+ qdel(src)
+ return TRUE
+
+/obj/item/bodypart/proc/get_dismember_message(wounding_type, outright)
+ var/occur_text
+
+ if(outright)
switch(wounding_type)
if(WOUND_BLUNT)
- occur_text = "is outright smashed to a gross pulp, severing it completely!"
+ occur_text = "is outright smashed to [(biological_state & BIO_METAL) ? "pieces" : "a gross pulp"], severing it completely!"
if(WOUND_SLASH)
occur_text = "is outright slashed off, severing it completely!"
if(WOUND_PIERCE)
@@ -29,25 +65,17 @@
if(WOUND_BURN)
occur_text = "is outright incinerated, falling to dust!"
else
+ var/bone_text = get_internal_description()
+ var/tissue_text = get_external_description()
+
switch(wounding_type)
if(WOUND_BLUNT)
- occur_text = "is shattered through the last bone holding it together, severing it completely!"
+ occur_text = "is shattered through the last [bone_text] holding it together, severing it completely!"
if(WOUND_SLASH)
- occur_text = "is slashed through the last tissue holding it together, severing it completely!"
+ occur_text = "is slashed through the last [tissue_text] holding it together, severing it completely!"
if(WOUND_PIERCE)
- occur_text = "is pierced through the last tissue holding it together, severing it completely!"
+ occur_text = "is pierced through the last [tissue_text] holding it together, severing it completely!"
if(WOUND_BURN)
- occur_text = "is completely incinerated, falling to dust!"
-
- var/msg = span_bolddanger("[victim]'s [dismembered_part.name] [occur_text]!")
+ occur_text = "is completely incinerated, [(biological_state & BIO_METAL) ? "melting to slag" : "falling to dust"]!"
- victim.visible_message(msg, span_userdanger("Your [dismembered_part.name] [occur_text]!"))
-
- set_limb(dismembered_part)
- second_wind()
- log_wound(victim, src)
- if(wounding_type != WOUND_BURN && victim.blood_volume)
- victim.spray_blood(attack_direction, severity)
- dismembered_part.dismember(wounding_type == WOUND_BURN ? BURN : BRUTE)
- qdel(src)
- return TRUE
+ return occur_text
diff --git a/code/datums/wounds/muscle.dm b/code/datums/wounds/muscle.dm
index 88b7093ab69..30dcbfe4236 100644
--- a/code/datums/wounds/muscle.dm
+++ b/code/datums/wounds/muscle.dm
@@ -3,21 +3,27 @@
*/
/datum/wound/muscle
name = "Muscle Wound"
- wound_type = WOUND_MUSCLE
- wound_flags = (FLESH_WOUND | ACCEPTS_SPLINT)
- viable_zones = list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
+ wound_flags = ACCEPTS_SPLINT
+ bio_state_required = BIO_FLESH
+ excluded_zones = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST)
processes = TRUE
///How much do we need to regen. Will regen faster if we're splinted and or laying down
var/regen_ticks_needed
///Our current counter for healing
var/regen_ticks_current = 0
+/datum/wound_pregen_data/muscle
+ abstract = TRUE
+ required_limb_biostate = BIO_FLESH
+
+ required_wounding_types = list(WOUND_BLUNT)
+ wound_series = WOUND_SERIES_FLESH_MUSCLE
+ weight = WOUND_MUSCLE_WEIGHT
+
/*
Overwriting of base procs
*/
/datum/wound/muscle/wound_injury(datum/wound/old_wound = null, attack_direction = null)
- //hook into gaining/losing gauze so crit muscle wounds can re-enable/disable depending if they're slung or not
- RegisterSignals(limb, list(COMSIG_BODYPART_SPLINTED, COMSIG_BODYPART_SPLINT_DESTROYED), PROC_REF(update_inefficiencies))
RegisterSignal(victim, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, PROC_REF(attack_with_hurt_hand))
if(limb.held_index && victim.get_item_for_held_index(limb.held_index) && (disabling || prob(10 * severity)))
@@ -111,31 +117,6 @@
return "[msg.Join()]"
-/*
- Common procs mostly copied from bone wounds, as their behaviour is very similar
-*/
-/datum/wound/muscle/proc/update_inefficiencies()
- if(limb.body_zone in list(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))
- if(limb.current_splint)
- limp_slowdown = initial(limp_slowdown) * limb.current_splint.splint_factor
- else
- limp_slowdown = initial(limp_slowdown)
- victim.apply_status_effect(STATUS_EFFECT_LIMP)
-
- else if(limb.body_zone in list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
- if(limb.current_splint)
- interaction_efficiency_penalty = 1 + ((interaction_efficiency_penalty - 1) * limb.current_splint.splint_factor)
- else
- interaction_efficiency_penalty = interaction_efficiency_penalty
-
- if(initial(disabling))
- if(limb.current_splint && limb.current_splint.helps_disabled)
- set_disabling(FALSE)
- else
- set_disabling(TRUE)
-
- limb.update_wounds()
-
//Moderate (Muscle Tear)
/datum/wound/muscle/moderate
name = "Muscle Tear"
@@ -146,11 +127,16 @@
severity = WOUND_SEVERITY_MODERATE
interaction_efficiency_penalty = 1.15
limp_slowdown = 1
- threshold_minimum = 40
threshold_penalty = 10
status_effect_type = /datum/status_effect/wound/muscle/moderate
regen_ticks_needed = 500
+/datum/wound_pregen_data/muscle/tear
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/muscle/moderate
+ threshold_minimum = 40
+
//Severe (Ruptured Tendon)
/datum/wound/muscle/severe
name = "Ruptured Tendon"
@@ -162,12 +148,17 @@
severity = WOUND_SEVERITY_SEVERE
interaction_efficiency_penalty = 1.25
limp_slowdown = 5
- threshold_minimum = 90
threshold_penalty = 35
disabling = TRUE
status_effect_type = /datum/status_effect/wound/muscle/severe
regen_ticks_needed = 1500 //takes a while
+/datum/wound_pregen_data/muscle/rupture
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/muscle/severe
+ threshold_minimum = 90
+
/datum/status_effect/wound/muscle
/datum/status_effect/wound/muscle/on_apply()
diff --git a/code/datums/wounds/pierce.dm b/code/datums/wounds/pierce.dm
index a7ddf660d0b..acc9b97ae1e 100644
--- a/code/datums/wounds/pierce.dm
+++ b/code/datums/wounds/pierce.dm
@@ -3,14 +3,15 @@
*/
/datum/wound/pierce
+
+/datum/wound/pierce/bleed
name = "Piercing Wound"
sound_effect = 'sound/weapons/slice.ogg'
processes = TRUE
- wound_type = WOUND_PIERCE
treatable_by = list(/obj/item/stack/medical/suture)
- treatable_tool = TOOL_CAUTERY
+ treatable_tools = list(TOOL_CAUTERY)
base_treat_time = 3 SECONDS
- wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | ACCEPTS_SPLINT)
+ wound_flags = ACCEPTS_GAUZE | CAN_BE_GRASPED
/// How much blood we start losing when this wound is first applied
var/initial_flow
@@ -22,30 +23,38 @@
/// If we let off blood when hit, the max blood lost is this * the incoming damage
var/internal_bleeding_coefficient
-/datum/wound/pierce/show_wound_topic(mob/user)
+/datum/wound_pregen_data/flesh_pierce
+ abstract = TRUE
+
+ required_limb_biostate = (BIO_FLESH)
+ required_wounding_types = list(WOUND_PIERCE)
+
+ wound_series = WOUND_SERIES_FLESH_PUNCTURE_BLEED
+
+/datum/wound/pierce/bleed/show_wound_topic(mob/user)
return (user == victim && blood_flow)
-/datum/wound/pierce/Topic(href, href_list)
+/datum/wound/pierce/bleed/Topic(href, href_list)
. = ..()
if(href_list["wound_topic"])
if(!usr == victim)
return
victim.self_grasp_bleeding_limb(limb)
-/datum/wound/pierce/wound_injury(datum/wound/old_wound = null, attack_direction = null)
+/datum/wound/pierce/bleed/wound_injury(datum/wound/old_wound = null, attack_direction = null)
blood_flow = initial_flow
- if(attack_direction && victim.blood_volume > BLOOD_VOLUME_BAD)
+ if(limb.can_bleed() && attack_direction && victim.blood_volume > BLOOD_VOLUME_BAD)
victim.spray_blood(attack_direction, severity)
-/datum/wound/pierce/receive_damage(wounding_type, wounding_dmg, wound_bonus)
- if(isnull(victim) || victim.stat == DEAD || wounding_dmg < WOUND_MINIMUM_DAMAGE)
+/datum/wound/pierce/bleed/receive_damage(list/wounding_types, total_wound_dmg, wound_bonus)
+ if(isnull(victim) || victim.stat == DEAD || total_wound_dmg < WOUND_MINIMUM_DAMAGE)
return
- if(victim.blood_volume && prob(internal_bleeding_chance + wounding_dmg))
+ if(victim.blood_volume && limb.can_bleed() && prob(internal_bleeding_chance + total_wound_dmg))
if(limb.current_splint?.splint_factor)
- wounding_dmg *= (1 - limb.current_splint.splint_factor)
+ total_wound_dmg *= (1 - limb.current_splint.splint_factor)
- var/blood_bled = rand(1, wounding_dmg * internal_bleeding_coefficient)
+ var/blood_bled = rand(1, total_wound_dmg * internal_bleeding_coefficient)
switch(blood_bled)
if(1 to 6)
victim.bleed(blood_bled, TRUE)
@@ -74,14 +83,16 @@
new /obj/effect/temp_visual/dir_setting/bloodsplatter(victim.loc, victim.dir)
victim.add_splatter_floor(get_step(victim.loc, victim.dir))
-/datum/wound/pierce/get_bleed_rate_of_change()
+/datum/wound/pierce/bleed/get_bleed_rate_of_change()
+ if(!limb.can_bleed())
+ return BLOOD_FLOW_STEADY
if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS))
return BLOOD_FLOW_INCREASING
if(limb.current_gauze && limb.current_gauze.seep_gauze(limb.current_gauze.absorption_rate, GAUZE_STAIN_BLOOD))
return BLOOD_FLOW_DECREASING
return BLOOD_FLOW_STEADY
-/datum/wound/pierce/handle_process()
+/datum/wound/pierce/bleed/handle_process()
blood_flow = min(blood_flow, WOUND_SLASH_MAX_BLOODFLOW)
if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS))
@@ -93,30 +104,30 @@
if(blood_flow <= 0)
qdel(src)
-/datum/wound/pierce/on_stasis()
+/datum/wound/pierce/bleed/on_stasis()
. = ..()
if(blood_flow <= 0)
qdel(src)
-/datum/wound/pierce/check_grab_treatments(obj/item/I, mob/user)
+/datum/wound/pierce/bleed/check_grab_treatments(obj/item/I, mob/user)
if(I.get_temperature()) // if we're using something hot but not a cautery, we need to be aggro grabbing them first, so we don't try treating someone we're eswording
return TRUE
-/datum/wound/pierce/treat(obj/item/I, mob/user)
+/datum/wound/pierce/bleed/treat(obj/item/I, mob/user)
if(istype(I, /obj/item/stack/medical/suture))
- suture(I, user)
+ return suture(I, user)
else if(I.tool_behaviour == TOOL_CAUTERY || I.get_temperature())
- tool_cauterize(I, user)
+ return tool_cauterize(I, user)
-/datum/wound/pierce/on_xadone(power)
+/datum/wound/pierce/bleed/on_xadone(power)
. = ..()
blood_flow -= 0.03 * power // i think it's like a minimum of 3 power, so .09 blood_flow reduction per tick is pretty good for 0 effort
-/datum/wound/pierce/on_synthflesh(power)
+/datum/wound/pierce/bleed/on_synthflesh(power)
. = ..()
blood_flow -= 0.05 * power // 20u * 0.05 = -1 blood flow, less than with slashes but still good considering smaller bleed rates
-/datum/wound/pierce/on_silfrine(power)
+/datum/wound/pierce/bleed/on_silfrine(power)
switch(power)
if(0 to 3)
EMPTY_BLOCK_GUARD
@@ -129,14 +140,14 @@
blood_flow -= 0.05 * power
/// If someone is using a suture to close this puncture
-/datum/wound/pierce/proc/suture(obj/item/stack/medical/suture/I, mob/user)
+/datum/wound/pierce/bleed/proc/suture(obj/item/stack/medical/suture/I, mob/user)
var/self_penalty_mult = (user == victim ? 1 : 1)
user.visible_message(
span_notice("[user] begins stitching [victim]'s [limb.name] with [I]..."),
span_notice("You begin stitching [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."),
)
if(!do_after(user, base_treat_time * self_penalty_mult, target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
user.visible_message(
span_green("[user] stitches up some of the bleeding on [victim]."),
span_green("You stitch up some of the bleeding on [user == victim ? "yourself" : "[victim]"]."),
@@ -147,12 +158,13 @@
I.use(1)
if(blood_flow > 0)
- try_treating(I, user)
+ return try_treating(I, user)
else
to_chat(user, span_green("You successfully close the hole in [user == victim ? "your" : "[victim]'s"] [limb.name]."))
+ return TRUE
/// If someone is using either a cautery tool or something with heat to cauterize this pierce
-/datum/wound/pierce/proc/tool_cauterize(obj/item/I, mob/user)
+/datum/wound/pierce/bleed/proc/tool_cauterize(obj/item/I, mob/user)
var/improv_penalty_mult = (I.tool_behaviour == TOOL_CAUTERY ? 1 : 1.25) // 25% longer and less effective if you don't use a real cautery
var/self_penalty_mult = (user == victim ? 1.1 : 1)
@@ -161,7 +173,7 @@
span_warning("You begin cauterizing [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."),
)
if(!do_after(user, base_treat_time * self_penalty_mult * improv_penalty_mult, target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
playsound(user, 'sound/surgery/cautery2.ogg', 20)
user.visible_message(
@@ -175,9 +187,10 @@
blood_flow -= blood_cauterized
if(blood_flow > 0)
- try_treating(I, user)
+ return try_treating(I, user)
+ return TRUE
-/datum/wound/pierce/moderate
+/datum/wound/pierce/bleed/moderate
name = "Minor Breakage"
desc = "Patient's skin has been broken open, causing severe bruising and minor internal bleeding in affected area."
treat_text = "Application of clean bandages and sutures or cauterization."
@@ -189,11 +202,16 @@
gauzed_clot_rate = 0.8
internal_bleeding_chance = 30
internal_bleeding_coefficient = 1.25
- threshold_minimum = 40
threshold_penalty = 20
- status_effect_type = /datum/status_effect/wound/pierce/moderate
+ status_effect_type = /datum/status_effect/wound/pierce/bleed/moderate
+
+/datum/wound_pregen_data/flesh_pierce/breakage
+ abstract = FALSE
-/datum/wound/pierce/severe
+ wound_path_to_generate = /datum/wound/pierce/bleed/moderate
+ threshold_minimum = 40
+
+/datum/wound/pierce/bleed/severe
name = "Open Puncture"
desc = "Patient's internal tissue is penetrated, causing sizeable internal bleeding and reduced limb stability."
treat_text = "Application of clean bandages and sutures or cauterization."
@@ -205,11 +223,16 @@
gauzed_clot_rate = 0.6
internal_bleeding_chance = 60
internal_bleeding_coefficient = 1.5
- threshold_minimum = 60
threshold_penalty = 35
- status_effect_type = /datum/status_effect/wound/pierce/severe
+ status_effect_type = /datum/status_effect/wound/pierce/bleed/severe
+
+/datum/wound_pregen_data/flesh_pierce/open_puncture
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/pierce/bleed/severe
+ threshold_minimum = 60
-/datum/wound/pierce/critical
+/datum/wound/pierce/bleed/critical
name = "Ruptured Cavity"
desc = "Patient's internal tissue and circulatory system is shredded, causing significant internal bleeding and damage to internal organs."
treat_text = "Bandaging, cauterization, or surgical repair followed by potential transfusion."
@@ -221,7 +244,12 @@
gauzed_clot_rate = 0.5
internal_bleeding_chance = 80
internal_bleeding_coefficient = 1.75
- threshold_minimum = 115
threshold_penalty = 50
- status_effect_type = /datum/status_effect/wound/pierce/critical
- wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | ACCEPTS_SPLINT | MANGLES_FLESH)
+ status_effect_type = /datum/status_effect/wound/pierce/bleed/critical
+ wound_flags = ACCEPTS_GAUZE | MANGLES_EXTERIOR | CAN_BE_GRASPED
+
+/datum/wound_pregen_data/flesh_pierce/cavity
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/pierce/bleed/critical
+ threshold_minimum = 115
diff --git a/code/datums/wounds/robotic/buckling.dm b/code/datums/wounds/robotic/buckling.dm
new file mode 100644
index 00000000000..87aa3b1d748
--- /dev/null
+++ b/code/datums/wounds/robotic/buckling.dm
@@ -0,0 +1,213 @@
+#define MAX_TAPE_STACKS 5
+#define DAMAGE_PER_STACK 10
+#define TAPE_SCALE 50
+
+#define TAPE_FACTOR_CALC(amount, strength) (TAPE_SCALE / (TAPE_SCALE + (amount * strength)**2))
+
+/datum/wound/blunt/buckling
+ name = "Blunt (Metal) Wound"
+ sound_effect = 'sound/machines/clockcult/integration_cog_install.ogg'
+ wound_flags = PLATING_DAMAGE
+ bio_state_required = BIO_METAL
+
+ /// The tape applied to this wound.
+ var/obj/item/stack/tape/applied_tape
+
+/datum/wound_pregen_data/buckling
+ abstract = TRUE
+ required_limb_biostate = BIO_METAL
+
+ required_wounding_types = list(WOUND_BLUNT)
+
+ wound_series = WOUND_SERIES_METAL_BUCKLING
+
+/datum/wound/blunt/buckling/moderate
+ name = "Bent Plating"
+ desc = "Patient's external plating is bent out of shape."
+ treat_text = "Recommend prying the external plate back into place."
+ examine_desc = "is bent out of shape"
+ occur_text = "suddenly bends out of shape"
+ sound_effect = 'sound/effects/bin_open.ogg'
+ treatable_tools = list(TOOL_CROWBAR, TOOL_WIRECUTTER)
+ treatable_by = list(/obj/item/stack/tape)
+ severity = WOUND_SEVERITY_MODERATE
+ interaction_efficiency_penalty = 1.2
+ threshold_penalty = 20
+ limp_slowdown = 2.25
+ limp_chance = 50
+
+/datum/wound_pregen_data/buckling/dented
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/blunt/buckling/moderate
+ threshold_minimum = 35
+
+/datum/wound/blunt/buckling/severe
+ name = "Buckled Chassis"
+ desc = "Patient's chassis is buckled inwards, causing disruption to mobility. Applying duct tape can temporarily secure the limb until proper repairs."
+ treat_text = "Recommend replacement of external plating."
+ examine_desc = "is buckled inwards"
+ occur_text = "creaks and buckles inwards"
+ severity = WOUND_SEVERITY_SEVERE
+ wound_flags = MANGLES_INTERIOR | PLATING_DAMAGE
+ treatable_tools = list(TOOL_WIRECUTTER) // for tape removal
+ treatable_by = list(/obj/item/stack/tape)
+ interaction_efficiency_penalty = 2
+ threshold_penalty = 40
+ limp_slowdown = 6
+ limp_chance = 60
+
+/datum/wound_pregen_data/buckling/buckled
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/blunt/buckling/severe
+ threshold_minimum = 70
+
+/datum/wound/blunt/buckling/critical
+ name = "Sheared Frame"
+ desc = "Patient's limb is sheared, rendering it inoperable."
+ treat_text = "Recommend replacement of internal frame and external plating. Applying duct tape can temporarily secure the limb until proper repairs."
+ examine_desc = "is sheared off, barely hanging on by the wires"
+ occur_text = "violently snaps as its frame shears apart"
+ wound_flags = MANGLES_INTERIOR | PLATING_DAMAGE
+ severity = WOUND_SEVERITY_CRITICAL
+ treatable_tools = list(TOOL_WIRECUTTER) // for tape removal
+ treatable_by = list(/obj/item/stack/tape) // duct tape will fix anything
+ disabling = TRUE
+ interaction_efficiency_penalty = 2.5
+ threshold_penalty = 50
+ limp_slowdown = 9
+ limp_chance = 70
+
+/datum/wound_pregen_data/buckling/sheared
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/blunt/buckling/critical
+ threshold_minimum = 125
+
+/datum/wound/blunt/buckling/remove_wound(ignore_limb, replaced)
+ limp_slowdown = 0
+ limp_chance = 0
+ if(applied_tape)
+ QDEL_NULL(applied_tape)
+ return ..()
+
+/datum/wound/blunt/buckling/treat(obj/item/treatment, mob/user)
+ if(istype(treatment, /obj/item/stack/tape))
+ return apply_tape(treatment, user)
+ if(treatment.tool_behaviour == TOOL_WIRECUTTER)
+ return remove_tape(treatment, user)
+ if(treatment.tool_behaviour == TOOL_CROWBAR)
+ return pry_chassis(treatment, user)
+
+/// Applies tape to the wound.
+/datum/wound/blunt/buckling/proc/apply_tape(obj/item/stack/tape/new_tape, mob/user)
+ if(applied_tape?.amount >= MAX_TAPE_STACKS)
+ to_chat(user, span_notice("[limb] has too much tape on it already!"))
+ return TRUE
+ if(new_tape.amount < 1)
+ to_chat(user, span_notice("[new_tape] does not contain enough tape!"))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] starts applying [new_tape.name] to [victim]'s [limb]."),
+ span_notice("[user] starts applying [new_tape.name] to your [limb]."),
+ )
+ while(applied_tape?.amount < MAX_TAPE_STACKS && new_tape.use_tool(victim, user, 2 SECONDS, amount = 1, volume = 50))
+ if(!applied_tape)
+ applied_tape = new new_tape.type(null, 1)
+ else
+ applied_tape.add(1)
+ update_inefficiencies()
+ if(applied_tape.amount >= MAX_TAPE_STACKS)
+ victim.visible_message(
+ span_notice("[user] finishes applying [applied_tape.name] to [victim]'s [limb]."),
+ span_notice("[user] finishes applying [applied_tape.name] to your [limb]."),
+ )
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] applies some [applied_tape.name] to [victim]'s [limb]."),
+ span_notice("[user] applies some [applied_tape.name] to your [limb]."),
+ )
+ return TRUE
+
+/// Removes tape from the round.
+/datum/wound/blunt/buckling/proc/remove_tape(obj/item/tool, mob/user)
+ victim.visible_message(
+ span_notice("[user] tries to remove the [applied_tape] from [victim]'s [limb.name]."),
+ span_danger("[user] tries to remove the [applied_tape] from your [limb.name]!"),
+ )
+ if(!tool.use_tool(victim, user, 3 SECONDS, volume = 50))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] removes the [applied_tape.name] from [victim]'s [limb.name]."),
+ span_danger("[user] removes the [applied_tape.name] from your [limb]."),
+ )
+ QDEL_NULL(applied_tape)
+ return TRUE
+
+/// Pries moderately buckled limbs back into shape
+/datum/wound/blunt/buckling/proc/pry_chassis(obj/item/tool, mob/user)
+ victim.visible_message(
+ span_notice("[user] starts prying the plating on [victim]'s [limb.name] back into place."),
+ span_notice("[user] starts prying the plating on your [limb.name] back into place."),
+ )
+ if(!tool.use_tool(victim, user, 5 SECONDS, volume = 50))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] pries the plating on [victim]'s [limb.name] back into place."),
+ span_notice("[user] pries the plating on your [limb.name] back into place."),
+ )
+ qdel(src)
+ return TRUE
+
+/datum/wound/blunt/buckling/receive_damage(list/wounding_types, total_wound_dmg, wound_bonus, attack_direction)
+ if(!applied_tape)
+ return
+ applied_tape.use(round(total_wound_dmg / DAMAGE_PER_STACK))
+ if(QDELETED(applied_tape))
+ if(victim)
+ victim.visible_message(
+ span_warning("The [applied_tape.name] on [victim]'s [limb.name] falls apart!"),
+ span_danger("The [applied_tape.name] on your [limb.name] falls apart!")
+ )
+ applied_tape = null
+ update_inefficiencies()
+
+/datum/wound/blunt/buckling/update_inefficiencies()
+ if(applied_tape)
+ var/tape_factor = TAPE_FACTOR_CALC(applied_tape.amount, applied_tape.nonorganic_heal)
+ interaction_efficiency_penalty = src::interaction_efficiency_penalty * tape_factor
+ limp_slowdown = src::limp_slowdown * tape_factor
+ if(applied_tape.amount >= MAX_TAPE_STACKS)
+ set_disabling(FALSE)
+ else if(applied_tape.amount < CEILING(MAX_TAPE_STACKS / 2, 1))
+ set_disabling(src::disabling)
+ else
+ interaction_efficiency_penalty = src::interaction_efficiency_penalty
+ limp_slowdown = src::limp_slowdown
+ set_disabling(src::disabling)
+
+ limb.update_wounds()
+ start_limping_if_we_should()
+
+/datum/wound/blunt/buckling/modify_desc_before_span(desc, mob/user)
+ if(!applied_tape)
+ return desc
+ var/tape_msg
+ var/tape_strength = 1 - TAPE_FACTOR_CALC(applied_tape.amount, applied_tape.nonorganic_heal)
+ switch(tape_strength)
+ if(0.75 to INFINITY)
+ tape_msg = "tightly"
+ if(0.5 to 0.75)
+ tape_msg = "somewhat"
+ if(0.25 to 0.5)
+ tape_msg = "loosely"
+ else
+ tape_msg = "just barely"
+ return "[victim.p_their(TRUE)] [limb.name] is [tape_msg] held together with [applied_tape.name]"
+
+#undef TAPE_FACTOR_CALC
+
+#undef TAPE_SCALE
+#undef DAMAGE_PER_STACK
+#undef MAX_TAPE_STACKS
diff --git a/code/datums/wounds/robotic/electrical.dm b/code/datums/wounds/robotic/electrical.dm
new file mode 100644
index 00000000000..8fa71647e6e
--- /dev/null
+++ b/code/datums/wounds/robotic/electrical.dm
@@ -0,0 +1,130 @@
+// Electrical wounds are special and can be applied from any physical damage type, they get to be their own thing
+
+/datum/wound/electric
+ name = "Electrical Wound"
+ sound_effect = 'sound/effects/light_flicker.ogg'
+ wound_flags = NUMBS_BODYPART
+ bio_state_required = BIO_METAL
+
+ /// The organ currently being affected by this wound.
+ var/obj/item/organ/affected_organ
+ /// The brain trauma linked to this wound, if on the brain's body part.
+ var/datum/brain_trauma/linked_trauma
+ /// The group of brain traumas that can be inflicted.
+ var/trauma_group = BRAIN_TRAUMA_MILD
+
+/datum/wound_pregen_data/electric
+ abstract = TRUE
+ required_limb_biostate = BIO_WIRED
+
+ required_wounding_types = list(WOUND_PIERCE, WOUND_BURN)
+ mangled_wounding_types = list(WOUND_SLASH = ANATOMY_INTERIOR)
+
+ wound_series = WOUND_SERIES_WIRED_ELECTRICAL
+
+/datum/wound/electric/severe
+ name = "Damaged Electronics"
+ desc = "Patient's electronics are damaged, preventing movement and damaging internal components."
+ treat_text = "Recommend replacement of internal wiring."
+ examine_desc = "occasionally sparks"
+ occur_text = "emits a shower of sparks"
+ threshold_penalty = 20
+ severity = WOUND_SEVERITY_SEVERE
+ disabling = TRUE
+
+/datum/wound_pregen_data/electric/damaged
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/electric/severe
+ threshold_minimum = 70
+
+/datum/wound/electric/critical
+ name = "Short Circuit"
+ desc = "Patient's internal circuitry is shorted, causing significant power drain and loss of function."
+ treat_text = "Recommend replacement of internal electronics and wiring."
+ examine_desc = "is twitching and emitting electrical arcs"
+ occur_text = "arcs as its electronics short out"
+ threshold_penalty = 40
+ sound_effect = 'sound/machines/defib_zap.ogg'
+ disabling = TRUE
+ processes = TRUE
+ wound_flags = MANGLES_EXTERIOR | NUMBS_BODYPART
+ severity = WOUND_SEVERITY_CRITICAL
+ trauma_group = BRAIN_TRAUMA_SEVERE
+
+/datum/wound_pregen_data/electric/shorted
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/electric/critical
+ threshold_minimum = 110
+
+/datum/wound/electric/wound_injury(datum/wound/old_wound, attack_direction)
+ if(!affected_organ)
+ affect_organ()
+
+
+/datum/wound/electric/replace_wound(datum/wound/electric/new_wound, smited, attack_direction)
+ if(istype(new_wound, /datum/wound/electric))
+ new_wound.affected_organ = affected_organ
+ return ..()
+
+/datum/wound/electric/remove_wound(ignore_limb, replaced)
+ if(!replaced)
+ restore_organ()
+ else
+ QDEL_NULL(linked_trauma)
+ return ..()
+
+/datum/wound/electric/set_victim(new_victim)
+ if(victim)
+ UnregisterSignal(victim, list(COMSIG_CARBON_LOSE_ORGAN, COMSIG_CARBON_GAIN_ORGAN))
+ if(!new_victim)
+ restore_organ()
+ if(new_victim)
+ RegisterSignal(victim, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(on_organ_loss))
+ RegisterSignal(victim, COMSIG_CARBON_GAIN_ORGAN, PROC_REF(on_organ_gain))
+ return ..()
+
+/datum/wound/electric/proc/affect_organ()
+ if(!affected_organ)
+ var/obj/item/organ/brain/victim_brain = victim.getorganslot(ORGAN_SLOT_BRAIN)
+ if(victim_brain && limb.body_zone == victim_brain.zone && victim_brain.status == ORGAN_ROBOTIC)
+ affected_organ = victim_brain
+ else
+ affected_organ = pick(limb.get_organs(ORGAN_ROBOTIC))
+ if(!affected_organ)
+ return
+ if(affected_organ.slot == ORGAN_SLOT_BRAIN)
+ if(linked_trauma)
+ QDEL_NULL(linked_trauma)
+ to_chat(victim, span_userdanger(Gibberish("Warning: Power loss to central processing core detected!", TRUE, 40)))
+ linked_trauma = victim.gain_trauma_type(trauma_group, TRAUMA_RESILIENCE_WOUND)
+ else
+ to_chat(victim, span_userdanger("Your [affected_organ.name] suddenly shuts down as it loses power!"))
+ ADD_TRAIT(affected_organ, TRAIT_ORGAN_FAILING, POWER_LACK_TRAIT) // power is not reaching this organ
+
+/datum/wound/electric/proc/restore_organ()
+ SIGNAL_HANDLER
+ if(!affected_organ)
+ return
+ if(linked_trauma)
+ QDEL_NULL(linked_trauma)
+ else
+ REMOVE_TRAIT(affected_organ, TRAIT_ORGAN_FAILING, POWER_LACK_TRAIT)
+
+/datum/wound/electric/proc/on_organ_loss(datum/source, obj/item/organ/lost_organ)
+ SIGNAL_HANDLER
+ if(lost_organ == affected_organ)
+ restore_organ()
+ affect_organ()
+
+/datum/wound/electric/proc/on_organ_gain(datum/source, obj/item/organ/new_organ)
+ SIGNAL_HANDLER
+ if(!affected_organ && new_organ.zone == limb.body_zone)
+ affect_organ()
+
+/datum/wound/electric/handle_process(seconds_per_tick, times_fired)
+ if(!victim)
+ return
+ if(victim.mob_biotypes & MOB_ROBOTIC)
+ victim.adjust_nutrition(severity * -WOUND_ELECTRIC_POWER_DRAIN)
diff --git a/code/datums/wounds/robotic/heat_warping.dm b/code/datums/wounds/robotic/heat_warping.dm
new file mode 100644
index 00000000000..f0d716cea6d
--- /dev/null
+++ b/code/datums/wounds/robotic/heat_warping.dm
@@ -0,0 +1,180 @@
+/// The flame temperature required to re-heat the chassis.
+#define CHASSIS_MELTING_POINT 1900
+
+/datum/wound/burn/heat_warping
+ name = "Heat-Warping Wound"
+ sound_effect = 'sound/machines/clockcult/steam_whoosh.ogg'
+
+ wound_flags = PLATING_DAMAGE
+ bio_state_required = BIO_METAL
+
+ /// Whether the limb has been re-heated, allowing it to be bent back into shape
+ var/re_heated = FALSE
+
+/datum/wound_pregen_data/heat_warping
+ abstract = TRUE
+ required_limb_biostate = BIO_METAL
+
+ required_wounding_types = list(WOUND_BURN)
+
+ wound_series = WOUND_SERIES_METAL_HEAT_WARPING
+
+/datum/wound/burn/heat_warping/set_limb(obj/item/bodypart/new_value, replaced)
+ var/obj/item/bodypart/old_limb = ..()
+ if(old_limb && !replaced && !QDELETED(old_limb))
+ old_limb.heal_damage(burn = min(old_limb.max_damage, WOUND_MAX_INTEGRITY_CONSIDERED) * limb_integrity_penalty)
+ if(new_value)
+ var/limb_damage = limb.get_damage()
+ if(limb_damage < limb.wound_integrity_loss)
+ limb.set_burn_dam(CEILING(limb.burn_dam + limb.wound_integrity_loss - limb_damage, DAMAGE_PRECISION))
+ return old_limb
+
+/datum/wound/burn/heat_warping/treat(obj/item/tool, mob/user)
+ if(tool.tool_behaviour == TOOL_WELDER)
+ return heat_chassis(tool, user)
+ if(tool.tool_behaviour == TOOL_CROWBAR)
+ return bend_chassis(tool, user)
+ return ..()
+
+/datum/wound/burn/heat_warping/check_grab_treatments(obj/item/tool, mob/user)
+ if(tool.get_temperature() > CHASSIS_MELTING_POINT)
+ INVOKE_ASYNC(src, PROC_REF(heat_chassis), tool, user)
+ return TRUE
+ return FALSE
+
+/datum/wound/burn/heat_warping/get_examine_description(mob/user)
+ . = ..()
+ if(re_heated)
+ . += span_notice(" It has been re-heated and can be bent back into shape.")
+
+/datum/wound/burn/heat_warping/proc/heat_chassis(obj/item/tool, mob/user)
+ if(re_heated)
+ to_chat(user, span_warning("[victim]'s [limb.name] is already hot!"))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] begins re-heating [victim]'s [limb.name]..."),
+ span_notice("[user] begins re-heating your [limb.name]..."),
+ )
+ if(!tool.use_tool(victim, user, 5 SECONDS, volume = 50))
+ return TRUE
+ victim.visible_message(
+ span_notice("[victim]'s [limb.name] glows red-hot, ready to be reformed."),
+ span_notice("Your [limb.name] glows red-hot, ready to be reformed."),
+ )
+ re_heated = TRUE
+ addtimer(CALLBACK(src, PROC_REF(cool_down)), 1 MINUTES, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_DELETE_ME)
+ return TRUE
+
+/datum/wound/burn/heat_warping/proc/bend_chassis(obj/item/tool, mob/user)
+ if(!re_heated)
+ return FALSE
+ victim.visible_message(
+ span_notice("[user] starts to bend [victim]'s [limb.name] back into shape..."),
+ span_notice("[user] starts to bend your [limb.name] back into shape..."),
+ )
+ if(!tool.use_tool(victim, user, 4 SECONDS, volume = 50))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] starts to bend [victim]'s [limb.name] back into shape..."),
+ span_notice("[user] starts to bend your [limb.name] back into shape..."),
+ )
+ qdel(src)
+ return TRUE
+
+/datum/wound/burn/heat_warping/proc/cool_down()
+ victim.visible_message(
+ span_warning("[victim]'s [limb.name] cools back down."),
+ span_warning("Your [limb.name] cools back down."),
+ )
+ re_heated = FALSE
+
+/datum/wound/burn/heat_warping/moderate
+ name = "Surface Oxidization"
+ desc = "Patient's external plating has been oxidized by high temperature."
+ treat_text = "Recommend applying a cleaning agent to remove the oxidized layer, or burning it off with a welding tool."
+ examine_desc = "is oxidized across much of its surface"
+ occur_text = "starts to become discolored"
+ severity = WOUND_SEVERITY_MODERATE
+ treatable_tools = list(TOOL_WELDER)
+ threshold_penalty = 20
+ limb_integrity_penalty = 0.1
+
+/datum/wound_pregen_data/heat_warping/oxidation
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/burn/heat_warping/moderate
+ threshold_minimum = 30
+
+/datum/wound/burn/heat_warping/oxidation/moderate/set_victim(new_victim)
+ if(victim)
+ UnregisterSignal(victim, COMSIG_ATOM_EXPOSE_REAGENTS)
+ if(new_victim)
+ RegisterSignal(victim, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(on_expose))
+ return ..()
+
+/datum/wound/burn/heat_warping/moderate/heat_chassis(obj/item/tool, mob/user)
+ victim.visible_message(
+ span_notice("[user] starts to burn the oxidized layer off of [victim]'s [limb.name]..."),
+ span_notice("[user] starts to burn the oxidized layer off of your [limb.name]..."),
+ )
+ if(!tool.use_tool(victim, user, 4 SECONDS, volume = 50))
+ return TRUE
+ victim.visible_message(
+ span_notice("[user] burns the oxidized layer off of [victim]'s [limb.name]."),
+ span_notice("[user] burns the oxidized layer off of your [limb.name]."),
+ )
+ qdel(src)
+ return TRUE
+
+/datum/wound/burn/heat_warping/oxidation/moderate/proc/on_expose(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message)
+ SIGNAL_HANDLER
+
+ if(!(methods & (TOUCH|VAPOR|PATCH)))
+ return
+ var/total_clean_power = 0
+ for(var/datum/reagent/space_cleaner/cleaner in reagents)
+ total_clean_power += cleaner.volume * cleaner.robot_clean_power * volume_modifier
+ if (total_clean_power)
+ source.visible_message(
+ span_notice("The surface of [victim]'s [limb.name] begins to bubble."),
+ span_notice("The surface of your [limb.name] begins to bubble."),
+ )
+ playsound(victim, 'sound/effects/bubbles.ogg', 25 + total_clean_power * 2)
+ handle_regen_progress()
+
+/datum/wound/burn/heat_warping/severe
+ name = "Warped Plating"
+ desc = "Patient's external plating has been warped by thermal stress, threatening its structural integrity."
+ treat_text = "Recommend re-heating the external plating and bending it back into shape."
+ examine_desc = "is heat-warped and charred"
+ occur_text = "warps from the high temperature"
+ severity = WOUND_SEVERITY_SEVERE
+ treatable_tools = list(TOOL_WELDER, TOOL_CROWBAR)
+ threshold_penalty = 30
+ limb_integrity_penalty = 0.2
+
+/datum/wound_pregen_data/heat_warping/thermal_stress
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/burn/heat_warping/severe
+ threshold_minimum = 75
+
+/datum/wound/burn/heat_warping/critical
+ name = "Deformed Chassis"
+ desc = "Patient's chassis has been severely deformed from temperatures close to its melting point and can no longer function."
+ treat_text = "Recommend replacement of the warped external plating."
+ examine_desc = "is a deformed mass of metal and slag"
+ occur_text = "glows red-hot and begins to deform"
+ severity = WOUND_SEVERITY_CRITICAL
+ wound_flags = PLATING_DAMAGE | MANGLES_INTERIOR
+ disabling = TRUE
+ threshold_penalty = 40
+ limb_integrity_penalty = 0.3
+
+/datum/wound_pregen_data/heat_warping/deformed_slag
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/burn/heat_warping/critical
+ threshold_minimum = 130
+
+#undef CHASSIS_MELTING_POINT
diff --git a/code/datums/wounds/slash.dm b/code/datums/wounds/slash.dm
index a3003c22a6c..b982ab2adce 100644
--- a/code/datums/wounds/slash.dm
+++ b/code/datums/wounds/slash.dm
@@ -3,15 +3,26 @@
*/
/datum/wound/slash
- name = "Slashing Wound"
+ name = "Slashing (Cut) Wound"
+ sound_effect = 'sound/weapons/slice.ogg'
+
+/datum/wound_pregen_data/flesh_slash
+ abstract = TRUE
+
+ required_wounding_types = list(WOUND_SLASH)
+ required_limb_biostate = BIO_FLESH
+
+ wound_series = WOUND_SERIES_FLESH_SLASH_BLEED
+
+/datum/wound/slash/flesh
+ name = "Slashing (Cut) Flesh Wound"
sound_effect = 'sound/weapons/slice.ogg'
processes = TRUE
- wound_type = WOUND_SLASH
treatable_by = list(/obj/item/stack/medical/suture)
treatable_by_grabbed = list(/obj/item/gun/energy/laser)
- treatable_tool = TOOL_CAUTERY
+ treatable_tools = list(TOOL_CAUTERY)
base_treat_time = 3 SECONDS
- wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE)
+ wound_flags = ACCEPTS_GAUZE | CAN_BE_GRASPED
/// How much blood we start losing when this wound is first applied
var/initial_flow
@@ -24,26 +35,26 @@
/// The maximum flow we've had so far
var/highest_flow
-/datum/wound/slash/show_wound_topic(mob/user)
+/datum/wound/slash/flesh/show_wound_topic(mob/user)
return (user == victim && blood_flow)
-/datum/wound/slash/Topic(href, href_list)
+/datum/wound/slash/flesh/Topic(href, href_list)
. = ..()
if(href_list["wound_topic"])
if(!usr == victim)
return
victim.self_grasp_bleeding_limb(limb)
-/datum/wound/slash/wound_injury(datum/wound/slash/old_wound = null, attack_direction = null)
+/datum/wound/slash/flesh/wound_injury(datum/wound/slash/flesh/old_wound = null, attack_direction = null)
blood_flow = initial_flow
if(old_wound)
blood_flow = max(old_wound.blood_flow, initial_flow)
- else if(attack_direction && victim.blood_volume > BLOOD_VOLUME_OKAY)
+ else if(limb.can_bleed() && attack_direction && victim.blood_volume > BLOOD_VOLUME_OKAY)
victim.spray_blood(attack_direction, severity)
-/datum/wound/slash/get_examine_description(mob/user)
+/datum/wound/slash/flesh/get_examine_description(mob/user)
if(!limb.current_gauze)
return ..()
@@ -62,11 +73,14 @@
return "[msg.Join()]"
-/datum/wound/slash/receive_damage(wounding_type, wounding_dmg, wound_bonus)
- if(victim.stat != DEAD && wound_bonus != CANT_WOUND && wounding_type == WOUND_SLASH) // can't stab dead bodies to make it bleed faster this way
- blood_flow += 0.05 * wounding_dmg
+/datum/wound/slash/flesh/receive_damage(list/wounding_types, total_wound_dmg, wound_bonus)
+ if(!victim) // if we are dismembered, we can still take damage, its fine to check here
+ return
+
+ if(victim.stat != DEAD && wound_bonus != CANT_WOUND && wounding_types[WOUND_SLASH] < WOUND_MINIMUM_DAMAGE) // can't stab dead bodies to make it bleed faster this way
+ blood_flow += 0.05 * wounding_types[WOUND_SLASH]
-/datum/wound/slash/drag_bleed_amount()
+/datum/wound/slash/flesh/drag_bleed_amount()
// say we have 3 severe cuts with 3 blood flow each, pretty reasonable
// compare with being at 100 brute damage before, where you bled (brute/100 * 2), = 2 blood per tile
// 3 * 3 * 0.1 = 0.9 blood total, less than before! the share here is .3 blood of course.
@@ -78,15 +92,21 @@
return bleed_amt
-/datum/wound/slash/get_bleed_rate_of_change()
+/datum/wound/slash/flesh/get_bleed_rate_of_change()
+ if(!limb.can_bleed())
+ return BLOOD_FLOW_STEADY
if(HAS_TRAIT(victim, TRAIT_BLOODY_MESS))
return BLOOD_FLOW_INCREASING
if(limb.current_gauze || clot_rate > 0)
return BLOOD_FLOW_DECREASING
if(clot_rate < 0)
return BLOOD_FLOW_INCREASING
+ return BLOOD_FLOW_STEADY
+
+/datum/wound/slash/flesh/handle_process()
+ if(!victim || IS_IN_STASIS(victim))
+ return
-/datum/wound/slash/handle_process()
if(victim.stat == DEAD)
blood_flow -= max(clot_rate, WOUND_SLASH_DEAD_CLOT_MIN)
if(blood_flow < minimum_flow)
@@ -114,12 +134,12 @@
if(blood_flow < minimum_flow)
if(demotes_to)
- replace_wound(demotes_to)
+ replace_wound(new demotes_to)
else
to_chat(victim, span_green("The cut on your [limb.name] has stopped bleeding!"))
qdel(src)
-/datum/wound/slash/on_stasis()
+/datum/wound/slash/flesh/on_stasis()
if(blood_flow >= minimum_flow)
return
if(demotes_to)
@@ -129,29 +149,29 @@
/* BEWARE, THE BELOW NONSENSE IS MADNESS. bones.dm looks more like what I have in mind and is sufficiently clean, don't pay attention to this messiness */
// what do you mean dont pay attention. what??
-/datum/wound/slash/check_grab_treatments(obj/item/I, mob/user)
+/datum/wound/slash/flesh/check_grab_treatments(obj/item/I, mob/user)
if(istype(I, /obj/item/gun/energy/laser))
return TRUE
if(I.get_temperature()) // if we're using something hot but not a cautery, we need to be aggro grabbing them first, so we don't try treating someone we're eswording
return TRUE
-/datum/wound/slash/treat(obj/item/I, mob/user)
+/datum/wound/slash/flesh/treat(obj/item/I, mob/user)
if(istype(I, /obj/item/gun/energy/laser))
- las_cauterize(I, user)
+ return las_cauterize(I, user)
else if(I.tool_behaviour == TOOL_CAUTERY || I.get_temperature())
- tool_cauterize(I, user)
+ return tool_cauterize(I, user)
else if(istype(I, /obj/item/stack/medical/suture))
- suture(I, user)
+ return suture(I, user)
-/datum/wound/slash/on_xadone(power) //this is for cryo, check and maybe remove later
+/datum/wound/slash/flesh/on_xadone(power) //this is for cryo, check and maybe remove later
. = ..()
blood_flow -= 0.03 * power // i think it's like a minimum of 3 power, so .09 blood_flow reduction per tick
-/datum/wound/slash/on_synthflesh(power)
+/datum/wound/slash/flesh/on_synthflesh(power)
. = ..()
blood_flow -= 0.075 * power // 20u * 0.075 = -1.5 blood flow
-/datum/wound/slash/on_silfrine(power)
+/datum/wound/slash/flesh/on_silfrine(power)
switch(power)
if(0 to 5)
EMPTY_BLOCK_GUARD
@@ -164,7 +184,7 @@
blood_flow -= 0.05 * power
/// If someone's putting a laser gun up to our cut to cauterize it
-/datum/wound/slash/proc/las_cauterize(obj/item/gun/energy/laser/lasgun, mob/user)
+/datum/wound/slash/flesh/proc/las_cauterize(obj/item/gun/energy/laser/lasgun, mob/user)
var/self_penalty_mult = (user == victim ? 1.25 : 1)
user.visible_message(
span_warning("[user] begins aiming [lasgun] directly at [victim]'s [limb.name]..."),
@@ -172,20 +192,21 @@
)
if(!do_after(user, base_treat_time * self_penalty_mult, target=victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
var/damage = lasgun.chambered.BB.damage
lasgun.chambered.BB.wound_bonus -= 30
lasgun.chambered.BB.damage *= self_penalty_mult
if(!lasgun.process_fire(victim, victim, TRUE, null, limb.body_zone))
- return
+ return TRUE
victim.force_scream()
blood_flow -= damage / (5 * self_penalty_mult) // 20 / 5 = 4 bloodflow removed, p good
victim.visible_message(span_warning("The cuts on [victim]'s [limb.name] scar over!"))
+ return TRUE
/// If someone is using either a cautery tool or something with heat to cauterize this cut
-/datum/wound/slash/proc/tool_cauterize(obj/item/I, mob/user)
+/datum/wound/slash/flesh/proc/tool_cauterize(obj/item/I, mob/user)
var/improv_penalty_mult = (I.tool_behaviour == TOOL_CAUTERY ? 1 : 1.25) // 25% longer and less effective if you don't use a real cautery
var/self_penalty_mult = (user == victim ? 1.2 : 1)
user.visible_message(
@@ -193,7 +214,7 @@
span_warning("You begin cauterizing [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."),
)
if(!do_after(user, base_treat_time * self_penalty_mult * improv_penalty_mult, target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
playsound(user, 'sound/surgery/cautery2.ogg', 20)
user.visible_message(
@@ -206,12 +227,13 @@
blood_flow -= blood_cauterized
if(blood_flow > minimum_flow)
- try_treating(I, user)
+ return try_treating(I, user)
else if(demotes_to)
to_chat(user, span_green("You successfully lower the severity of [user == victim ? "your" : "[victim]'s"] cuts."))
+ return TRUE
/// If someone is using a suture to close this cut
-/datum/wound/slash/proc/suture(obj/item/stack/medical/suture/I, mob/user)
+/datum/wound/slash/flesh/proc/suture(obj/item/stack/medical/suture/I, mob/user)
var/self_penalty_mult = (user == victim ? 1 : 1)
user.visible_message(
span_notice("[user] begins stitching [victim]'s [limb.name] with [I]..."),
@@ -219,7 +241,7 @@
)
if(!do_after(user, base_treat_time * self_penalty_mult, target = victim, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
- return
+ return TRUE
user.visible_message(
span_green("[user] stitches up some of the bleeding on [victim]."),
span_green("You stitch up some of the bleeding on [user == victim ? "yourself" : "[victim]"]."),
@@ -230,11 +252,13 @@
I.use(1)
if(blood_flow > minimum_flow)
- try_treating(I, user)
+ return try_treating(I, user)
else if(demotes_to)
to_chat(user, span_green("You successfully lower the severity of [user == victim ? "your" : "[victim]'s"] cuts."))
+ return TRUE
+ return FALSE
-/datum/wound/slash/moderate
+/datum/wound/slash/flesh/moderate
name = "Rough Abrasion"
desc = "Patient's flesh has been badly scraped, generating moderate blood loss."
treat_text = "Application of clean bandages and sutures."
@@ -245,11 +269,16 @@
initial_flow = 1.5
minimum_flow = 0.1
clot_rate = 0.015
- threshold_minimum = 30
threshold_penalty = 10
- status_effect_type = /datum/status_effect/wound/slash/moderate
+ status_effect_type = /datum/status_effect/wound/slash/flesh/moderate
+
+/datum/wound_pregen_data/flesh_slash/abrasion
+ abstract = FALSE
-/datum/wound/slash/severe
+ wound_path_to_generate = /datum/wound/slash/flesh/moderate
+ threshold_minimum = 30
+
+/datum/wound/slash/flesh/severe
name = "Open Laceration"
desc = "Patient's flesh is ripped clean open, allowing significant blood loss."
treat_text = "Application of clean bandages and sutures or cauterization."
@@ -260,12 +289,17 @@
initial_flow = 2
minimum_flow = 1.5
clot_rate = 0.025
- threshold_minimum = 50
threshold_penalty = 20
- demotes_to = /datum/wound/slash/moderate
- status_effect_type = /datum/status_effect/wound/slash/severe
+ demotes_to = /datum/wound/slash/flesh/moderate
+ status_effect_type = /datum/status_effect/wound/slash/flesh/severe
+
+/datum/wound_pregen_data/flesh_slash/laceration
+ abstract = FALSE
-/datum/wound/slash/critical
+ wound_path_to_generate = /datum/wound/slash/flesh/severe
+ threshold_minimum = 50
+
+/datum/wound/slash/flesh/critical
name = "Weeping Avulsion"
desc = "Patient's flesh is completely torn open, along with significant loss of tissue. Extreme blood loss will lead to quick death without intervention."
treat_text = "Bandage immediately and apply pressure, then apply sutures or cauterization."
@@ -276,8 +310,18 @@
initial_flow = 3
minimum_flow = 2
clot_rate = -0.005 // critical cuts actively get worse instead of better
- threshold_minimum = 100
threshold_penalty = 50
- demotes_to = /datum/wound/slash/severe
- status_effect_type = /datum/status_effect/wound/slash/critical
- wound_flags = (FLESH_WOUND | ACCEPTS_GAUZE | MANGLES_FLESH)
+ demotes_to = /datum/wound/slash/flesh/severe
+ status_effect_type = /datum/status_effect/wound/slash/flesh/critical
+ wound_flags = ACCEPTS_GAUZE | MANGLES_EXTERIOR | CAN_BE_GRASPED
+
+/datum/wound_pregen_data/flesh_slash/avulsion
+ abstract = FALSE
+
+ wound_path_to_generate = /datum/wound/slash/flesh/critical
+ threshold_minimum = 100
+
+/datum/wound/slash/flesh/critical/receive_damage(list/wounding_types, total_wound_dmg, wound_bonus)
+ . = ..()
+ if(victim && wounding_types[WOUND_BLUNT])
+ playsound(victim, "sound/effects/wounds/crackandbleed.ogg", 100)
diff --git a/code/game/area/areas/ruins/rockplanet.dm b/code/game/area/areas/ruins/rockplanet.dm
index 071aa030bb2..332d5abfbf8 100644
--- a/code/game/area/areas/ruins/rockplanet.dm
+++ b/code/game/area/areas/ruins/rockplanet.dm
@@ -142,6 +142,22 @@
name = "Crashed Moonshiner"
icon_state = "green"
+/area/ruin/rockplanet/rust_base/drop1
+ name = "Dropship"
+ icon_state = "green"
+
+/area/ruin/rockplanet/rust_base/drop2
+ name = "Dropship"
+ icon_state = "green"
+
+/area/ruin/rockplanet/rust_base/drop3
+ name = "Dropship"
+ icon_state = "green"
+
+/area/ruin/rockplanet/rust_base/drop4
+ name = "Dropship"
+ icon_state = "green"
+
//River Valley Stash
/area/ruin/rockplanet/river_valley_stash/shuttle
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index d99f2ecb099..bdc24d3d4d8 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -506,12 +506,14 @@
* - show_message: Whether to display anything to mobs when they are exposed.
*/
/atom/proc/expose_reagents(list/reagents, datum/reagents/source, method=TOUCH, volume_modifier=1, show_message=TRUE)
- if((. = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, method, volume_modifier, show_message)) & COMPONENT_NO_EXPOSE_REAGENTS)
+ . = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, method, volume_modifier, show_message)
+ if(. & COMPONENT_NO_EXPOSE_REAGENTS)
return
for(var/reagent in reagents)
var/datum/reagent/R = reagent
. |= R.expose_atom(src, reagents[R])
+ SEND_SIGNAL(src, COMSIG_ATOM_AFTER_EXPOSE_REAGENTS, reagents, source, method, volume_modifier, show_message)
/// Are you allowed to drop this atom
/atom/proc/AllowDrop()
@@ -1737,16 +1739,22 @@
* * dealt_bare_wound_bonus- The bare_wound_bonus, if one was specified *and applied*, of the wounding attack. Not shown if armor was present
* * base_roll- Base wounding ability of an attack is a random number from 1 to (dealt_damage ** WOUND_DAMAGE_EXPONENT). This is the number that was rolled in there, before mods
*/
-/proc/log_wound(atom/victim, datum/wound/suffered_wound, dealt_damage, dealt_wound_bonus, dealt_bare_wound_bonus, base_roll)
- if(QDELETED(victim) || !suffered_wound)
+/proc/log_wound(atom/victim, obj/item/bodypart/limb, list/datum/wound/suffered_wounds, list/wounding_types, dealt_wound_bonus, dealt_bare_wound_bonus, list/base_rolls)
+ if(QDELETED(victim) || !LAZYLEN(suffered_wounds))
return
- var/message = "has suffered: [suffered_wound][suffered_wound.limb ? " to [suffered_wound.limb.name]" : null]"// maybe indicate if it's a promote/demote?
-
- if(dealt_damage)
- message += " | Damage: [dealt_damage]"
- // The base roll is useful since it can show how lucky someone got with the given attack. For example, dealing a cut
- if(base_roll)
- message += " (rolled [base_roll]/[dealt_damage ** WOUND_DAMAGE_EXPONENT])"
+ var/message = "has suffered: [english_list(suffered_wounds)][limb ? " to [limb.name]" : null]"// maybe indicate if it's a promote/demote?
+
+ if(wounding_types)
+ var/damage_text
+ for(var/wounding_type in wounding_types)
+ if(damage_text)
+ damage_text += ", "
+ var/damage_dealt = wounding_types[wounding_type]
+ damage_text = "[damage_dealt] [wounding_type]"
+ // The base roll is useful since it can show how lucky someone got with the given attack. For example, dealing a cut
+ if(base_rolls)
+ damage_text += "(rolled [base_rolls[wounding_type]]/[damage_dealt ** WOUND_DAMAGE_EXPONENT])"
+ message += " | Damage: [damage_text]"
if(dealt_wound_bonus)
message += " | WB: [dealt_wound_bonus]"
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index 32fa59ae76c..b5291587406 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -119,7 +119,7 @@
if (get_dist(src, L) > range)
continue
- if(L.flash_act(affect_silicon = 1))
+ if(L.flash_act(affect_silicon = 1) & FLASH_EFFECT)
L.Paralyze(strength)
flashed = TRUE
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index da32e0b5692..e887acbf348 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -35,11 +35,11 @@
/// Stun mode projectile type
var/stun_projectile = /obj/projectile/beam/disabler
/// Sound of stun projectile
- var/stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
+ var/stun_projectile_sound = 'sound/weapons/melee/plasmacutter/plasma_cutter.ogg'
/// Lethal mode projectile type
var/lethal_projectile = /obj/projectile/beam/laser
/// Sound of lethal projectile
- var/lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg'
+ var/lethal_projectile_sound = 'sound/weapons/melee/plasmacutter/plasma_cutter.ogg'
/// Power needed per shot
var/reqpower = 500
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 8127293fd3e..67c99bab399 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -176,7 +176,7 @@
righthand_file = GUN_RIGHTHAND_ICON
energy_drain = 30
projectile = /obj/projectile/plasma/adv/mech
- fire_sound = 'sound/weapons/plasma_cutter.ogg'
+ fire_sound = 'sound/weapons/melee/plasmacutter/plasma_cutter.ogg'
harmful = TRUE
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma/can_attach(obj/mecha/working/M)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index df106084a0c..a2270fe702e 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -700,7 +700,7 @@
if(isobj(obstacle))
var/obj/object = obstacle
obstacle.mech_melee_attack(src)
- if(!(object.resistance_flags & INDESTRUCTIBLE) && charge_toss_structures)
+ if(!(object.resistance_flags & INDESTRUCTIBLE) && charge_toss_structures && !QDELETED(object))
object.throw_at(throw_target, 4, 3)
visible_message(span_danger("[src] crashes into [obstacle]!"))
playsound(src, 'sound/effects/bang.ogg', 50, TRUE)
@@ -1355,4 +1355,5 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
/// Sets the direction of the mecha and all of its occcupents, required for FOV. Alternatively one could make a recursive contents registration and register topmost direction changes in the fov component
/obj/mecha/proc/set_dir_mecha(new_dir)
setDir(new_dir)
- occupant.setDir(new_dir)
+ if(occupant)
+ occupant.setDir(new_dir)
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index 5b13ef40eb8..34e85b9b903 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -8,7 +8,7 @@
var/buckle_prevents_pull = FALSE
//Interaction
-/atom/movable/attack_hand(mob/living/user)
+/atom/movable/attack_hand(mob/living/user, list/modifiers)
. = ..()
if(.)
return
diff --git a/code/game/objects/effects/anomalies/anomalies_bluespace.dm b/code/game/objects/effects/anomalies/anomalies_bluespace.dm
index 19d163f131e..2f68eab9d48 100644
--- a/code/game/objects/effects/anomalies/anomalies_bluespace.dm
+++ b/code/game/objects/effects/anomalies/anomalies_bluespace.dm
@@ -54,7 +54,7 @@
var/list/flashers = list()
for(var/mob/living/carbon/C in viewers(TO, null))
- if(C.flash_act())
+ if(C.flash_act() & FLASH_EFFECT)
flashers += C
var/y_distance = TO.y - FROM.y
diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm
index 82b447ab8fe..f57c0096471 100644
--- a/code/game/objects/effects/contraband.dm
+++ b/code/game/objects/effects/contraband.dm
@@ -552,6 +552,92 @@
desc = "This poster depicts a trio of PGF sailors. The elzuose's horns are sticking up through the text block. \"Get your bigass horns out of the caption!\""
icon_state = "poster-pgf_bigass-horns"
+/obj/structure/sign/poster/contraband/diet_guide
+ name = "Dietary Guide"
+ desc = "It's a food safety infographic outlining the types of food that different species can and cannot eat."
+ icon_state = "poster-diet-guide"
+ /// Static string containing the pre-generated diet guide.
+ var/static/diet_guide_text
+ /// Static list with positioning of the food icons.
+ var/static/list/icon_positions = list()
+ var/base_text = {"
+
"
var/container_contents = list() // Associative list with the format (item_name = nº of occurrences, ...)
- for(var/atom/movable/AM in container.contents - manifest_paper)
+ for(var/atom/movable/AM in container.contents)
container_contents[AM.name]++
for(var/item in container_contents)
manifest_text += "