diff --git a/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
new file mode 100644
index 000000000000..f50d69c60046
--- /dev/null
+++ b/_maps/RandomRuins/BeachRuins/beach_ancient_ruin.dmm
@@ -0,0 +1,343 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
+/area/ruin/powered)
+"d" = (
+/obj/item/reagent_containers/syringe/contraband/fentanyl,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"e" = (
+/obj/structure/flora/rock,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"h" = (
+/mob/living/simple_animal/hostile/hivebot/mechanic,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"j" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/gambling,
+/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/lootdrop/spacegym,
+/obj/effect/spawner/lootdrop/spacegym,
+/turf/open/floor/plasteel/mono,
+/area/ruin/powered)
+"k" = (
+/mob/living/simple_animal/hostile/hivebot/range,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"m" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/random_gun_protolathe_lootdrop,
+/obj/effect/spawner/lootdrop/armory_contraband/donutstation,
+/obj/effect/spawner/lootdrop/random_ammo_protolathe_lootdrop,
+/turf/open/floor/plasteel/mono,
+/area/ruin/powered)
+"n" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/donkpockets,
+/obj/effect/spawner/lootdrop/seed_vault,
+/turf/open/floor/plasteel/mono,
+/area/ruin/powered)
+"o" = (
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"p" = (
+/obj/effect/mine/shrapnel/human_only,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"v" = (
+/obj/item/reagent_containers/syringe/contraband/space_drugs,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"x" = (
+/obj/item/reagent_containers/syringe/contraband/krokodil,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"A" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/maintenance/eight,
+/turf/open/floor/plasteel/mono,
+/area/ruin/powered)
+"D" = (
+/obj/item/reagent_containers/syringe/contraband/crank,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"J" = (
+/turf/template_noop,
+/area/template_noop)
+"K" = (
+/obj/structure/closet/crate,
+/obj/item/gun/ballistic/automatic/powered/gauss,
+/turf/open/floor/plasteel/mono,
+/area/ruin/powered)
+"L" = (
+/mob/living/simple_animal/hostile/hivebot/rapid,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"N" = (
+/obj/item/reagent_containers/syringe/contraband/bath_salts,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"P" = (
+/obj/effect/mine/explosive,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"Q" = (
+/obj/effect/mine/gas/n2o,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"R" = (
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"S" = (
+/obj/structure/closet/crate,
+/obj/item/gun/energy/lasercannon,
+/turf/open/floor/plasteel/mono,
+/area/ruin/powered)
+"U" = (
+/obj/machinery/cryopod,
+/turf/open/floor/plasteel/mono/white,
+/area/ruin/powered)
+"V" = (
+/mob/living/simple_animal/hostile/hivebot/strong,
+/turf/open/floor/plasteel/dark,
+/area/ruin/powered)
+"Y" = (
+/obj/item/reagent_containers/syringe/contraband/methamphetamine,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+"Z" = (
+/obj/item/reagent_containers/syringe/contraband/morphine,
+/turf/open/floor/plasteel/mono/dark,
+/area/ruin/powered)
+
+(1,1,1) = {"
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+"}
+(2,1,1) = {"
+J
+a
+e
+p
+Q
+e
+p
+R
+e
+P
+a
+J
+"}
+(3,1,1) = {"
+a
+a
+R
+R
+R
+R
+R
+R
+Q
+e
+a
+a
+"}
+(4,1,1) = {"
+a
+R
+R
+o
+o
+o
+o
+x
+o
+R
+e
+a
+"}
+(5,1,1) = {"
+a
+p
+R
+Y
+o
+h
+o
+o
+o
+R
+p
+a
+"}
+(6,1,1) = {"
+a
+R
+R
+o
+j
+o
+D
+n
+Z
+Q
+e
+a
+"}
+(7,1,1) = {"
+a
+e
+L
+o
+U
+o
+o
+U
+o
+R
+e
+a
+"}
+(8,1,1) = {"
+a
+R
+R
+o
+S
+o
+o
+m
+o
+R
+p
+a
+"}
+(9,1,1) = {"
+a
+R
+Q
+o
+U
+o
+o
+U
+v
+R
+V
+a
+"}
+(10,1,1) = {"
+a
+p
+N
+o
+A
+o
+o
+K
+o
+R
+R
+a
+"}
+(11,1,1) = {"
+a
+R
+R
+o
+U
+o
+o
+U
+o
+R
+R
+a
+"}
+(12,1,1) = {"
+a
+e
+R
+o
+k
+d
+o
+o
+Y
+R
+e
+a
+"}
+(13,1,1) = {"
+a
+P
+e
+o
+o
+o
+o
+o
+o
+p
+R
+a
+"}
+(14,1,1) = {"
+a
+a
+p
+Q
+R
+R
+R
+R
+Q
+R
+a
+a
+"}
+(15,1,1) = {"
+J
+a
+e
+R
+p
+e
+p
+R
+e
+R
+a
+J
+"}
+(16,1,1) = {"
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+"}
diff --git a/_maps/RandomRuins/BeachRuins/beach_colony.dmm b/_maps/RandomRuins/BeachRuins/beach_colony.dmm
new file mode 100644
index 000000000000..db74651509af
--- /dev/null
+++ b/_maps/RandomRuins/BeachRuins/beach_colony.dmm
@@ -0,0 +1,1490 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ag" = (
+/obj/effect/overlay/palmtree_l,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"aW" = (
+/obj/item/instrument/guitar,
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"bt" = (
+/obj/structure/flora/ausbushes/leafybush,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"bO" = (
+/turf/closed/wall/mineral/sandstone,
+/area/ruin/unpowered)
+"cr" = (
+/obj/item/reagent_containers/food/snacks/kebab/rat/double,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"cC" = (
+/obj/structure/flora/ausbushes/brflowers,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"cS" = (
+/obj/structure/flora/ausbushes/fernybush,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"dE" = (
+/obj/item/seeds/cocoapod,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"dH" = (
+/obj/structure/fence{
+ icon_state = "corner"
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"fd" = (
+/obj/item/cultivator/rake,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"fj" = (
+/obj/item/storage/cans/sixbeer,
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"fC" = (
+/obj/structure/flora/tree/palm,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"gn" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"gv" = (
+/obj/structure/fluff/beach_umbrella/cap,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"hh" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"hQ" = (
+/obj/structure/fence{
+ dir = 5;
+ icon_state = "corner"
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"iJ" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/item/melee/roastingstick,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"kd" = (
+/obj/effect/mob_spawn/human/corpse/pirate,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"kV" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "carp"
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"lr" = (
+/obj/item/toy/beach_ball,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"lD" = (
+/obj/structure/fence,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"mt" = (
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"mI" = (
+/obj/structure/toilet{
+ dir = 4;
+ pixel_y = 3
+ },
+/obj/structure/sink/kitchen{
+ dir = 8;
+ pixel_x = 15
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"nl" = (
+/obj/item/shovel/spade,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"ns" = (
+/obj/structure/fence{
+ icon_state = "door_closed"
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"nB" = (
+/obj/structure/flora/ausbushes/ppflowers,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"on" = (
+/obj/structure/table/wood,
+/obj/item/clothing/glasses/sunglasses/garb{
+ pixel_y = -5
+ },
+/obj/item/clothing/glasses/sunglasses/big{
+ pixel_y = 9
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"pp" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"pv" = (
+/turf/open/floor/plating/beach/sand{
+ icon_state = "sand_dug"
+ },
+/area/ruin/unpowered)
+"pN" = (
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"pU" = (
+/obj/structure/fluff/fokoff_sign,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"pY" = (
+/obj/structure/bonfire/prelit,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"qq" = (
+/obj/effect/overlay/coconut,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"qG" = (
+/obj/item/clothing/suit/space/hardsuit/carp/old,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"qP" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/obj/item/storage/firstaid/o2,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"rD" = (
+/obj/structure/bed,
+/obj/item/bedsheet/dorms,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"ta" = (
+/turf/open/floor/carpet/blue,
+/area/ruin/unpowered)
+"ug" = (
+/obj/structure/closet/crate/freezer{
+ name = "Cooler"
+ },
+/obj/item/reagent_containers/food/drinks/ice,
+/obj/item/reagent_containers/food/drinks/colocup,
+/obj/item/reagent_containers/food/drinks/colocup,
+/obj/item/reagent_containers/food/drinks/beer{
+ desc = "Beer advertised to be the best in space.";
+ name = "Masterbrand Beer"
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ desc = "Beer advertised to be the best in space.";
+ name = "Masterbrand Beer"
+ },
+/obj/item/reagent_containers/food/drinks/beer{
+ desc = "Beer advertised to be the best in space.";
+ name = "Masterbrand Beer"
+ },
+/obj/item/reagent_containers/food/drinks/beer/light,
+/obj/item/reagent_containers/food/drinks/beer/light,
+/obj/item/reagent_containers/food/drinks/beer/light,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"uw" = (
+/obj/structure/flora/rock/beach,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"vG" = (
+/obj/effect/mob_spawn/human/corpse/charredskeleton,
+/turf/open/floor/carpet/purple,
+/area/ruin/unpowered)
+"wb" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/table/wood,
+/obj/item/megaphone,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"wf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/grille,
+/obj/structure/curtain,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"xK" = (
+/obj/structure/chair/plastic,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"xT" = (
+/obj/item/stack/sheet/sandblock,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Ap" = (
+/obj/structure/fluff/beach_umbrella/security,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"AV" = (
+/obj/item/storage/crayons,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"CR" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1;
+ layer = 2.9
+ },
+/obj/structure/chair/stool,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/clothing/under/shorts/red,
+/obj/item/clothing/glasses/sunglasses,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Dl" = (
+/obj/structure/mineral_door/sandstone,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Dx" = (
+/obj/item/toy/crayon/spraycan{
+ pixel_x = -5;
+ pixel_y = 6
+ },
+/obj/item/toy/crayon/spraycan{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"EB" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"EC" = (
+/obj/item/toy/beach_ball/holoball/dodgeball,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Fm" = (
+/obj/structure/catwalk/over/plated_catwalk,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"FV" = (
+/obj/effect/overlay/palmtree_r,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"FW" = (
+/mob/living/simple_animal/hostile/carp,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Gh" = (
+/obj/structure/fence{
+ dir = 9;
+ icon_state = "corner"
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Hg" = (
+/obj/machinery/hydroponics/soil,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"IV" = (
+/obj/item/stack/ore/glass/beach,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Ja" = (
+/obj/structure/flora/tree/jungle/small,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Jb" = (
+/obj/item/seeds/cocoapod/vanillapod,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"JX" = (
+/obj/structure/mineral_door/sandstone,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"KA" = (
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"KM" = (
+/turf/template_noop,
+/area/template_noop)
+"Ld" = (
+/obj/structure/fluff/beach_umbrella/science,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Li" = (
+/turf/open/water/beach/deep,
+/area/ruin/unpowered)
+"Lz" = (
+/obj/structure/fluff/beach_umbrella/engine,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"ML" = (
+/obj/item/reagent_containers/glass/bucket/wooden,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"Nl" = (
+/obj/item/toy/seashell,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Nz" = (
+/turf/open/floor/plasteel/stairs/old,
+/area/ruin/unpowered)
+"NG" = (
+/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag{
+ pixel_x = 13
+ },
+/obj/item/toy/plush/carpplushie{
+ desc = "An adorable stuffed toy that resembles a space carp with a gun.";
+ name = "glock-ness monster plushie"
+ },
+/turf/open/water/beach/deep,
+/area/ruin/unpowered)
+"NL" = (
+/obj/structure/closet/cabinet,
+/obj/item/storage/backpack/duffelbag,
+/obj/item/clothing/under/shorts/purple,
+/obj/item/clothing/shoes/cookflops{
+ desc = "A very fashionable pair of flip flops.";
+ name = "flip-flops"
+ },
+/obj/item/clothing/neck/beads,
+/obj/item/clothing/under/color/red,
+/obj/item/clothing/under/color/white,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Oa" = (
+/obj/item/melee/skateboard/pro,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Om" = (
+/obj/structure/fence{
+ dir = 10;
+ icon_state = "corner"
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Pd" = (
+/obj/item/grown/log/tree,
+/obj/item/grown/log/tree,
+/obj/item/grown/log/tree,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Px" = (
+/obj/structure/chair/plastic{
+ dir = 1
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Qf" = (
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"RK" = (
+/obj/item/toy/beach_ball/holoball/dodgeball,
+/obj/item/melee/skateboard/hoverboard,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"RM" = (
+/obj/structure/sink/puddle,
+/turf/open/floor/plating/dirt/jungle,
+/area/ruin/unpowered)
+"RV" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"SS" = (
+/turf/open/floor/carpet/red,
+/area/ruin/unpowered)
+"Te" = (
+/obj/structure/railing,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Tr" = (
+/obj/item/reagent_containers/food/drinks/colocup{
+ pixel_x = -7;
+ pixel_y = -2
+ },
+/obj/item/reagent_containers/food/drinks/colocup{
+ pixel_x = 5;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/food/drinks/bottle/rum{
+ pixel_x = 4;
+ pixel_y = -3
+ },
+/turf/open/floor/carpet/red,
+/area/ruin/unpowered)
+"TW" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"TZ" = (
+/turf/open/floor/carpet/purple,
+/area/ruin/unpowered)
+"US" = (
+/turf/open/water/beach,
+/area/ruin/unpowered)
+"Vn" = (
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Vx" = (
+/obj/structure/table/rolling,
+/obj/item/reagent_containers/food/snacks/kebab/fiesta,
+/obj/item/reagent_containers/food/snacks/kebab/fiesta{
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/snacks/kebab/fiesta{
+ pixel_y = 13
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"VG" = (
+/obj/item/reagent_containers/spray/cleaner,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"VX" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Ww" = (
+/obj/item/melee/roastingstick,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Xd" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Xe" = (
+/obj/item/storage/cans/sixbeer,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"Xh" = (
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Xo" = (
+/obj/structure/statue/sandstone/assistant,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Xr" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"Xz" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Yi" = (
+/obj/item/toy/plush/lizardplushie{
+ name = "Soaks-The-Rays"
+ },
+/turf/open/floor/carpet/orange,
+/area/ruin/unpowered)
+"Yq" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "#"
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Zz" = (
+/obj/structure/flora/ausbushes/grassybush,
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+"ZA" = (
+/obj/structure/flora/junglebush/large,
+/turf/open/floor/plating/grass/beach,
+/area/ruin/unpowered)
+"ZI" = (
+/turf/open/floor/plating/beach/sand,
+/area/ruin/unpowered)
+
+(1,1,1) = {"
+KM
+KM
+KM
+KM
+KM
+KM
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+"}
+(2,1,1) = {"
+KM
+KM
+KM
+bO
+bO
+bO
+bO
+bO
+bO
+Vn
+cC
+Vn
+Hg
+Hg
+dE
+Jb
+Hg
+Hg
+Vn
+Vn
+gn
+nB
+Vn
+Vn
+KM
+KM
+KM
+KM
+KM
+KM
+"}
+(3,1,1) = {"
+KM
+KM
+bO
+NL
+mt
+Oa
+bO
+mI
+JX
+Vn
+Vn
+Hg
+KA
+KA
+ML
+RM
+KA
+KA
+Hg
+Vn
+Vn
+Vn
+Vn
+ZA
+Vn
+Vn
+Vn
+Ja
+KM
+KM
+"}
+(4,1,1) = {"
+KM
+KM
+bO
+mt
+mt
+mt
+bO
+bO
+bO
+Vn
+Vn
+Vn
+Hg
+Hg
+KA
+fd
+Hg
+Hg
+Vn
+Vn
+Vn
+cS
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+KM
+"}
+(5,1,1) = {"
+KM
+bO
+mt
+mt
+mt
+Dl
+Vn
+Vn
+Vn
+Vn
+gn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+bt
+Vn
+gn
+Vn
+Xe
+pp
+Vn
+cr
+Vn
+KM
+"}
+(6,1,1) = {"
+KM
+bO
+rD
+on
+rD
+bO
+Vn
+cC
+Vn
+bt
+Vn
+ZI
+Xr
+ZI
+ZI
+ZI
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+Xd
+Vn
+Px
+Vn
+KM
+"}
+(7,1,1) = {"
+KM
+Vn
+bO
+wf
+bO
+Vn
+Vn
+Vn
+Vn
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Vn
+Vn
+Vn
+gn
+xK
+Te
+pY
+iJ
+Pd
+Vn
+KM
+"}
+(8,1,1) = {"
+KM
+ZA
+Vn
+Vn
+Vn
+Vn
+ZI
+Zz
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+Vn
+Vn
+Vn
+Vn
+Ww
+VX
+Vn
+Px
+Vn
+KM
+"}
+(9,1,1) = {"
+Vn
+Vn
+Vn
+Vn
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+qq
+ZI
+ZI
+ZI
+fC
+Zz
+ZI
+ZI
+ZI
+ZI
+Zz
+ZI
+Vn
+Vn
+RV
+Vn
+Vx
+Vn
+Vn
+KM
+"}
+(10,1,1) = {"
+Vn
+cS
+Vn
+ZI
+ZI
+ZI
+ZI
+ZI
+RK
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+Xr
+Vn
+Vn
+Vn
+Vn
+Vn
+gn
+Vn
+KM
+"}
+(11,1,1) = {"
+Ja
+Vn
+Vn
+ZI
+ZI
+ZI
+Zz
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Vn
+Vn
+cC
+Gh
+lD
+lD
+Om
+Vn
+"}
+(12,1,1) = {"
+Vn
+Vn
+gn
+Zz
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+uw
+US
+US
+ZI
+ZI
+Zz
+ZI
+ZI
+ZI
+Vn
+Vn
+Vn
+TW
+FW
+cS
+TW
+Vn
+"}
+(13,1,1) = {"
+Vn
+Vn
+ZI
+ZI
+ZI
+ZI
+fC
+ZI
+Ap
+ZI
+ZI
+ZI
+ZI
+US
+US
+US
+US
+ZI
+ZI
+pv
+IV
+ZI
+Vn
+Vn
+Vn
+TW
+Vn
+FW
+TW
+pU
+"}
+(14,1,1) = {"
+ZA
+Vn
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Tr
+SS
+ZI
+ZI
+US
+US
+US
+US
+US
+ZI
+ZI
+Xh
+nl
+pv
+ZI
+Vn
+Vn
+TW
+qG
+Vn
+ns
+Vn
+"}
+(15,1,1) = {"
+cS
+Vn
+Zz
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+US
+US
+US
+US
+US
+ZI
+ZI
+xT
+pv
+IV
+ZI
+nB
+Vn
+TW
+Vn
+cC
+TW
+Vn
+"}
+(16,1,1) = {"
+Vn
+Vn
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ug
+Nl
+ZI
+US
+US
+US
+Li
+US
+US
+US
+ZI
+Xo
+xT
+ZI
+ZI
+Xr
+Vn
+TW
+FW
+kd
+EB
+ZA
+"}
+(17,1,1) = {"
+Vn
+Vn
+Zz
+ZI
+ZI
+fC
+ZI
+Ld
+ZI
+ZI
+ZI
+US
+US
+US
+Li
+Li
+US
+US
+ZI
+ZI
+ZI
+lr
+ZI
+ZI
+Vn
+hQ
+lD
+lD
+dH
+Vn
+"}
+(18,1,1) = {"
+Vn
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+vG
+TZ
+ZI
+ZI
+US
+US
+Li
+Li
+Li
+US
+US
+ZI
+Xr
+EC
+ZI
+ZI
+ZI
+gn
+Vn
+Vn
+Vn
+Vn
+Vn
+"}
+(19,1,1) = {"
+Xr
+ZI
+ZI
+ZI
+Zz
+ZI
+ZI
+lr
+ZI
+ZI
+ZI
+US
+US
+Li
+Li
+Li
+US
+US
+ZI
+ZI
+ZI
+ZI
+EC
+ZI
+Vn
+bt
+Vn
+Vn
+Vn
+Vn
+"}
+(20,1,1) = {"
+ZI
+ZI
+fC
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+US
+US
+Li
+NG
+Li
+US
+US
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Vn
+Vn
+Vn
+Vn
+Vn
+Vn
+"}
+(21,1,1) = {"
+ZI
+ZI
+ZI
+qq
+ZI
+ZI
+ZI
+gv
+ZI
+ZI
+ZI
+US
+US
+Li
+Li
+Li
+US
+US
+ZI
+ZI
+hh
+hh
+hh
+ZI
+Vn
+Vn
+Ja
+Vn
+cS
+Vn
+"}
+(22,1,1) = {"
+KM
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ta
+aW
+ZI
+ZI
+US
+US
+US
+Li
+Li
+US
+US
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Qf
+Qf
+Qf
+Qf
+Qf
+KM
+"}
+(23,1,1) = {"
+KM
+Zz
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+Zz
+ZI
+US
+US
+Li
+US
+US
+US
+ZI
+ZI
+EC
+ZI
+ZI
+ZI
+Qf
+AV
+pN
+Yq
+Qf
+KM
+"}
+(24,1,1) = {"
+KM
+ZI
+ZI
+ZI
+Lz
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+US
+US
+US
+US
+US
+US
+ZI
+ZI
+ZI
+Zz
+ZI
+ZI
+Qf
+pN
+pN
+pN
+Qf
+KM
+"}
+(25,1,1) = {"
+KM
+ZI
+ZI
+ag
+Yi
+ZI
+ZI
+wb
+qP
+Fm
+ZI
+ZI
+US
+US
+US
+US
+US
+uw
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Qf
+Dx
+kV
+VG
+Qf
+KM
+"}
+(26,1,1) = {"
+KM
+ZI
+ZI
+FV
+fj
+ZI
+ZI
+CR
+Xz
+Nz
+ZI
+ZI
+uw
+US
+US
+US
+ZI
+ZI
+ZI
+fC
+qq
+ZI
+ZI
+Vn
+Qf
+Qf
+Qf
+Qf
+Qf
+KM
+"}
+(27,1,1) = {"
+KM
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+ZI
+Vn
+cC
+Vn
+Vn
+Vn
+KM
+KM
+"}
+(28,1,1) = {"
+KM
+KM
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+Xr
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Vn
+Vn
+Vn
+Vn
+Vn
+ZA
+KM
+KM
+"}
+(29,1,1) = {"
+KM
+KM
+KM
+KM
+KM
+ZI
+Zz
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Zz
+ZI
+ZI
+ZI
+Xr
+Vn
+Vn
+Vn
+Vn
+Vn
+KM
+KM
+KM
+"}
+(30,1,1) = {"
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+KM
+ZI
+ZI
+ZI
+ZI
+Zz
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+ZI
+Vn
+Vn
+Vn
+gn
+KM
+KM
+KM
+KM
+KM
+KM
+"}
diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
new file mode 100644
index 000000000000..c69a522c9c4c
--- /dev/null
+++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm
@@ -0,0 +1,539 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ae" = (
+/obj/structure/window/fulltile,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"aF" = (
+/obj/structure/table/wood/fancy/purple,
+/obj/item/toy/plush/carpplushie/dehy_carp,
+/obj/item/toy/plush/carpplushie/dehy_carp,
+/obj/item/toy/plush/carpplushie/dehy_carp,
+/obj/item/grenade/spawnergrenade/spesscarp,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"bE" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/snacks/cubancarp,
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"dd" = (
+/obj/structure/chair/wood/wings{
+ dir = 5
+ },
+/obj/item/nullrod/carp,
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"ep" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"gT" = (
+/obj/structure/table/wood/fancy/purple,
+/obj/item/storage/backpack/magspear_quiver,
+/obj/item/storage/backpack/magspear_quiver,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"hd" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/snacks/burger/fish,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"hH" = (
+/obj/structure/fence/end,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"hK" = (
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered)
+"jD" = (
+/obj/machinery/door/airlock/wood/glass,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"mr" = (
+/obj/structure/chair/wood/wings{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/pirate/melee,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"nv" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"oE" = (
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"pI" = (
+/mob/living/simple_animal/hostile/cat_butcherer{
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0);
+ desc = "A profession carp butcher, gone mad due to carptoxin exposure. There seems to be something in their pocket...";
+ faction = list("hostile", "beach");
+ health = 300;
+ loot = list(/obj/effect/mob_spawn/human/corpse/cat_butcher, /obj/item/guardiancreator/carp);
+ maxHealth = 300;
+ maxbodytemp = 10000;
+ melee_damage_lower = 20;
+ melee_damage_upper = 25;
+ minbodytemp = 0;
+ name = "The Butcher";
+ ranged_cooldown_time = 15;
+ ranged_message = "fires the speargun at";
+ real_name = "The Butcher";
+ unique_name = 1
+ },
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"sA" = (
+/obj/structure/table/wood/fancy/purple,
+/obj/item/pneumatic_cannon/speargun,
+/obj/item/pneumatic_cannon/speargun,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"tV" = (
+/mob/living/simple_animal/hostile/pirate/melee,
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"tX" = (
+/obj/machinery/porta_turret/syndicate/energy{
+ active_power_usage = 0;
+ faction = list("turret", "beach");
+ idle_power_usage = 0;
+ reqpower = 0
+ },
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"ut" = (
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"uD" = (
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"uZ" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/snacks/fishandchips,
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"vc" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/squid,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"vL" = (
+/obj/structure/kitchenspike,
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"wH" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"Ch" = (
+/obj/structure/table/wood/fancy,
+/turf/open/floor/carpet/red,
+/area/ruin/powered)
+"Ds" = (
+/obj/structure/table/wood/fancy,
+/obj/item/storage/fancy/cigarettes/cigars/havana,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"DM" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/drinks/soda_cans/cola,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"DO" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/snacks/fishfry,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"Em" = (
+/obj/structure/fence,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Eq" = (
+/obj/machinery/door/airlock/wood/glass,
+/turf/open/floor/wood,
+/area/ruin/powered)
+"FG" = (
+/turf/template_noop,
+/area/template_noop)
+"FK" = (
+/obj/machinery/light/dim,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/powered)
+"Iv" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Kq" = (
+/obj/machinery/light/dim,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"KY" = (
+/obj/structure/table/wood/fancy,
+/turf/open/floor/carpet/red/airless,
+/area/ruin/powered)
+"Ly" = (
+/turf/open/floor/plasteel/stairs,
+/area/ruin/powered)
+"Mn" = (
+/obj/structure/sink,
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"Ok" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"Os" = (
+/mob/living/simple_animal/hostile/pirate/ranged,
+/turf/open/floor/carpet/red_gold,
+/area/ruin/powered)
+"OE" = (
+/obj/structure/table/rolling,
+/obj/item/kitchen/knife/butcher,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"PB" = (
+/obj/structure/kitchenspike,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"Qi" = (
+/obj/structure/closet/secure_closet/freezer/fridge,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"QO" = (
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"Ta" = (
+/obj/structure/table/rolling,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"WT" = (
+/obj/structure/fence/corner{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/powered)
+"Xp" = (
+/obj/structure/table/rolling,
+/obj/item/clothing/suit/space/hardsuit/carp,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"Xt" = (
+/obj/machinery/deepfryer,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"YJ" = (
+/obj/structure/closet/crate/freezer,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/obj/item/reagent_containers/food/snacks/carpmeat,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+"ZG" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
+/turf/open/floor/plasteel/kitchen_coldroom/freezerfloor,
+/area/ruin/powered)
+
+(1,1,1) = {"
+ep
+ep
+ep
+ep
+ep
+ep
+ep
+ep
+ep
+FG
+FG
+FG
+FG
+FG
+"}
+(2,1,1) = {"
+ae
+ut
+ut
+aF
+gT
+sA
+ut
+ut
+ep
+FG
+FG
+FG
+FG
+FG
+"}
+(3,1,1) = {"
+ae
+ut
+ut
+ut
+ut
+ut
+ut
+FK
+ep
+ep
+ep
+ep
+ep
+tX
+"}
+(4,1,1) = {"
+ae
+ut
+hK
+hK
+hK
+hK
+hK
+ut
+ep
+Ok
+ZG
+QO
+QO
+ep
+"}
+(5,1,1) = {"
+ae
+ut
+hK
+oE
+oE
+oE
+hK
+ut
+jD
+QO
+QO
+PB
+Kq
+ep
+"}
+(6,1,1) = {"
+ae
+ut
+hK
+oE
+mr
+uD
+hK
+ut
+jD
+QO
+QO
+nv
+QO
+ep
+"}
+(7,1,1) = {"
+ae
+ut
+hK
+uZ
+hd
+vc
+hK
+ut
+Mn
+QO
+QO
+vL
+QO
+ep
+"}
+(8,1,1) = {"
+ae
+ut
+Os
+wH
+KY
+Ds
+hK
+ut
+ep
+OE
+pI
+QO
+QO
+ep
+"}
+(9,1,1) = {"
+ae
+ut
+hK
+Ch
+KY
+DM
+hK
+FK
+ep
+Qi
+QO
+vL
+QO
+ep
+"}
+(10,1,1) = {"
+ae
+ut
+hK
+bE
+KY
+DO
+hK
+ut
+ep
+Ta
+QO
+QO
+QO
+ep
+"}
+(11,1,1) = {"
+ae
+ut
+hK
+oE
+tV
+oE
+hK
+ut
+ep
+Xp
+QO
+vL
+QO
+ep
+"}
+(12,1,1) = {"
+ae
+ut
+hK
+dd
+oE
+oE
+hK
+ut
+ep
+Xt
+QO
+nv
+Kq
+ep
+"}
+(13,1,1) = {"
+ae
+ut
+hK
+hK
+hK
+hK
+hK
+ut
+ep
+YJ
+QO
+QO
+QO
+ep
+"}
+(14,1,1) = {"
+ae
+ut
+ut
+ut
+ut
+ut
+ut
+FK
+ep
+ep
+ep
+ep
+ep
+tX
+"}
+(15,1,1) = {"
+ae
+ut
+ut
+ut
+ut
+ut
+ut
+ut
+ep
+FG
+FG
+FG
+FG
+FG
+"}
+(16,1,1) = {"
+ep
+ep
+ep
+ep
+ep
+Eq
+ep
+ep
+ep
+hH
+FG
+FG
+FG
+FG
+"}
+(17,1,1) = {"
+FG
+FG
+FG
+FG
+Iv
+Ly
+Ly
+Ly
+Ly
+Ly
+Ly
+FG
+FG
+FG
+"}
+(18,1,1) = {"
+FG
+FG
+FG
+FG
+WT
+Em
+Em
+Em
+Em
+hH
+FG
+FG
+FG
+FG
+"}
diff --git a/_maps/RandomRuins/BeachRuins/beach_push_it.dmm b/_maps/RandomRuins/BeachRuins/beach_push_it.dmm
new file mode 100644
index 000000000000..739e334352dc
--- /dev/null
+++ b/_maps/RandomRuins/BeachRuins/beach_push_it.dmm
@@ -0,0 +1,1081 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aD" = (
+/obj/structure/table/glass,
+/obj/item/research_notes/loot/medium,
+/obj/item/research_notes/loot/small,
+/turf/open/floor/light,
+/area/ruin/powered)
+"aN" = (
+/obj/machinery/chem_dispenser,
+/obj/machinery/light,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"aR" = (
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"dd" = (
+/obj/structure/chair/sofa/left,
+/obj/item/stack/spacecash/c1000,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"dh" = (
+/obj/machinery/light,
+/mob/living/simple_animal/hostile/russian/ranged,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"ds" = (
+/mob/living/simple_animal/hostile/russian/ranged/trooper,
+/turf/open/floor/light,
+/area/ruin/powered)
+"dG" = (
+/obj/structure/chair/sofa/corner{
+ dir = 8
+ },
+/mob/living/simple_animal/hostile/russian,
+/obj/machinery/light,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"gE" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"hh" = (
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/light,
+/area/ruin/powered)
+"hm" = (
+/obj/item/kirbyplants,
+/turf/open/floor/light,
+/area/ruin/powered)
+"ie" = (
+/obj/item/storage/pill_bottle/floorpill/full,
+/turf/open/floor/light,
+/area/ruin/powered)
+"kc" = (
+/obj/structure/chair/sofa/right,
+/obj/item/research_notes/loot/medium,
+/mob/living/simple_animal/hostile/russian/ranged,
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"kf" = (
+/obj/structure/mineral_door/wood,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"kR" = (
+/obj/machinery/door/airlock/freezer,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"mf" = (
+/mob/living/simple_animal/hostile/russian,
+/turf/open/floor/carpet/blue,
+/area/ruin/powered)
+"mK" = (
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"nh" = (
+/obj/structure/closet/secure_closet/hydroponics,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"nS" = (
+/obj/structure/chair/sofa/right{
+ dir = 8
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"pi" = (
+/obj/structure/chair/office/light,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"pG" = (
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"pY" = (
+/obj/item/clothing/head/chicken,
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"qg" = (
+/obj/machinery/hydroponics,
+/obj/item/seeds/cannabis/ultimate,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"qD" = (
+/obj/structure/chair/sofa/corner{
+ dir = 1
+ },
+/obj/machinery/light,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"rb" = (
+/obj/structure/chair/sofa/left{
+ dir = 8
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"rN" = (
+/obj/item/kirbyplants/random,
+/obj/item/stack/sheet/mineral/diamond/five,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"se" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/light,
+/area/ruin/powered)
+"sn" = (
+/turf/open/floor/carpet/blue,
+/area/ruin/powered)
+"sP" = (
+/mob/living/simple_animal/hostile/russian/ranged/officer,
+/turf/open/floor/light,
+/area/ruin/powered)
+"uC" = (
+/turf/open/floor/light,
+/area/ruin/powered)
+"ve" = (
+/obj/structure/table/glass,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 8
+ },
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"xr" = (
+/obj/structure/chair/office/light,
+/mob/living/simple_animal/hostile/russian,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"xL" = (
+/obj/structure/chair/sofa,
+/mob/living/simple_animal/hostile/russian/ranged/trooper,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"yA" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/light,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"yE" = (
+/obj/machinery/chem_master,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"yG" = (
+/obj/structure/chair/sofa/right,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"zj" = (
+/obj/item/melee/baseball_bat,
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"Cm" = (
+/obj/structure/table/glass,
+/obj/item/gun/ballistic/revolver/golden,
+/obj/item/ammo_casing/a357,
+/obj/item/ammo_casing/a357,
+/obj/item/ammo_casing/a357,
+/obj/item/ammo_casing/a357,
+/obj/item/ammo_casing/a357,
+/obj/item/ammo_casing/a357,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"Cs" = (
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/turf/open/floor/light,
+/area/ruin/powered)
+"Cz" = (
+/obj/effect/mob_spawn/human/corpse/solgov/infantry,
+/turf/open/floor/light,
+/area/ruin/powered)
+"CI" = (
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"CX" = (
+/obj/structure/table/rolling,
+/obj/item/storage/fancy/rollingpapers,
+/obj/item/clothing/mask/cigarette/rollie/cannabis,
+/obj/item/clothing/mask/cigarette/rollie/cannabis,
+/obj/item/reagent_containers/pill/stimulant,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"Df" = (
+/obj/structure/chair/sofa/left,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"Dz" = (
+/mob/living/simple_animal/hostile/bear/russian,
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"Fr" = (
+/mob/living/simple_animal/hostile/russian/ranged/officer,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"FB" = (
+/obj/structure/mineral_door/wood,
+/turf/open/floor/carpet/blue,
+/area/ruin/powered)
+"GK" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/carpet/blue,
+/area/ruin/powered)
+"Ha" = (
+/obj/structure/table/glass,
+/obj/item/storage/box/donkpockets,
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"HH" = (
+/obj/machinery/vending/hydroseeds,
+/obj/machinery/light,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"Iw" = (
+/obj/machinery/plantgenes/seedvault,
+/obj/structure/table/reinforced,
+/obj/item/research_notes/loot/big,
+/obj/machinery/light,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"JH" = (
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"JQ" = (
+/obj/machinery/chem_heater,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"Le" = (
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/light,
+/area/ruin/powered)
+"Mb" = (
+/mob/living/simple_animal/hostile/russian/ranged/trooper,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"MB" = (
+/obj/machinery/light,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"MI" = (
+/obj/structure/chair/sofa/left,
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"Nh" = (
+/obj/structure/table/glass,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"Oa" = (
+/obj/structure/chair/sofa/right,
+/obj/item/stack/spacecash/c1000,
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"Ou" = (
+/mob/living/simple_animal/hostile/russian/ranged,
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"Pq" = (
+/obj/structure/chair/sofa/right{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"Px" = (
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"QN" = (
+/obj/item/book/manual/wiki/chemistry,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"RJ" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"RS" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/powered)
+"Sa" = (
+/obj/structure/table/glass,
+/obj/item/stack/spacecash/c1000,
+/obj/item/stack/spacecash/c1000,
+/obj/item/stack/spacecash/c200,
+/obj/item/stack/medical/suture,
+/obj/item/stack/medical/gauze,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"Sb" = (
+/obj/structure/chair/sofa/right,
+/obj/item/lighter/greyscale,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"SI" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+"TH" = (
+/obj/machinery/hydroponics,
+/obj/item/seeds/cannabis,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"TO" = (
+/obj/structure/mineral_door/wood,
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"TP" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass,
+/obj/item/reagent_containers/food/drinks/drinkingglass,
+/obj/item/stack/medical/suture,
+/turf/open/floor/plasteel/vaporwave,
+/area/ruin/powered)
+"Vb" = (
+/turf/template_noop,
+/area/template_noop)
+"VO" = (
+/obj/machinery/light,
+/turf/open/floor/carpet/cyan,
+/area/ruin/powered)
+"Wx" = (
+/obj/machinery/hydroponics,
+/obj/item/seeds/cannabis/rainbow,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"WU" = (
+/obj/machinery/jukebox/disco,
+/turf/open/floor/light,
+/area/ruin/powered)
+"Xs" = (
+/obj/item/gun/ballistic/automatic/pistol/commander,
+/turf/open/floor/light,
+/area/ruin/powered)
+"XC" = (
+/obj/machinery/hydroponics,
+/obj/item/seeds/cannabis/death,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"YD" = (
+/obj/item/surgicaldrill,
+/turf/open/floor/light,
+/area/ruin/powered)
+"YV" = (
+/obj/machinery/hydroponics,
+/obj/item/seeds/cannabis/white,
+/turf/open/floor/plastic,
+/area/ruin/powered)
+"Zo" = (
+/obj/item/reagent_containers/pill/happy,
+/turf/open/floor/light,
+/area/ruin/powered)
+"ZH" = (
+/obj/structure/chair/sofa/left{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblue,
+/area/ruin/powered)
+
+(1,1,1) = {"
+RS
+RS
+RS
+RS
+RS
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(2,1,1) = {"
+RS
+Nh
+Ha
+ZH
+Pq
+RS
+RS
+RS
+RS
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(3,1,1) = {"
+RS
+JH
+JH
+CI
+dh
+RS
+Cm
+ZH
+qD
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(4,1,1) = {"
+RS
+Oa
+JH
+CI
+CI
+RS
+CI
+Px
+mK
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(5,1,1) = {"
+RS
+MI
+JH
+CI
+CI
+kf
+CI
+Dz
+CI
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(6,1,1) = {"
+RS
+JH
+JH
+CI
+MB
+RS
+rN
+Px
+MB
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(7,1,1) = {"
+RS
+RS
+RS
+kf
+RS
+RS
+RS
+TO
+RS
+RS
+RS
+RS
+RS
+RS
+RS
+RS
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(8,1,1) = {"
+Vb
+RS
+Px
+Px
+Px
+RS
+CI
+Px
+CI
+CI
+CI
+CI
+MB
+RS
+CI
+CI
+RS
+RS
+RS
+RS
+RS
+RS
+"}
+(9,1,1) = {"
+Vb
+RS
+Px
+sn
+Px
+RJ
+CI
+Px
+Px
+Px
+Px
+Ou
+CI
+kf
+CI
+MB
+RS
+pG
+pG
+pG
+yE
+RS
+"}
+(10,1,1) = {"
+RS
+RS
+Px
+sn
+Px
+RJ
+CI
+CI
+CI
+CI
+CI
+CI
+MB
+RS
+CI
+CI
+RS
+pG
+Fr
+pi
+aN
+RS
+"}
+(11,1,1) = {"
+RS
+Px
+Px
+sn
+VO
+RS
+RS
+GK
+GK
+RS
+RS
+RS
+RS
+RS
+CI
+CI
+RS
+pG
+pG
+pG
+JQ
+RS
+"}
+(12,1,1) = {"
+RS
+Px
+sn
+mf
+Px
+RS
+se
+ds
+uC
+uC
+uC
+uC
+hh
+RS
+Sb
+CI
+RS
+pG
+QN
+pG
+pG
+RS
+"}
+(13,1,1) = {"
+RS
+zj
+sn
+sn
+Px
+RS
+se
+Zo
+uC
+sP
+uC
+uC
+Cs
+RS
+xL
+CI
+RS
+pG
+pG
+pG
+pG
+RS
+"}
+(14,1,1) = {"
+RS
+pY
+sn
+sn
+VO
+RS
+uC
+uC
+YD
+uC
+uC
+ie
+Le
+RS
+dd
+MB
+RS
+pG
+pG
+pG
+Iw
+RS
+"}
+(15,1,1) = {"
+TO
+Px
+mf
+sn
+Px
+FB
+uC
+uC
+Zo
+WU
+Xs
+uC
+aD
+RS
+CX
+CI
+kR
+pG
+pG
+xr
+gE
+RS
+"}
+(16,1,1) = {"
+RS
+Px
+sn
+sn
+VO
+RS
+uC
+uC
+uC
+Cz
+uC
+uC
+hh
+RS
+yG
+MB
+RS
+pG
+pG
+pG
+HH
+RS
+"}
+(17,1,1) = {"
+RS
+Px
+sn
+sn
+Px
+RS
+hm
+uC
+uC
+uC
+uC
+uC
+Cs
+RS
+xL
+CI
+RS
+pG
+TH
+pG
+XC
+RS
+"}
+(18,1,1) = {"
+RS
+Px
+sn
+sn
+Px
+RS
+se
+uC
+uC
+uC
+uC
+uC
+Le
+RS
+Df
+CI
+RS
+Mb
+pG
+pG
+pG
+RS
+"}
+(19,1,1) = {"
+RS
+Px
+Px
+sn
+VO
+RS
+RS
+GK
+GK
+RS
+RS
+RS
+RS
+RS
+CI
+CI
+RS
+pG
+Wx
+pG
+qg
+RS
+"}
+(20,1,1) = {"
+RS
+RS
+Px
+sn
+Px
+RJ
+CI
+CI
+CI
+CI
+CI
+CI
+MB
+RS
+CI
+CI
+RS
+pG
+pG
+pG
+yA
+RS
+"}
+(21,1,1) = {"
+Vb
+RS
+Px
+sn
+Px
+RJ
+CI
+Px
+Px
+Px
+Px
+Ou
+CI
+kf
+CI
+MB
+RS
+nh
+YV
+pG
+TH
+RS
+"}
+(22,1,1) = {"
+Vb
+RS
+Px
+Px
+Px
+RS
+CI
+Px
+CI
+CI
+CI
+CI
+MB
+RS
+CI
+CI
+RS
+RS
+RS
+RS
+RS
+RS
+"}
+(23,1,1) = {"
+RS
+RS
+RS
+kf
+RS
+RS
+RS
+TO
+RS
+RS
+RS
+RS
+RS
+RS
+RS
+RS
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(24,1,1) = {"
+RS
+JH
+JH
+CI
+MB
+RS
+SI
+Px
+MB
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(25,1,1) = {"
+RS
+kc
+JH
+CI
+CI
+kf
+CI
+Px
+CI
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(26,1,1) = {"
+RS
+MI
+JH
+CI
+CI
+RS
+CI
+Px
+aR
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(27,1,1) = {"
+RS
+JH
+JH
+CI
+MB
+RS
+Sa
+nS
+dG
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(28,1,1) = {"
+RS
+ve
+TP
+nS
+rb
+RS
+RS
+RS
+RS
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
+(29,1,1) = {"
+RS
+RS
+RS
+RS
+RS
+RS
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+Vb
+"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm b/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm
index 3bda140843c2..17a99cefee8b 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_boxsci.dmm
@@ -111,6 +111,7 @@
"iE" = (
/obj/effect/turf_decal/industrial/outline/yellow,
/obj/effect/decal/cleanable/dirt,
+/obj/item/robot_suit/prebuilt,
/turf/open/floor/plasteel,
/area/ruin/unpowered)
"jk" = (
@@ -125,6 +126,7 @@
"ks" = (
/obj/machinery/computer/rdconsole/core,
/obj/effect/decal/cleanable/dirt,
+/obj/item/research_notes/loot/big,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
"kz" = (
@@ -150,7 +152,7 @@
/area/ruin/unpowered)
"nm" = (
/obj/structure/flora/rock/pile,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"nS" = (
/obj/effect/decal/cleanable/dirt,
@@ -209,7 +211,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
"ra" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"rm" = (
/obj/structure/table,
@@ -238,7 +240,7 @@
/turf/open/floor/plasteel,
/area/ruin/unpowered)
"rW" = (
-/obj/item/organ/body_egg/alien_embryo,
+/obj/effect/mob_spawn/slime,
/turf/open/floor/engine,
/area/ruin/unpowered)
"sp" = (
@@ -381,7 +383,7 @@
/area/ruin/unpowered)
"Fk" = (
/obj/effect/mine/shrapnel,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"FH" = (
/obj/effect/turf_decal/trimline/opaque/red/filled/line{
@@ -407,9 +409,7 @@
/obj/effect/turf_decal/industrial/warning{
dir = 1
},
-/obj/structure/frame/machine{
- anchored = 1
- },
+/obj/machinery/rnd/production/protolathe/department/science,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
"HD" = (
@@ -478,6 +478,7 @@
/area/ruin/unpowered)
"My" = (
/obj/structure/table,
+/obj/item/mmi/syndie,
/turf/open/floor/plasteel,
/area/ruin/unpowered)
"MG" = (
@@ -495,7 +496,10 @@
/area/ruin/unpowered)
"NP" = (
/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"NV" = (
+/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ruin/unpowered)
"Od" = (
/obj/structure/table,
@@ -526,9 +530,7 @@
/turf/open/floor/engine,
/area/ruin/unpowered)
"ON" = (
-/obj/structure/frame/machine{
- anchored = 1
- },
+/obj/machinery/mecha_part_fabricator,
/turf/open/floor/plasteel,
/area/ruin/unpowered)
"Pn" = (
@@ -667,7 +669,7 @@
/area/ruin/unpowered)
(1,1,1) = {"
-Ts
+NV
aO
Ts
Ts
@@ -677,18 +679,18 @@ Ts
Ts
Ts
Ts
-Ts
+NV
Cq
Cq
Cq
Cq
Cq
Cq
+NV
Ts
Ts
Ts
-Ts
-Ts
+NV
Cq
"}
(2,1,1) = {"
@@ -702,16 +704,16 @@ Ts
vc
HD
Rg
-Ts
-Ts
+NV
+NV
Gk
-Ts
-Ts
-Ts
-Ts
-Ts
-MQ
+NV
+NV
+NV
+NV
+NV
MQ
+rW
MQ
Ts
ra
@@ -727,14 +729,14 @@ Ts
Od
cB
Gb
-Ts
+NV
aq
Cu
-Ts
+NV
Jg
LN
Jg
-Ts
+NV
MQ
MQ
MQ
@@ -755,12 +757,12 @@ oM
Ts
Vp
Vp
-Ts
+NV
lE
tc
yH
-Ts
-MQ
+NV
+rW
MQ
MQ
MQ
@@ -780,11 +782,11 @@ oJ
Ts
oa
lv
-Ts
+NV
UH
rB
UH
-Ts
+NV
MQ
MQ
MQ
@@ -809,7 +811,7 @@ TF
Jx
lv
Jx
-Ts
+NV
MQ
MQ
MQ
@@ -830,13 +832,13 @@ Tl
Ts
lv
Vp
-Ts
+NV
Jx
NP
nS
-Ts
-MQ
+NV
MQ
+rW
MQ
Ts
hK
@@ -855,13 +857,13 @@ Vp
Ts
lv
Vp
-Ts
+NV
fB
WJ
ha
-Ts
+NV
+MQ
MQ
-rW
MQ
Ts
ra
@@ -880,15 +882,15 @@ uD
Ts
Vp
Vp
-Ts
-Ts
-Ts
-Ts
-Ts
-Ts
+NV
+NV
+NV
+NV
+NV
+NV
DJ
Lt
-Ts
+NV
Cq
"}
(10,1,1) = {"
@@ -905,7 +907,7 @@ sO
Ts
Vp
lv
-Ts
+NV
FH
Vx
Cu
@@ -917,7 +919,7 @@ Cq
Cq
"}
(11,1,1) = {"
-Ts
+NV
Ts
fp
uQ
@@ -927,10 +929,10 @@ Jx
ET
RV
oh
-Ts
+NV
Vp
Vp
-Ts
+NV
zz
YE
tW
@@ -1018,16 +1020,16 @@ Cq
"}
(15,1,1) = {"
ra
-Ts
-Ts
-Ts
-Ts
-Ts
+NV
+NV
+NV
+NV
+NV
Ts
oY
JY
-Ts
-Ts
+NV
+NV
Cu
oa
aI
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_chaosmarine.dmm b/_maps/RandomRuins/RockRuins/rockplanet_chaosmarine.dmm
deleted file mode 100644
index 732f48b2ee49..000000000000
--- a/_maps/RandomRuins/RockRuins/rockplanet_chaosmarine.dmm
+++ /dev/null
@@ -1,2497 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aW" = (
-/obj/structure/table/wood,
-/obj/item/book/granter/crafting_recipe/boneyard_notes,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"bi" = (
-/mob/living/simple_animal/hostile/cult_demon,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"bH" = (
-/obj/effect/landmark/portal_exit{
- id = "puzzle_entrance"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"dH" = (
-/obj/effect/landmark/portal_exit{
- id = "nw"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"fn" = (
-/obj/structure/destructible/cult/pylon{
- corrupt_delay = 1e+031;
- last_corrupt = 1e+031
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"fA" = (
-/obj/structure/table/wood,
-/obj/machinery/button/door{
- color = "green";
- id = "green"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"hu" = (
-/mob/living/simple_animal/hostile/cult_demon,
-/obj/item/ammo_box/c10mm,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"li" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/hypospray/medipen/survival{
- pixel_x = 6;
- pixel_y = -1
- },
-/obj/item/reagent_containers/hypospray/medipen/salacid{
- pixel_y = 8
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"lv" = (
-/obj/machinery/door/poddoor/gates/indestructible{
- color = "red";
- id = "templar_entrance"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"lN" = (
-/obj/structure/destructible/cult/talisman,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"nl" = (
-/turf/closed/indestructible/reinforced,
-/area/ruin/space/has_grav/powered)
-"pe" = (
-/obj/structure/table/wood,
-/obj/machinery/button/door{
- color = "yellow";
- id = "yellow"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"py" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/hypospray/medipen/stimpack{
- pixel_x = -7;
- pixel_y = 3
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"qo" = (
-/obj/structure/fans/tiny/invisible,
-/obj/machinery/door/airlock/security,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/powered)
-"rc" = (
-/mob/living/simple_animal/hostile/megafauna/cult_templar,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"uf" = (
-/obj/effect/portal/permanent/one_way{
- id = "sw"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"vp" = (
-/obj/machinery/door/poddoor/shutters/indestructible/preopen{
- color = "yellow";
- id = "yellow"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"vG" = (
-/obj/effect/landmark/portal_exit{
- id = "se"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"wM" = (
-/obj/structure/chair/wood/wings{
- dir = 1;
- icon_state = "wooden_chair_wings"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"wO" = (
-/obj/effect/portal/permanent/one_way{
- color = "#FF3333";
- desc = "If you enter, it may be hard to come out...";
- id = "puzzle_entrance";
- light_color = "#FA8282";
- light_power = 3;
- light_range = 2;
- name = "dark portal"
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/powered)
-"xv" = (
-/obj/machinery/door/poddoor/shutters/indestructible{
- color = "yellow";
- id = "yellow"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"xw" = (
-/turf/closed/indestructible/fakeglass{
- color = "red"
- },
-/area/ruin/space/has_grav/powered)
-"xz" = (
-/obj/structure/destructible/cult/tome,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"xP" = (
-/obj/structure/trap/cult,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"yz" = (
-/turf/closed/indestructible/cult{
- icon_state = "cult_wall-0"
- },
-/area/ruin/space/has_grav/powered)
-"yR" = (
-/obj/structure/fans/tiny/invisible,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"zO" = (
-/mob/living/simple_animal/hostile/construct/proteon/hostile,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Bu" = (
-/obj/machinery/door/poddoor/shutters/indestructible/preopen{
- color = "blue";
- id = "blue"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Cg" = (
-/obj/effect/decal/remains/human{
- pixel_x = -6;
- pixel_y = -6
- },
-/obj/effect/decal/remains/human{
- pixel_x = -8
- },
-/obj/effect/decal/remains/human{
- pixel_x = -6;
- pixel_y = 6
- },
-/obj/effect/decal/remains/human{
- pixel_x = 6;
- pixel_y = -6
- },
-/obj/effect/decal/remains/human{
- pixel_x = 8
- },
-/obj/effect/decal/remains/human{
- pixel_x = 6;
- pixel_y = 6
- },
-/obj/structure/chair/wood/wings,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"DW" = (
-/obj/structure/destructible/cult/pylon{
- corrupt_delay = 1e+031;
- desc = "A floating crystal intended to increase the power of those who serve the Blood God.";
- last_corrupt = 1e+031
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"GH" = (
-/obj/effect/landmark/portal_exit{
- id = "sw"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"GP" = (
-/obj/effect/landmark/portal_exit{
- id = "chaos_marine_exit"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Ig" = (
-/obj/effect/landmark/portal_exit{
- id = "chaos_marine_enter"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Ir" = (
-/obj/effect/portal/permanent/one_way{
- id = "se"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"IG" = (
-/obj/structure/table/wood,
-/obj/item/borg/upgrade/modkit/cooldown,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Jb" = (
-/mob/living/simple_animal/hostile/cult_demon,
-/obj/item/ammo_box/magazine/co9mm,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"JI" = (
-/obj/machinery/door/poddoor/shutters/indestructible{
- color = "blue";
- id = "blue"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"JO" = (
-/obj/effect/portal/permanent/one_way{
- id = "ne"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Kn" = (
-/obj/machinery/door/poddoor/gates/indestructible{
- color = "red";
- id = "templar_dead"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Kq" = (
-/obj/machinery/door/poddoor/shutters/indestructible/preopen{
- color = "green";
- id = "green"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"KC" = (
-/turf/closed/indestructible/reinforced{
- base_icon_state = "rusty_reinforced_wall";
- icon = 'icons/turf/walls/rusty_reinforced_wall.dmi';
- icon_state = "rusty_reinforced_wall-0"
- },
-/area/ruin/space/has_grav/powered)
-"KT" = (
-/obj/effect/portal/permanent/one_way{
- id = "nw"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"KV" = (
-/obj/effect/landmark/portal_exit{
- id = "ne"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"La" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ruin/space/has_grav/powered)
-"Mb" = (
-/obj/structure/table/wood,
-/obj/machinery/button/door{
- color = "blue";
- id = "blue"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Mh" = (
-/obj/structure/table/wood,
-/obj/item/gun/energy/kinetic_accelerator,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"My" = (
-/obj/structure/table/wood,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"OJ" = (
-/obj/machinery/door/poddoor/shutters/indestructible{
- color = "green";
- id = "green"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"QB" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plasteel,
-/area/ruin/space/has_grav/powered)
-"Ta" = (
-/obj/structure/table/wood,
-/obj/item/storage/book/bible/syndicate,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Ub" = (
-/obj/structure/table/wood,
-/obj/machinery/button/door{
- color = "red";
- id = "templar_entrance";
- name = "OPEN THE GATES"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Vc" = (
-/obj/structure/destructible/cult/forge,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Wv" = (
-/obj/effect/portal/permanent/one_way{
- color = "#FF3333";
- desc = "Going inside might be a REALLY bad idea.";
- id = "chaos_marine_enter";
- light_color = "#FA8282";
- light_power = 3;
- light_range = 2;
- name = "dark portal"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"WA" = (
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"WW" = (
-/obj/machinery/door/airlock/cult/friendly,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"Yl" = (
-/obj/structure/fans/tiny/invisible,
-/obj/machinery/door/poddoor/multi_tile/three_tile_hor{
- color = null;
- id = "templar_dead"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"YV" = (
-/obj/machinery/door/airlock/cult/friendly{
- name = "The Lair"
- },
-/obj/machinery/door/poddoor/gates/indestructible{
- color = "red";
- id = "templar_entrance"
- },
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"ZV" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/hypospray/medipen/survival,
-/turf/open/indestructible/cult,
-/area/ruin/space/has_grav/powered)
-"ZX" = (
-/turf/template_noop,
-/area/template_noop)
-
-(1,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(2,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(3,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(4,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(5,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(6,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(7,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(8,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-JI
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-OJ
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(9,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-WA
-JI
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-OJ
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(10,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-xP
-yz
-yz
-yz
-yz
-yz
-xv
-yz
-yz
-yz
-yz
-yz
-WA
-WA
-pe
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(11,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-OJ
-WA
-WA
-fn
-yz
-fn
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-yz
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(12,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-OJ
-WA
-yz
-yz
-yz
-xw
-xw
-xw
-xw
-xw
-xw
-WA
-WA
-fn
-yz
-WA
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(13,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-yz
-yz
-yz
-hu
-JI
-Mb
-WA
-xw
-WA
-WA
-WA
-Bu
-WA
-WA
-yz
-yz
-WA
-WA
-WA
-OJ
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(14,1,1) = {"
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-fn
-WA
-WA
-WA
-WA
-WA
-yz
-Jb
-JI
-WA
-WA
-Bu
-WA
-Bu
-WA
-Bu
-Bu
-WA
-yz
-WA
-WA
-yz
-OJ
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(15,1,1) = {"
-ZX
-ZX
-KC
-KC
-yz
-yz
-Bu
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-bi
-JI
-WA
-WA
-WA
-WA
-Bu
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(16,1,1) = {"
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-Bu
-xw
-xw
-xw
-WA
-JO
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-Kn
-yz
-Kn
-yz
-Kn
-yz
-GH
-WA
-WA
-WA
-vp
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(17,1,1) = {"
-ZX
-KC
-yz
-yz
-WA
-WA
-WA
-WA
-WA
-dH
-xw
-xw
-yz
-yz
-lN
-WA
-lN
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-yz
-WA
-WA
-WA
-yz
-fn
-WA
-WA
-WA
-yz
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(18,1,1) = {"
-ZX
-KC
-yz
-fn
-WA
-fn
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-DW
-WA
-WA
-WA
-WA
-WA
-xz
-wM
-WA
-xz
-wM
-WA
-fn
-yz
-yz
-yz
-Kn
-yz
-yz
-yz
-WA
-WA
-fn
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(19,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-yz
-yz
-Ub
-IG
-yz
-Ir
-yz
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-aW
-My
-WA
-fn
-yz
-yz
-WA
-WA
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(20,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-xw
-JI
-JI
-JI
-yz
-Bu
-yz
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-xz
-wM
-WA
-xz
-wM
-WA
-WA
-WA
-Kn
-li
-xP
-WA
-WA
-WA
-yz
-WA
-WA
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(21,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-xw
-OJ
-OJ
-OJ
-yz
-Kq
-yz
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-py
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(22,1,1) = {"
-ZX
-KC
-yz
-Mb
-WA
-xw
-WA
-WA
-xP
-yz
-WA
-yz
-WA
-WA
-WA
-WA
-WA
-fn
-WA
-WA
-WA
-WA
-fn
-WA
-WA
-WA
-WA
-yz
-ZV
-My
-WA
-WA
-WA
-yz
-WA
-WA
-yz
-nl
-nl
-nl
-nl
-nl
-nl
-nl
-ZX
-"}
-(23,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-xw
-WA
-WA
-WA
-fn
-WA
-yz
-fn
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-yz
-yz
-WA
-WA
-WA
-lv
-WA
-WA
-WA
-Yl
-La
-QB
-La
-La
-La
-qo
-ZX
-"}
-(24,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-yz
-fn
-WA
-WA
-WA
-WA
-yz
-Cg
-rc
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-Ig
-Kn
-Wv
-YV
-WA
-GP
-WA
-lv
-WA
-WA
-WA
-yR
-wO
-QB
-La
-QB
-QB
-qo
-ZX
-"}
-(25,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-yz
-yz
-WA
-WA
-WA
-WA
-yz
-fn
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-yz
-yz
-WA
-WA
-WA
-lv
-WA
-WA
-WA
-yR
-La
-La
-QB
-QB
-QB
-qo
-ZX
-"}
-(26,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-WW
-xv
-WA
-WA
-xP
-WA
-yz
-WA
-WA
-WA
-WA
-WA
-fn
-WA
-WA
-WA
-WA
-fn
-WA
-WA
-WA
-WA
-yz
-My
-My
-WA
-WA
-WA
-yz
-WA
-WA
-yz
-nl
-nl
-nl
-nl
-nl
-nl
-nl
-ZX
-"}
-(27,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-WW
-xv
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-Ta
-WA
-WA
-xP
-WA
-yz
-WA
-pe
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(28,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-yz
-yz
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-xz
-wM
-WA
-xz
-wM
-WA
-WA
-WA
-Kn
-My
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(29,1,1) = {"
-ZX
-KC
-yz
-OJ
-OJ
-yz
-yz
-fn
-WA
-WA
-bH
-yz
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-My
-My
-WA
-fn
-yz
-yz
-xv
-xv
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(30,1,1) = {"
-ZX
-KC
-yz
-WA
-WA
-WA
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-DW
-WA
-WA
-WA
-WA
-WA
-xz
-wM
-WA
-xz
-wM
-WA
-fn
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-WA
-WA
-WA
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(31,1,1) = {"
-ZX
-KC
-yz
-yz
-WA
-WA
-WA
-WA
-vp
-WA
-WA
-fn
-yz
-yz
-Vc
-WA
-Vc
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-WA
-yz
-yz
-WA
-WA
-WA
-xv
-WA
-WA
-WA
-WA
-yz
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(32,1,1) = {"
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-KV
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-Kn
-yz
-Kn
-yz
-Kn
-yz
-vG
-WA
-xP
-WA
-xv
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(33,1,1) = {"
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-JI
-WA
-WA
-WA
-WA
-fn
-yz
-My
-My
-fA
-Mh
-My
-yz
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(34,1,1) = {"
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-fn
-WA
-WA
-xw
-xw
-WA
-JI
-WA
-zO
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-WA
-WA
-yz
-My
-My
-My
-My
-xv
-xv
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(35,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-xw
-xw
-yz
-WA
-WA
-WA
-WA
-WA
-JI
-WA
-WA
-WA
-WA
-WA
-yz
-WA
-WA
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(36,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-WA
-yz
-fn
-WA
-WA
-WA
-WA
-JI
-WA
-WA
-WA
-WA
-uf
-yz
-WA
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(37,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-WA
-WA
-WA
-WA
-yz
-yz
-fn
-WA
-WA
-WA
-JI
-WA
-WA
-WA
-fn
-yz
-yz
-zO
-WA
-fn
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(38,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-yz
-uf
-WA
-WA
-WA
-WA
-yz
-yz
-yz
-WW
-yz
-yz
-yz
-WW
-yz
-yz
-yz
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(39,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-yz
-yz
-yz
-yz
-WA
-WA
-WA
-WA
-OJ
-xP
-WA
-xw
-WA
-WA
-Kq
-WA
-zO
-WA
-fn
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(40,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-KC
-KC
-yz
-yz
-WA
-WA
-WA
-OJ
-WA
-WA
-xw
-WA
-WA
-Kq
-WA
-WA
-WA
-yz
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(41,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-yz
-KT
-yz
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(42,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-KC
-yz
-yz
-yz
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(43,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-KC
-KC
-KC
-KC
-KC
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(44,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
-(45,1,1) = {"
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-ZX
-"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm
index a6dc9bdc5f05..754fd1664c38 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_clock.dmm
@@ -3,173 +3,178 @@
/obj/structure/table/bronze,
/obj/item/toy/clockwork_watch,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"bw" = (
/obj/structure/girder/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"by" = (
/obj/structure/fluff/clockwork/clockgolem_remains,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"cn" = (
/obj/item/clothing/shoes/sandal/magic,
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"ct" = (
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"fy" = (
-/mob/living/carbon/human/species/golem/bronze,
+/obj/item/golem_shell/servant,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"fK" = (
/obj/machinery/computer/monitor{
dir = 4
},
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"gA" = (
/obj/machinery/computer/message_monitor{
dir = 8
},
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"hb" = (
-/obj/machinery/quantumpad,
+/mob/living/simple_animal/hostile/jungle/mook,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"hm" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"hn" = (
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"hU" = (
/obj/machinery/computer/teleporter,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"iX" = (
/obj/structure/girder/bronze,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"iY" = (
/obj/machinery/door/airlock/bronze/seethru,
/obj/structure/trap/chill,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
+"jG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/bronze,
+/area/ruin/powered)
"jK" = (
/obj/effect/decal/cleanable/robot_debris/limb,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"kd" = (
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
/obj/structure/chair/bronze{
dir = 4
},
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"ks" = (
/obj/structure/girder/bronze,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"lm" = (
/obj/structure/fluff/clockwork/alloy_shards,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"mG" = (
/obj/structure/chair/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"nM" = (
/obj/machinery/door/airlock/bronze,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"oj" = (
/obj/structure/fluff/clockwork/alloy_shards,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"oW" = (
/mob/living/simple_animal/hostile/jungle/mook,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"pi" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/trap/fire,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"pt" = (
/obj/item/gun/magic/wand/nothing,
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"pV" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"rM" = (
/obj/structure/table/bronze,
/obj/item/stack/tile/bronze/thirty,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"sS" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/trap/stun,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"tg" = (
/obj/structure/fluff/clockwork/alloy_shards,
/obj/machinery/quantumpad,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"tI" = (
/obj/effect/decal/cleanable/greenglow,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"uk" = (
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"ur" = (
/obj/machinery/quantumpad,
/obj/structure/trap/damage,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"uM" = (
/obj/item/clothing/under/color/black,
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"uS" = (
/obj/structure/fluff/clockwork/clockgolem_remains,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"wq" = (
/obj/machinery/power/smes,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"wv" = (
/obj/effect/decal/cleanable/robot_debris,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"xb" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall/mineral/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"xt" = (
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
/obj/structure/closet/crate/grave,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"xV" = (
/obj/structure/chair/bronze{
@@ -177,98 +182,103 @@
},
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"zj" = (
/obj/effect/decal/cleanable/robot_debris/old,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"zz" = (
/obj/structure/chair/bronze,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Bh" = (
/obj/machinery/door/airlock/bronze/seethru,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"BX" = (
/obj/structure/lattice,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ci" = (
/obj/structure/table/bronze,
/obj/item/clothing/suit/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"DL" = (
/obj/structure/table/bronze,
/obj/item/stack/sheet/glass/fifty,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"EB" = (
/obj/structure/closet/crate/grave,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"FE" = (
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Gk" = (
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"GD" = (
/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"GT" = (
/obj/item/toy/plush/plushvar,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"HK" = (
/obj/effect/mine/stun,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Id" = (
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/remains/human,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Iu" = (
/obj/structure/fluff/clockwork/clockgolem_remains,
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/trap/stun,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Ji" = (
/obj/item/flashlight/lantern,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Jl" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/remains/human,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
+"Ju" = (
+/obj/effect/decal/cleanable/robot_debris/old,
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/bronze,
+/area/ruin/powered)
"Nr" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"NP" = (
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Oa" = (
/obj/structure/fluff/clockwork/alloy_shards/medium_gearbit,
/obj/effect/mine/stun,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Os" = (
/obj/effect/decal/cleanable/blood/old,
/obj/structure/trap/chill,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"OB" = (
/turf/template_noop,
/area/template_noop)
@@ -277,89 +287,89 @@
/obj/item/clothing/head/bronze,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"PA" = (
/obj/structure/fluff/clockwork/blind_eye,
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Qs" = (
/turf/closed/wall/mineral/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Rt" = (
/obj/structure/chair/bronze{
dir = 4
},
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"TL" = (
/obj/structure/statue/bronze/marx,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"TV" = (
/obj/item/reagent_containers/food/drinks/trophy/bronze_cup,
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"VV" = (
/obj/structure/girder/bronze,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Wm" = (
/obj/effect/mine/stun,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Wx" = (
/obj/effect/decal/cleanable/greenglow,
/obj/effect/decal/cleanable/robot_debris/limb,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"WK" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"WT" = (
/obj/structure/table/bronze,
/obj/item/clothing/shoes/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Xi" = (
/obj/structure/table/bronze,
/obj/item/nullrod/spear,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"XY" = (
/obj/structure/window/bronze/fulltile,
/obj/structure/grille,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Ye" = (
/obj/structure/fluff/clockwork/alloy_shards,
/obj/structure/lattice,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ys" = (
/obj/machinery/door/airlock/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"YQ" = (
/obj/item/book/granter/spell/smoke,
/obj/structure/table/bronze,
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
"Zs" = (
/obj/structure/lattice,
/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"ZY" = (
/obj/structure/chair/bronze{
dir = 8
},
/turf/open/floor/bronze,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/powered)
(1,1,1) = {"
Qs
@@ -417,7 +427,7 @@ XY
gA
Ji
lm
-NP
+hb
Bh
WK
tI
@@ -567,15 +577,15 @@ OB
"}
(13,1,1) = {"
Qs
-hb
+NP
NP
jK
-WK
+jG
Bh
WK
Os
NP
-zj
+Ju
YQ
XY
EB
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm b/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm
index 2b92ab125b2d..3a0ec7b4a309 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_crash_cult.dmm
@@ -24,7 +24,7 @@
"aS" = (
/obj/structure/marker_beacon,
/obj/effect/decal/cleanable/blood/tracks,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"bl" = (
/mob/living/simple_animal/hostile/construct/proteon/hostile,
@@ -135,7 +135,7 @@
/obj/effect/decal/cleanable/blood/tracks{
dir = 4
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"eX" = (
/obj/machinery/atmospherics/components/unary/vent_pump{
@@ -246,7 +246,7 @@
/area/ruin/unpowered)
"jU" = (
/obj/structure/flora/rock/pile,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"kj" = (
/obj/structure/cable{
@@ -290,7 +290,7 @@
/obj/effect/decal/cleanable/blood/tracks{
dir = 10
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"lu" = (
/obj/effect/decal/cleanable/blood{
@@ -396,7 +396,7 @@
/obj/item/flashlight/glowstick/red{
on = 1
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"oA" = (
/obj/structure/table,
@@ -565,9 +565,6 @@
/turf/open/floor/plasteel/cult,
/area/ruin/unpowered)
"uo" = (
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
/obj/machinery/door/airlock/cult/friendly,
/turf/open/floor/plasteel,
/area/ruin/unpowered)
@@ -727,7 +724,7 @@
/obj/effect/decal/cleanable/blood/tracks{
dir = 5
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"yb" = (
/obj/machinery/hydroponics/constructable,
@@ -811,9 +808,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/floor/plasteel/cult,
/area/ruin/unpowered)
-"Bf" = (
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet/explored)
"Bz" = (
/obj/machinery/atmospherics/components/unary/vent_pump,
/obj/machinery/advanced_airlock_controller{
@@ -897,7 +891,6 @@
/area/ruin/unpowered)
"Dc" = (
/obj/machinery/door/airlock/external,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/cult,
/area/ruin/unpowered)
@@ -914,6 +907,9 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall/mineral/titanium,
/area/ruin/unpowered)
+"Es" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
"Ez" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -959,7 +955,7 @@
/obj/effect/decal/cleanable/blood/tracks{
dir = 5
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Gz" = (
/obj/effect/rune/narsie,
@@ -1218,7 +1214,7 @@
"PU" = (
/obj/item/pickaxe/rusted,
/obj/effect/gibspawner/human/bodypartless,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"QK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -1256,10 +1252,6 @@
},
/turf/open/floor/plasteel/cult,
/area/ruin/unpowered)
-"RA" = (
-/obj/structure/marker_beacon,
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet/explored)
"Sm" = (
/obj/machinery/hydroponics/constructable,
/obj/effect/turf_decal/corner/opaque/green{
@@ -1279,6 +1271,10 @@
},
/turf/open/floor/plasteel/cult,
/area/ruin/unpowered)
+"SP" = (
+/obj/structure/marker_beacon,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/overmap_encounter/planetoid/rockplanet/explored)
"Tn" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -1292,7 +1288,7 @@
/area/ruin/unpowered)
"Us" = (
/obj/structure/flora/rock,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"UA" = (
/obj/structure/sign/warning/longtermwaste{
@@ -1412,24 +1408,24 @@
/area/ruin/unpowered)
(1,1,1) = {"
-Bf
-Bf
-Bf
-RA
+Es
+Es
+Es
+SP
jU
-Bf
-Bf
+Es
+Es
Nt
Dj
Ax
UA
-Bf
+Es
Us
-Bf
-RA
-Bf
-Bf
-Bf
+Es
+SP
+Es
+Es
+Es
"}
(2,1,1) = {"
Nt
@@ -1443,7 +1439,7 @@ EQ
HE
KH
EQ
-Bf
+Es
Nt
Nt
Nt
@@ -1458,12 +1454,12 @@ dh
wH
lF
Nt
-Bf
+Es
EQ
xo
xb
EQ
-Bf
+Es
Dr
yb
rH
@@ -1478,12 +1474,12 @@ dh
ig
dh
xD
-Bf
+Es
EQ
SC
xb
EQ
-Bf
+Es
xD
OB
Hm
@@ -1498,12 +1494,12 @@ Jh
Jq
TR
vJ
-Bf
+Es
Nt
Mn
Ba
Nt
-Bf
+Es
xD
sY
VV
@@ -1578,12 +1574,12 @@ Jh
dh
Ru
Nt
-Bf
+Es
xD
IO
Jh
Nt
-Bf
+Es
Nt
wH
kr
@@ -1598,12 +1594,12 @@ KV
bl
Sq
xD
-Bf
+Es
EQ
Wm
Rq
EQ
-Bf
+Es
Nt
cZ
wn
@@ -1618,12 +1614,12 @@ xD
Nt
Nt
xD
-Bf
+Es
EQ
xI
hD
EQ
-Bf
+Es
Nt
xD
xD
@@ -1632,24 +1628,24 @@ Nt
Nt
"}
(12,1,1) = {"
-Bf
-Bf
-Bf
-RA
-Bf
+Es
+Es
+Es
+SP
+Es
ou
-Bf
+Es
xD
IO
KV
EQ
-Bf
-Bf
-Bf
-RA
-Bf
-Bf
-Bf
+Es
+Es
+Es
+SP
+Es
+Es
+Es
"}
(13,1,1) = {"
xD
@@ -1658,12 +1654,12 @@ Nt
Nt
xD
xD
-Bf
+Es
xD
zP
Ba
EQ
-Bf
+Es
Nt
Nt
Nt
@@ -1678,12 +1674,12 @@ II
mx
qS
Nt
-Bf
+Es
Nt
Wm
dh
Nt
-Bf
+Es
xD
lG
fE
@@ -1758,7 +1754,7 @@ my
Fe
cD
Nt
-Bf
+Es
Nt
ex
Nr
@@ -1778,7 +1774,7 @@ EQ
EQ
Nt
Nt
-Bf
+Es
xD
IO
Rq
@@ -1792,13 +1788,13 @@ Nt
Nt
"}
(20,1,1) = {"
-Bf
-Bf
-Bf
-Bf
-RA
-Bf
-Bf
+Es
+Es
+Es
+Es
+SP
+Es
+Es
xD
Mn
Jh
@@ -1806,18 +1802,18 @@ Nt
xY
aS
li
-Bf
-Bf
-Bf
+Es
+Es
+Es
XI
"}
(21,1,1) = {"
XI
-Bf
+Es
Us
-Bf
-Bf
-Bf
+Es
+Es
+Es
xD
xD
QK
@@ -1833,10 +1829,10 @@ XI
"}
(22,1,1) = {"
XI
-Bf
-Bf
+Es
+Es
jU
-Bf
+Es
Nt
xD
BX
@@ -1854,9 +1850,9 @@ XI
(23,1,1) = {"
XI
XI
-Bf
-RA
-Bf
+Es
+SP
+Es
as
sX
wB
@@ -1867,16 +1863,16 @@ UE
as
Fn
PU
-Bf
-RA
-Bf
+Es
+SP
+Es
"}
(24,1,1) = {"
XI
XI
-Bf
+Es
ou
-Bf
+Es
as
dj
wG
@@ -1885,18 +1881,18 @@ Rq
Ht
ct
xD
-Bf
+Es
jU
XI
XI
-Bf
+Es
"}
(25,1,1) = {"
XI
XI
XI
-Bf
-Bf
+Es
+Es
as
as
JX
@@ -1905,7 +1901,7 @@ xT
GW
xD
xD
-Bf
+Es
XI
XI
XI
@@ -1916,18 +1912,18 @@ XI
XI
XI
XI
-Bf
-Bf
+Es
+Es
as
as
as
as
xD
xD
-Bf
-Bf
-Bf
-Bf
+Es
+Es
+Es
+Es
XI
XI
"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_cult.dmm b/_maps/RandomRuins/RockRuins/rockplanet_cult.dmm
index fbc77ef709a7..ab3c35b03b08 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_cult.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_cult.dmm
@@ -70,7 +70,7 @@
/turf/open/floor/plasteel/dark,
/area/overmap_encounter/planetoid/rockplanet/explored)
"u" = (
-/turf/closed/mineral/random/asteroid/rockplanet,
+/turf/closed/mineral/gibtonite/rockplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"v" = (
/obj/structure/trap/cult,
@@ -79,7 +79,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"w" = (
/obj/structure/headpike/bone,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"y" = (
/obj/effect/decal/cleanable/plasma,
@@ -131,7 +131,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"K" = (
/obj/effect/mob_spawn/human/corpse/charredskeleton,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"N" = (
/obj/structure/bookcase/random/religion,
@@ -173,11 +173,12 @@
/obj/structure/closet/crate/necropolis,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/blood/splatter,
+/obj/item/book/granter/spell/blind,
/turf/open/floor/plasteel/dark,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Y" = (
/obj/effect/decal/cleanable/ash/large,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Z" = (
/mob/living/simple_animal/hostile/construct/proteon/hostile,
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_daniel.dmm b/_maps/RandomRuins/RockRuins/rockplanet_daniel.dmm
deleted file mode 100644
index 45b6e3aa76d7..000000000000
--- a/_maps/RandomRuins/RockRuins/rockplanet_daniel.dmm
+++ /dev/null
@@ -1,296 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"b" = (
-/obj/machinery/light_switch,
-/turf/closed/wall/mineral/wood,
-/area/ruin/unpowered)
-"d" = (
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"e" = (
-/obj/machinery/light{
- dir = 1
- },
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"f" = (
-/obj/structure/chair/comfy/teal,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"g" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"h" = (
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"i" = (
-/obj/structure/table/reinforced,
-/obj/item/kitchen/knife,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"j" = (
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/ruin/unpowered)
-"k" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/vending/boozeomat{
- req_access = null
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/ruin/unpowered)
-"l" = (
-/obj/machinery/computer/security/wooden_tv,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"m" = (
-/obj/structure/table/glass,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"n" = (
-/obj/structure/chair/comfy/teal{
- dir = 8
- },
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"o" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/food/snacks/store/cake/birthday,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"p" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/food/drinks/shaker,
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/ruin/unpowered)
-"q" = (
-/obj/structure/table/reinforced,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"r" = (
-/obj/structure/table/reinforced,
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
-/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass,
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/ruin/unpowered)
-"s" = (
-/obj/machinery/door/window{
- dir = 8
- },
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/ruin/unpowered)
-"t" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/corner/transparent/bar,
-/obj/effect/turf_decal/corner/transparent/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/ruin/unpowered)
-"u" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"v" = (
-/obj/structure/chair/office,
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"w" = (
-/obj/effect/decal/cleanable/blood,
-/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/gibs,
-/obj/effect/mob_spawn/human/corpse,
-/obj/item/gun/ballistic/automatic/pistol/m1911,
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/item/reagent_containers/food/snacks/cakeslice/birthday,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"x" = (
-/obj/structure/bed,
-/obj/item/bedsheet/red,
-/obj/item/paper/fluff/shuttles/daniel,
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"y" = (
-/obj/item/kirbyplants,
-/obj/machinery/shower{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"z" = (
-/obj/structure/table/wood,
-/obj/item/papercutter,
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"A" = (
-/obj/structure/table/wood,
-/obj/machinery/computer/bookmanagement,
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"B" = (
-/obj/machinery/light,
-/obj/structure/table/wood,
-/obj/item/paper_bin,
-/obj/item/pen,
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"C" = (
-/obj/structure/mineral_door/wood,
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-"D" = (
-/obj/structure/table/wood,
-/obj/item/toy/plush/lizardplushie{
- desc = "Oh hi Mark.";
- name = "Marcus"
- },
-/turf/open/floor/carpet,
-/area/ruin/unpowered)
-"E" = (
-/turf/closed/wall/mineral/wood,
-/area/ruin/unpowered)
-"Q" = (
-/obj/structure/fans/tiny,
-/obj/structure/mineral_door/wood,
-/turf/open/floor/wood,
-/area/ruin/unpowered)
-
-(1,1,1) = {"
-E
-Q
-E
-E
-E
-E
-E
-E
-E
-"}
-(2,1,1) = {"
-b
-d
-d
-d
-d
-u
-d
-y
-E
-"}
-(3,1,1) = {"
-E
-e
-l
-h
-h
-d
-d
-z
-E
-"}
-(4,1,1) = {"
-E
-f
-m
-m
-h
-d
-v
-A
-E
-"}
-(5,1,1) = {"
-E
-g
-n
-n
-h
-d
-d
-B
-E
-"}
-(6,1,1) = {"
-E
-h
-h
-h
-h
-d
-d
-d
-E
-"}
-(7,1,1) = {"
-E
-i
-o
-q
-s
-E
-E
-C
-E
-"}
-(8,1,1) = {"
-E
-j
-j
-j
-j
-E
-w
-h
-E
-"}
-(9,1,1) = {"
-E
-k
-p
-r
-t
-E
-x
-D
-E
-"}
-(10,1,1) = {"
-E
-E
-E
-E
-E
-E
-E
-E
-E
-"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
new file mode 100644
index 000000000000..c7da9a5dae8f
--- /dev/null
+++ b/_maps/RandomRuins/RockRuins/rockplanet_harmfactory.dmm
@@ -0,0 +1,4092 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ak" = (
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"aB" = (
+/turf/closed/mineral/random/asteroid/rockplanet,
+/area/ruin/powered)
+"aG" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/powered)
+"aT" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/powered)
+"bc" = (
+/obj/effect/decal/remains/human,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/powered)
+"bf" = (
+/turf/closed/indestructible/reinforced,
+/area/ruin/powered)
+"bh" = (
+/obj/machinery/light/dim,
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/powered)
+"br" = (
+/obj/machinery/light/dim,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"bw" = (
+/obj/structure/rack,
+/obj/item/construction/rcd/loaded,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"bz" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/sheet/mineral/gold/fifty,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"bO" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/closed/wall/r_wall,
+/area/ruin/powered)
+"bQ" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"bR" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/middle,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"cb" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"cd" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/closed/wall/r_wall/rust,
+/area/ruin/powered)
+"cg" = (
+/obj/structure/rack,
+/obj/item/stack/sheet/mineral/gold/twenty,
+/obj/item/circuitboard/machine/protolathe{
+ pixel_x = -7;
+ pixel_y = 4
+ },
+/obj/item/circuitboard/computer/research,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"ck" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/jungle/mega_arachnid{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"co" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"cq" = (
+/obj/structure/rack,
+/obj/item/melee/greykingsword,
+/obj/machinery/power/apc/auto_name/north,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"cv" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/closed/wall/r_wall,
+/area/ruin/powered)
+"cy" = (
+/obj/structure/table/wood/reinforced,
+/obj/machinery/computer/secure_data/laptop,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"cQ" = (
+/obj/machinery/computer,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"dr" = (
+/obj/structure/table/wood/reinforced,
+/obj/machinery/computer/med_data/laptop,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/newspaper{
+ pixel_x = 8;
+ pixel_y = -6
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"du" = (
+/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/closed/wall/r_wall/rust,
+/area/ruin/powered)
+"dJ" = (
+/obj/structure/rack,
+/obj/item/storage/firstaid/tactical,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"dN" = (
+/turf/open/floor/plating,
+/area/ruin/powered)
+"dO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/remains/human,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"dU" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/sheet/mineral/gold/twenty,
+/obj/item/organ/cyberimp/arm/esword,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"eh" = (
+/obj/machinery/power/smes/magical,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/space/basic,
+/area/ruin/powered)
+"ei" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"em" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/melee/classic_baton{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/shield/riot{
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/obj/item/grenade/chem_grenade/teargas{
+ pixel_x = -5;
+ pixel_y = 15
+ },
+/obj/machinery/power/apc/auto_name/north,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"eA" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"eG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"eJ" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"eK" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/paper_bin{
+ pixel_x = 6;
+ pixel_y = 7
+ },
+/obj/item/pen/fountain{
+ pixel_x = 6;
+ pixel_y = 7
+ },
+/obj/item/assembly/timer{
+ pixel_x = -7;
+ pixel_y = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"fe" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"fq" = (
+/obj/machinery/door/keycard/stockroom,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"fF" = (
+/obj/machinery/door/keycard/stockroom,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"fJ" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/closed/indestructible/reinforced,
+/area/ruin/powered)
+"fX" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"ga" = (
+/obj/structure/table/wood/reinforced,
+/obj/item/gun/ballistic/automatic/smg/c20r/toy/unrestricted/riot{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/ammo_box/foambox/riot{
+ pixel_x = -3;
+ pixel_y = -3
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"gp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"gr" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"gv" = (
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"gx" = (
+/obj/structure/filingcabinet/employment,
+/obj/structure/safe/floor,
+/obj/item/keycard/office,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"gA" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"gP" = (
+/obj/machinery/door/keycard/office,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"hf" = (
+/obj/machinery/door/keycard/office,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"hg" = (
+/obj/structure/flora/tree/cactus,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"hi" = (
+/turf/closed/wall,
+/area/ruin/powered)
+"hj" = (
+/turf/closed/wall/rust,
+/area/ruin/powered)
+"hE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/closed/wall/rust,
+/area/ruin/powered)
+"hJ" = (
+/turf/closed/wall/r_wall,
+/area/ruin/powered)
+"hQ" = (
+/obj/machinery/light,
+/obj/structure/closet/secure_closet/wall{
+ dir = 4;
+ pixel_x = -27
+ },
+/obj/item/storage/firstaid/ancient,
+/obj/item/clothing/neck/stethoscope,
+/obj/item/grenade/chem_grenade/teargas{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/grenade/chem_grenade/teargas,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"hV" = (
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"if" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"ig" = (
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"iE" = (
+/obj/machinery/light,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"iS" = (
+/turf/closed/wall/r_wall/rust,
+/area/ruin/powered)
+"je" = (
+/obj/machinery/door/keycard/entry,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"jq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/door/keycard/entry,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"jB" = (
+/obj/machinery/vending/sovietsoda,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"jL" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"jO" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/closed/wall/rust,
+/area/ruin/powered)
+"jR" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/rust,
+/area/ruin/powered)
+"ko" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/closed/wall/r_wall,
+/area/ruin/powered)
+"kx" = (
+/obj/machinery/door/airlock/highsecurity,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"ky" = (
+/obj/structure/door_assembly/door_assembly_highsecurity,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"kC" = (
+/obj/machinery/door/keycard,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"kI" = (
+/obj/machinery/door/keycard,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"kM" = (
+/obj/structure/railing/corner,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"kU" = (
+/obj/structure/railing,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"lb" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"lg" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"ln" = (
+/obj/structure/railing/corner,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"lw" = (
+/obj/structure/railing,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"lC" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"lN" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"lQ" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"mc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"mi" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"mu" = (
+/obj/structure/railing/corner,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"my" = (
+/obj/structure/railing,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"mE" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"mR" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"mS" = (
+/obj/structure/railing,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"no" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"nq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"nt" = (
+/obj/structure/railing/corner,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"ob" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"oe" = (
+/obj/structure/railing/corner,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"oh" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"oj" = (
+/obj/structure/railing/corner,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"ol" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/structure/plasticflaps/opaque,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"oo" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"ow" = (
+/obj/structure/railing,
+/obj/structure/chair/plastic,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"oG" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/structure/table/greyscale,
+/obj/item/trash/semki{
+ pixel_y = 11
+ },
+/obj/item/laser_pointer/red{
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"oI" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"oY" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"pm" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"px" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"pC" = (
+/obj/structure/railing,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"pE" = (
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"pG" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"pP" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/structure/railing/corner,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"pU" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/structure/railing,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"qb" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/table/greyscale,
+/obj/item/laser_pointer/blue{
+ pixel_x = 10;
+ pixel_y = 9
+ },
+/obj/item/megaphone,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"qm" = (
+/obj/structure/railing,
+/obj/structure/chair/plastic,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"qt" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"qv" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"qy" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"qG" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"qL" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"rh" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"rm" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"ro" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"rv" = (
+/obj/machinery/recycler/deathtrap,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"rO" = (
+/obj/machinery/conveyor/auto,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"rS" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"rW" = (
+/obj/structure/railing/corner,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"sd" = (
+/obj/structure/railing,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"st" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"sx" = (
+/obj/structure/railing/corner,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"sC" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"sH" = (
+/obj/structure/railing/corner,
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"sV" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"td" = (
+/obj/machinery/disposal/deliveryChute{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"te" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"tu" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"tw" = (
+/obj/machinery/disposal/deliveryChute{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"tC" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/structure/railing{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"tR" = (
+/turf/open/floor/engine,
+/area/ruin/powered)
+"tU" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"ug" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"uu" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"uz" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"uC" = (
+/obj/machinery/plate_press,
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"uQ" = (
+/obj/structure/plasticflaps/opaque,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"uT" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"vi" = (
+/obj/structure/sign/warning/electricshock,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/closed/wall/r_wall,
+/area/ruin/powered)
+"vs" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"vz" = (
+/obj/machinery/disposal/deliveryChute,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"vJ" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"vK" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"vN" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"vZ" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"wL" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"xc" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xg" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xq" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xs" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/sign/number/eight{
+ icon_state = "0"
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xx" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/structure/sign/number/eight{
+ icon_state = "1"
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xH" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xY" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"xZ" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"yk" = (
+/obj/structure/closet/crate,
+/obj/effect/decal/cleanable/blood,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"yr" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"yw" = (
+/obj/machinery/power/emitter/ctf{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"yy" = (
+/obj/machinery/conveyor/inverted,
+/obj/structure/grille,
+/obj/structure/cable,
+/obj/item/keycard/entry,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"yV" = (
+/obj/machinery/conveyor/inverted,
+/obj/structure/grille,
+/obj/structure/cable,
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"za" = (
+/obj/machinery/power/emitter/ctf{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"zg" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"zh" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"zy" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"zB" = (
+/obj/structure/table/greyscale{
+ pixel_y = 8
+ },
+/obj/item/storage/toolbox/emergency{
+ pixel_y = 13
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"zC" = (
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"zK" = (
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Ae" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 8
+ },
+/area/ruin/powered)
+"Ai" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ak" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"An" = (
+/obj/structure/table/greyscale,
+/obj/item/stack/license_plates/empty/fifty{
+ pixel_y = 6
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"AT" = (
+/obj/structure/table/greyscale,
+/obj/item/stack/medical/gauze/improvised{
+ pixel_x = -4;
+ pixel_y = 10
+ },
+/obj/item/storage/firstaid/brute{
+ pixel_y = 5
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"AY" = (
+/obj/structure/fence/door/opened{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Bm" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Br" = (
+/obj/machinery/conveyor/inverted,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Bz" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/effect/turf_decal/number/zero,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"BC" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"BE" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"BN" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/machinery/light/dim{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"BQ" = (
+/obj/structure/table/greyscale,
+/obj/item/keycard,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"BR" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/obj/effect/turf_decal/number/zero,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"BW" = (
+/obj/structure/fence/door/opened{
+ dir = 8
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ruin/powered)
+"Cg" = (
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"Ci" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/greyscale,
+/obj/item/storage/firstaid/regular{
+ pixel_y = 14
+ },
+/obj/item/stack/medical/gauze/improvised{
+ pixel_y = 2
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Cn" = (
+/obj/structure/sign/departments/medbay/alt,
+/turf/closed/wall/rust,
+/area/ruin/powered)
+"CK" = (
+/obj/structure/sign/poster/official/moth/hardhats,
+/turf/closed/wall,
+/area/ruin/powered)
+"CW" = (
+/obj/structure/table/greyscale,
+/obj/item/clothing/head/collectable/hardhat{
+ pixel_x = -5;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/hardhat,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"Db" = (
+/obj/structure/fluff/broken_flooring{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Dd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Dn" = (
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 8
+ },
+/area/ruin/powered)
+"Dp" = (
+/obj/structure/table/greyscale,
+/obj/item/storage/toolbox/drone{
+ pixel_x = -1;
+ pixel_y = 5
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"DE" = (
+/obj/structure/table/greyscale,
+/obj/item/stack/license_plates/empty/fifty{
+ pixel_x = -9;
+ pixel_y = 7
+ },
+/obj/item/stack/license_plates/empty/fifty,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"DI" = (
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"DO" = (
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ep" = (
+/obj/structure/railing/corner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ew" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"EB" = (
+/obj/machinery/conveyor/inverted,
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"EE" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/obj/structure/sign/number/four,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"EG" = (
+/obj/structure/table/greyscale,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"EK" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/machinery/light/dim,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Fa" = (
+/obj/machinery/conveyor/auto,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/obj/item/shard/plasma,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Fb" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/obj/structure/sign/number/five,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Fp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/old{
+ dir = 4
+ },
+/area/ruin/powered)
+"Fu" = (
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"Fw" = (
+/obj/structure/table/greyscale,
+/obj/item/melee/baton/cattleprod{
+ pixel_x = -7;
+ pixel_y = 8
+ },
+/obj/item/storage/backpack/duffelbag/med/surgery{
+ pixel_y = 9
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"FA" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light/broken{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"FC" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"FE" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/sign/number/eight{
+ icon_state = "0"
+ },
+/obj/effect/turf_decal/industrial/warning/dust,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"FK" = (
+/obj/structure/railing/corner,
+/obj/structure/sign/number/eight{
+ icon_state = "2"
+ },
+/obj/effect/turf_decal/industrial/warning/dust,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"FR" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/structure/railing,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"FU" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"FV" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ga" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Go" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Gu" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Gv" = (
+/obj/machinery/disposal/deliveryChute{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Gz" = (
+/obj/machinery/conveyor/auto,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"GB" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/light/broken{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"GE" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"GJ" = (
+/obj/machinery/plate_press,
+/obj/machinery/conveyor/auto,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"GN" = (
+/obj/structure/plasticflaps,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"GO" = (
+/obj/structure/table/greyscale,
+/obj/item/keycard/stockroom,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"GS" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"GU" = (
+/obj/effect/turf_decal/number/zero,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"GV" = (
+/turf/template_noop,
+/area/template_noop)
+"Hs" = (
+/obj/effect/turf_decal/number/three,
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"HG" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"HL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"HT" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ie" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Ii" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ik" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/machinery/light/dim,
+/obj/structure/sign/number/eight{
+ icon_state = "caution"
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Ip" = (
+/obj/effect/turf_decal/industrial/warning/dust/corner{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"It" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"IA" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/obj/item/shard,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"IF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/railing{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"IM" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"IO" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Jj" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Jr" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Jt" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/structure/plasticflaps/opaque,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Jy" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"JB" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/item/chair/plastic{
+ dir = 1;
+ pixel_y = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"JC" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/structure/table/greyscale,
+/obj/item/megaphone,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"JO" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"JV" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Kb" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Kj" = (
+/obj/structure/fence/door,
+/obj/effect/turf_decal/industrial/warning/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Kn" = (
+/obj/structure/fence/door,
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Kr" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"KC" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"KJ" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/ruin/powered)
+"KL" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"KT" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/table/greyscale,
+/obj/item/stack/spacecash/c1000{
+ pixel_y = 10
+ },
+/obj/item/toy/cards/deck/syndicate{
+ pixel_x = -5;
+ pixel_y = 2
+ },
+/obj/item/toy/cards/deck/kotahi,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Lb" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Lp" = (
+/obj/effect/turf_decal/industrial/warning/dust,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/ruin/powered)
+"Lu" = (
+/obj/structure/railing{
+ dir = 9
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"LO" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"LP" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"LQ" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"LT" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Mb" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"Me" = (
+/obj/machinery/light/dim,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Mp" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"Mr" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"MN" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Na" = (
+/obj/effect/turf_decal/industrial/warning/dust{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Nn" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"NK" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"NP" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"NR" = (
+/obj/machinery/light/dim,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"NU" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"NX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/vending/cola/sodie,
+/turf/open/floor/plasteel/patterned/brushed,
+/area/ruin/powered)
+"Oo" = (
+/obj/structure/table/greyscale,
+/obj/item/trash/cheesie{
+ pixel_y = 3
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"OA" = (
+/obj/structure/sign/poster/contraband/missing_gloves,
+/turf/closed/wall,
+/area/ruin/powered)
+"OB" = (
+/obj/structure/holosign/barrier/engineering,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Pa" = (
+/obj/structure/sign/warning/testchamber,
+/turf/closed/wall,
+/area/ruin/powered)
+"Ph" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/vending/snack/green,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Pt" = (
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"PT" = (
+/turf/open/floor/plasteel/stairs/old,
+/area/ruin/powered)
+"PU" = (
+/obj/structure/rack,
+/obj/item/trash/candy,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/under/rank/engineering/engineer/hazard,
+/obj/item/storage/toolbox/drone,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Qd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Qr" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/under/rank/engineering/engineer/hazard,
+/obj/item/storage/toolbox/electrical,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Qu" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/stairs/old,
+/area/ruin/powered)
+"QA" = (
+/obj/machinery/light/broken{
+ dir = 4
+ },
+/turf/open/floor/plasteel/stairs/old,
+/area/ruin/powered)
+"QR" = (
+/obj/structure/closet/secure/loot,
+/obj/machinery/light/broken{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/suit/toggle/hazard,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Rd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"Rp" = (
+/obj/structure/closet/secure/loot,
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/suit/toggle/hazard,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"RB" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/stairs/old,
+/area/ruin/powered)
+"RM" = (
+/obj/effect/spawner/structure/window/hollow/reinforced,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"RQ" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/under/rank/engineering/engineer/hazard,
+/obj/item/storage/toolbox/electrical,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Sh" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/trash/pistachios,
+/obj/item/clothing/suit/hazardvest,
+/obj/item/clothing/under/rank/engineering/engineer/hazard,
+/obj/item/storage/toolbox/drone,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Sk" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/powered)
+"Sm" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Sp" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"St" = (
+/obj/machinery/light/broken{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"Su" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 13
+ },
+/obj/item/newspaper{
+ pixel_x = -5
+ },
+/obj/item/reagent_containers/food/drinks/coffee{
+ pixel_x = 9;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"SH" = (
+/obj/effect/decal/remains/human,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"SJ" = (
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ pixel_y = 13
+ },
+/obj/item/newspaper{
+ pixel_y = -3
+ },
+/obj/item/newspaper{
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"SW" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"Tu" = (
+/obj/structure/holosign/barrier/engineering,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"TM" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"TU" = (
+/obj/effect/decal/remains/human,
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"Ui" = (
+/obj/machinery/door/airlock/public/glass,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"UH" = (
+/obj/structure/fence/door/opened,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"UJ" = (
+/obj/structure/fence/door,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"UL" = (
+/obj/machinery/door/airlock/public/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"UU" = (
+/obj/machinery/light/broken{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"UX" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Vr" = (
+/obj/structure/chair/plastic,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Vu" = (
+/obj/machinery/vending/sovietsoda,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Vv" = (
+/obj/machinery/vending/sustenance,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Wf" = (
+/obj/item/kirbyplants/dead{
+ desc = "It doesn't look very healthy...";
+ name = "potted plant";
+ pixel_y = 10
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Wi" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Wl" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked,
+/area/ruin/powered)
+"Wx" = (
+/obj/structure/closet/crate/bin,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"WH" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/security/wooden_tv,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"WK" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"WM" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/jungle/mook,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/powered)
+"WZ" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/security/wooden_tv,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"XO" = (
+/obj/structure/fluff/broken_flooring,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"XT" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"XX" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_y = 6
+ },
+/obj/item/pen/fourcolor{
+ pixel_y = 8
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Yb" = (
+/obj/structure/table/wood,
+/obj/item/paper/pamphlet{
+ pixel_x = 11;
+ pixel_y = -5
+ },
+/obj/item/paper/pamphlet{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/obj/item/paper/pamphlet,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"Yg" = (
+/obj/structure/table/wood,
+/obj/item/paper/pamphlet{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/drinks/waterbottle/empty{
+ pixel_x = -9;
+ pixel_y = 12
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Yl" = (
+/obj/structure/table/wood,
+/obj/item/kirbyplants{
+ pixel_y = 13
+ },
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Ys" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"YG" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/rockplanet,
+/area/ruin/powered)
+"YJ" = (
+/obj/item/chair/plastic{
+ dir = 1;
+ pixel_y = 12
+ },
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"YR" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/obj/effect/decal/remains/human,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"YU" = (
+/obj/machinery/light/broken,
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/plasteel/patterned,
+/area/ruin/powered)
+"Zc" = (
+/obj/machinery/light/dim,
+/obj/structure/table/wood,
+/obj/item/newspaper{
+ pixel_y = 5
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"Zd" = (
+/obj/machinery/door/airlock/glass_large,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"Zl" = (
+/obj/machinery/door/airlock/glass_large,
+/turf/open/floor/plating/rust,
+/area/ruin/powered)
+"ZN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+"ZX" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/powered)
+
+(1,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+hg
+ak
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(2,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+aG
+ak
+aG
+aG
+hg
+aG
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(3,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+ak
+aG
+aG
+aB
+aB
+aB
+aG
+aG
+ak
+ak
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(4,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+ak
+ak
+aG
+aB
+aB
+hj
+hj
+CK
+hi
+ak
+ak
+aG
+aG
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(5,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+aG
+aG
+aG
+aG
+aB
+aB
+aB
+hj
+zB
+CW
+hi
+ak
+aG
+aG
+aG
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(6,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+aG
+aG
+hi
+hj
+hj
+hi
+hi
+zC
+Db
+hi
+hj
+hi
+hj
+hj
+ak
+aG
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(7,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+aG
+aT
+hi
+hi
+oe
+qG
+uu
+wL
+zK
+Dd
+FA
+GE
+Ie
+IO
+hj
+hj
+aG
+aG
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(8,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+aG
+aG
+hj
+kM
+oh
+qL
+uz
+xc
+Ae
+Dn
+FC
+uz
+qL
+Jj
+LP
+hj
+aG
+aT
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(9,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+ak
+ak
+aG
+aB
+hi
+kU
+oj
+rh
+rh
+xg
+Ai
+tR
+rW
+rh
+rh
+Jr
+LQ
+hj
+hj
+aG
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(10,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+ak
+ak
+aB
+aB
+hi
+lb
+ol
+rm
+uC
+xq
+Ak
+Ai
+sd
+GJ
+ro
+Jt
+LT
+NX
+hj
+ak
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(11,1,1) = {"
+GV
+GV
+GV
+GV
+ak
+aB
+aB
+aB
+hi
+hi
+kU
+ol
+ro
+uQ
+xs
+An
+Dp
+FE
+uQ
+ro
+Jt
+Mb
+Oo
+hi
+ak
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(12,1,1) = {"
+GV
+GV
+GV
+GV
+aB
+aB
+aB
+bf
+hi
+jB
+lg
+oo
+ro
+uQ
+xx
+AT
+DE
+FK
+uQ
+ro
+Jy
+LO
+hi
+hi
+ak
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(13,1,1) = {"
+GV
+GV
+GV
+aB
+aB
+bf
+bf
+bf
+hj
+jL
+dN
+ow
+ro
+uC
+xH
+Ai
+tR
+sd
+GJ
+ro
+JB
+Me
+hj
+aB
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(14,1,1) = {"
+GV
+GV
+GV
+aB
+aB
+bf
+eh
+fJ
+hE
+jO
+ln
+oG
+ro
+uQ
+xY
+tR
+DI
+FR
+GN
+ro
+JC
+Mp
+hj
+aB
+ak
+ak
+ak
+ak
+ak
+aG
+aG
+aG
+aG
+aG
+aG
+ak
+ak
+GV
+GV
+GV
+GV
+"}
+(15,1,1) = {"
+GV
+GV
+GV
+aB
+aB
+bf
+bf
+bf
+bf
+jR
+lw
+ol
+rv
+uQ
+hJ
+AY
+DO
+hJ
+GO
+rv
+Jt
+LT
+hi
+aB
+aB
+aG
+aG
+aG
+aG
+TU
+aG
+aG
+aT
+aG
+aG
+aG
+ak
+GV
+GV
+GV
+GV
+"}
+(16,1,1) = {"
+GV
+GV
+GV
+ak
+aB
+aB
+aB
+bf
+bf
+jR
+lC
+ol
+ro
+uQ
+xZ
+xg
+Ep
+FU
+uQ
+ro
+Jt
+LQ
+hi
+hi
+aB
+aG
+Sk
+aG
+aG
+ak
+UU
+aG
+aG
+Sk
+aG
+ak
+ak
+ak
+ak
+GV
+GV
+"}
+(17,1,1) = {"
+GV
+GV
+ak
+aG
+aG
+ak
+aB
+aB
+bf
+ko
+lN
+oI
+rO
+rO
+yk
+pG
+Ew
+yk
+te
+te
+JO
+Mr
+Dd
+Pa
+hi
+RM
+hi
+RM
+hj
+hj
+hi
+RM
+RM
+hi
+hj
+hj
+ak
+ak
+aG
+aG
+GV
+"}
+(18,1,1) = {"
+GV
+aG
+aG
+aG
+ak
+bO
+ei
+fX
+hJ
+ko
+lC
+oY
+rS
+uT
+uT
+Bm
+sC
+uT
+uT
+uT
+JV
+LQ
+Cg
+PT
+QA
+Qu
+PT
+zC
+Dd
+Ui
+UX
+gv
+Wx
+XT
+YJ
+hi
+hi
+ak
+aG
+aG
+aG
+"}
+(19,1,1) = {"
+GV
+aT
+bc
+bh
+bO
+cv
+em
+ga
+hQ
+ko
+kU
+pm
+rW
+rh
+yr
+vs
+vs
+FV
+tR
+Ii
+Kb
+Mb
+hi
+hj
+hj
+hi
+hi
+Su
+SW
+hi
+Vr
+zC
+Dd
+Dd
+zC
+Dd
+Zd
+vZ
+ak
+ak
+aG
+"}
+(20,1,1) = {"
+GV
+bc
+aG
+aG
+bQ
+cy
+eA
+gp
+hV
+ko
+lQ
+oo
+sd
+uQ
+yw
+yw
+uQ
+Ga
+GS
+Ik
+hj
+hj
+OA
+PU
+QR
+RQ
+hi
+hj
+hi
+hi
+Vu
+zC
+WH
+XX
+zC
+Dd
+dN
+qG
+ak
+aG
+aG
+"}
+(21,1,1) = {"
+GV
+ak
+ak
+ak
+bR
+cQ
+eG
+gr
+if
+kx
+mc
+px
+st
+vi
+yy
+Br
+EB
+Br
+GU
+tR
+Kj
+MN
+Dd
+gv
+zK
+Dd
+Sm
+Dd
+Tu
+UH
+zC
+dN
+WK
+Yb
+Db
+YU
+hi
+hg
+ak
+aG
+aG
+"}
+(22,1,1) = {"
+GV
+ak
+ak
+ak
+bR
+cQ
+eJ
+eG
+eA
+ky
+mi
+pC
+sx
+vi
+yV
+Br
+Br
+Br
+Hs
+Ai
+Kn
+Na
+OB
+Qd
+Rd
+zC
+Sp
+SH
+Dd
+UJ
+zC
+gv
+WM
+Yg
+gv
+Zc
+hi
+ak
+ak
+aT
+aG
+"}
+(23,1,1) = {"
+GV
+ak
+ak
+ak
+cb
+dr
+eG
+gv
+ig
+hJ
+mu
+pE
+sd
+uQ
+za
+za
+uQ
+Go
+HG
+Ik
+hi
+hi
+Pa
+Qr
+Rp
+Sh
+hi
+hi
+hj
+hi
+Vv
+Dd
+WZ
+Yl
+dN
+zC
+Zl
+ZX
+ak
+ak
+ak
+"}
+(24,1,1) = {"
+GV
+GV
+ak
+br
+cd
+du
+eK
+gx
+iE
+hJ
+my
+pG
+sC
+uT
+uT
+rS
+uT
+Gu
+Ai
+Ip
+Kr
+Mr
+hi
+hi
+hj
+hj
+hi
+SJ
+TM
+hi
+Wf
+gv
+zC
+zC
+Dd
+zC
+ZN
+GE
+ak
+aG
+ak
+"}
+(25,1,1) = {"
+GV
+GV
+GV
+ak
+aG
+cd
+fe
+gA
+iS
+hJ
+mE
+pG
+sH
+vs
+rh
+Bz
+EE
+rh
+rh
+xg
+Ew
+LQ
+gv
+Qu
+RB
+PT
+PT
+zC
+zC
+UL
+Wi
+zC
+XO
+Ys
+YR
+hj
+hj
+ak
+ak
+ak
+ak
+"}
+(26,1,1) = {"
+GV
+GV
+ak
+ak
+aG
+aG
+aB
+aB
+aB
+hJ
+my
+pP
+sV
+vz
+zg
+BC
+BC
+te
+Gv
+It
+KC
+Nn
+zC
+Pa
+hi
+RM
+hi
+RM
+hi
+hi
+hj
+RM
+RM
+hj
+hj
+hj
+aG
+aG
+ak
+ak
+GV
+"}
+(27,1,1) = {"
+GV
+ak
+aB
+aB
+aB
+aB
+aB
+aB
+bf
+hi
+mR
+pU
+td
+vJ
+vz
+BE
+BC
+Gv
+HL
+td
+KJ
+NK
+hi
+hi
+aB
+ak
+St
+ak
+ak
+aG
+Wl
+aG
+aG
+YG
+ak
+aG
+aG
+aG
+ak
+GV
+GV
+"}
+(28,1,1) = {"
+ak
+aB
+aB
+bf
+bf
+bf
+bf
+bf
+bf
+hj
+mS
+pU
+ro
+td
+hJ
+BN
+BC
+hJ
+td
+IA
+KJ
+LT
+hi
+aB
+aB
+aG
+aG
+ak
+aG
+aG
+aG
+aG
+aG
+aG
+aG
+aG
+aG
+ak
+GV
+GV
+GV
+"}
+(29,1,1) = {"
+ak
+aB
+bf
+bf
+cg
+dJ
+bf
+bf
+bf
+hj
+no
+qb
+te
+tR
+te
+BQ
+EG
+rO
+rO
+rO
+KL
+NP
+hi
+aB
+aG
+aG
+aG
+ak
+ak
+hg
+aG
+ak
+ak
+aG
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+"}
+(30,1,1) = {"
+aB
+aB
+bf
+bw
+ck
+dN
+fq
+gP
+je
+kC
+nq
+qm
+tu
+tw
+hJ
+ro
+EK
+hJ
+tw
+BC
+KT
+NR
+hi
+aG
+aG
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(31,1,1) = {"
+aB
+aB
+bf
+bz
+co
+dO
+fF
+hf
+jq
+kI
+nt
+pE
+tw
+vK
+vz
+ro
+Fa
+Gv
+HT
+tw
+Lb
+IO
+hi
+hj
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(32,1,1) = {"
+aB
+aB
+bf
+bf
+cq
+dU
+bf
+bf
+bf
+hi
+lC
+qt
+tC
+vz
+rO
+ro
+ro
+Gz
+Gv
+IF
+JV
+NK
+Ph
+hj
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(33,1,1) = {"
+aB
+aB
+aB
+bf
+bf
+bf
+bf
+bf
+bf
+hi
+ob
+pG
+sC
+rS
+uT
+BR
+Fb
+uT
+uT
+Gu
+Lp
+Mr
+Pt
+hj
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(34,1,1) = {"
+GV
+aB
+aB
+aB
+aB
+aB
+aB
+aB
+bf
+hj
+lC
+pm
+tR
+tR
+tR
+Ai
+tR
+tR
+tR
+Ak
+Lp
+LQ
+hj
+hj
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(35,1,1) = {"
+GV
+aG
+aG
+aG
+aG
+ak
+ak
+aB
+aB
+hj
+lQ
+qv
+tU
+vN
+zh
+BW
+Fp
+Ga
+tU
+vN
+Lu
+NU
+hj
+aG
+hg
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(36,1,1) = {"
+GV
+GV
+aG
+ak
+ak
+ak
+ak
+aG
+aG
+hj
+hj
+qy
+ug
+vZ
+zy
+Cg
+zC
+GB
+ug
+IM
+LO
+hi
+hi
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(37,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+hg
+aG
+ak
+hj
+hj
+hj
+hi
+hi
+zC
+Fu
+hi
+hi
+hj
+hj
+hi
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(38,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+ak
+aB
+aB
+aB
+aB
+hi
+Ci
+Fw
+hi
+aG
+aG
+aG
+aT
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(39,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+aG
+aG
+aG
+aB
+aB
+hj
+Cn
+hi
+hi
+aG
+aG
+aG
+aG
+aG
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(40,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+aG
+ak
+ak
+aB
+aB
+aB
+ak
+aG
+aG
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(41,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+ak
+ak
+ak
+ak
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
+(42,1,1) = {"
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+ak
+hg
+ak
+ak
+ak
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+GV
+"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_heirophant.dmm b/_maps/RandomRuins/RockRuins/rockplanet_heirophant.dmm
index de039f85cd22..42b34da31d61 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_heirophant.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_heirophant.dmm
@@ -27,59 +27,57 @@
/turf/open/indestructible/hierophant/two,
/area/ruin/unpowered/hierophant)
"m" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet,
/area/overmap_encounter/planetoid/rockplanet)
-"r" = (
-/turf/open/floor/plating/rust/rockplanet,
+"s" = (
+/obj/effect/light_emitter{
+ set_cap = 3;
+ set_luminosity = 5
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin/unpowered/hierophant)
"K" = (
/obj/effect/light_emitter{
set_cap = 3;
set_luminosity = 5
},
-/turf/open/floor/plating/rust/rockplanet,
-/area/ruin/unpowered/hierophant)
-"N" = (
-/turf/closed/wall/r_wall/rust,
-/area/ruin/unpowered/hierophant)
-"X" = (
-/turf/open/floor/plating/rust,
+/turf/open/floor/plating/rust/wasteplanet,
/area/ruin/unpowered/hierophant)
"Z" = (
-/turf/closed/wall/rust,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin/unpowered/hierophant)
(1,1,1) = {"
m
m
m
-r
-r
-r
+Z
+Z
+Z
b
a
a
-N
-N
+Z
+Z
a
a
a
a
a
-r
-r
-r
+Z
+Z
+Z
b
-N
-N
-N
+Z
+Z
+Z
"}
(2,1,1) = {"
m
m
-r
-r
-r
+Z
+Z
+Z
b
b
b
@@ -96,15 +94,15 @@ b
b
b
b
-r
-N
+Z
+Z
"}
(3,1,1) = {"
m
m
-r
-r
-K
+Z
+Z
+s
c
b
b
@@ -121,15 +119,15 @@ c
c
b
b
-r
-N
+Z
+Z
"}
(4,1,1) = {"
m
-r
-r
-r
-r
+Z
+Z
+Z
+Z
b
b
b
@@ -145,21 +143,21 @@ b
b
b
b
-r
-r
-r
+Z
+Z
+Z
"}
(5,1,1) = {"
m
-r
-r
-r
-N
+Z
+Z
+Z
+Z
a
b
b
-r
-r
+Z
+Z
b
c
b
@@ -170,16 +168,16 @@ b
a
a
b
-K
-r
-r
+s
+Z
+Z
"}
(6,1,1) = {"
m
-r
-r
-r
-N
+Z
+Z
+Z
+Z
a
b
K
@@ -195,20 +193,20 @@ b
a
a
b
-K
-r
-r
+s
+Z
+Z
"}
(7,1,1) = {"
m
-r
-r
-r
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
e
e
e
@@ -220,19 +218,19 @@ e
b
b
b
-r
-r
-r
+Z
+Z
+Z
"}
(8,1,1) = {"
-X
-r
-r
-r
-K
-K
-r
-r
+Z
+Z
+Z
+Z
+s
+s
+Z
+Z
e
a
e
@@ -245,19 +243,19 @@ e
c
c
b
-r
-r
-N
+Z
+Z
+Z
"}
(9,1,1) = {"
-N
-r
-r
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
e
e
e
@@ -269,20 +267,20 @@ e
e
b
b
-r
-r
-r
+Z
+Z
+Z
a
"}
(10,1,1) = {"
-N
-r
-N
-r
-r
-r
-X
-N
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
e
e
e
@@ -294,20 +292,20 @@ a
e
b
b
-r
+Z
a
-r
+Z
a
"}
(11,1,1) = {"
-N
-r
-r
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
e
e
b
@@ -319,20 +317,20 @@ e
e
b
b
-r
-r
-r
+Z
+Z
+Z
m
"}
(12,1,1) = {"
-N
-K
-r
-r
-r
-K
-r
-r
+Z
+s
+Z
+Z
+Z
+s
+Z
+Z
f
e
b
@@ -344,20 +342,20 @@ e
e
c
c
-r
-r
-r
+Z
+Z
+Z
m
"}
(13,1,1) = {"
-N
-r
-r
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
e
e
b
@@ -369,18 +367,18 @@ e
e
b
b
-r
-r
-r
+Z
+Z
+Z
m
"}
(14,1,1) = {"
-N
-r
Z
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
e
a
e
@@ -394,18 +392,18 @@ a
e
b
b
-r
-N
-r
+Z
+Z
+Z
m
"}
(15,1,1) = {"
-N
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
+Z
e
e
e
@@ -419,17 +417,17 @@ e
e
b
b
-r
-r
-r
+Z
+Z
+Z
m
"}
(16,1,1) = {"
a
-r
-r
-r
-K
+Z
+Z
+Z
+s
c
e
e
@@ -445,16 +443,16 @@ e
c
c
b
-r
-r
+Z
+Z
m
"}
(17,1,1) = {"
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
b
e
e
@@ -470,15 +468,15 @@ e
b
b
b
-r
-r
+Z
+Z
m
"}
(18,1,1) = {"
-r
-r
-K
-r
+Z
+Z
+s
+Z
a
a
b
@@ -496,14 +494,14 @@ a
a
b
c
-r
+Z
m
"}
(19,1,1) = {"
-r
-r
-K
-r
+Z
+Z
+s
+Z
a
Z
b
@@ -521,15 +519,15 @@ a
a
b
c
-r
-r
+Z
+Z
"}
(20,1,1) = {"
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
b
b
b
@@ -547,14 +545,14 @@ b
b
b
b
-r
+Z
"}
(21,1,1) = {"
-N
-r
-r
-r
-K
+Z
+Z
+Z
+Z
+s
c
b
b
@@ -575,12 +573,12 @@ b
a
"}
(22,1,1) = {"
-N
-r
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
+Z
b
b
b
@@ -602,11 +600,11 @@ a
(23,1,1) = {"
a
a
-N
-r
-r
-r
-r
+Z
+Z
+Z
+Z
+Z
a
a
a
@@ -616,9 +614,9 @@ a
a
a
a
-r
-r
-r
+Z
+Z
+Z
b
a
a
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm
index eaa292122da6..65f572ae4e3c 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_miningexpedition.dmm
@@ -3,7 +3,7 @@
/mob/living/simple_animal/hostile/asteroid/goliath{
dir = 4
},
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"an" = (
/obj/machinery/door/airlock,
@@ -11,7 +11,7 @@
/area/ruin/unpowered)
"bs" = (
/obj/structure/barricade/sandbags,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"bB" = (
/obj/structure/sign/poster/contraband/steppyflag,
@@ -19,21 +19,21 @@
/area/ruin/unpowered)
"dk" = (
/obj/structure/ore_box,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"dz" = (
/obj/structure/chair/plastic{
dir = 4
},
/obj/effect/decal/cleanable/blood,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"fL" = (
/obj/item/kinetic_crusher,
/obj/effect/decal/cleanable/blood,
/obj/effect/gibspawner/human,
/obj/item/clothing/suit/space/hardsuit/mining,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"gN" = (
/obj/structure/sign/poster/contraband/tools,
@@ -62,9 +62,6 @@
/obj/machinery/door/airlock/mining,
/turf/open/floor/plasteel/mono/dark,
/area/ruin/unpowered)
-"oj" = (
-/turf/open/floor/plating/asteroid/airless,
-/area/overmap_encounter/planetoid/rockplanet/explored)
"ov" = (
/obj/structure/sign/warning/gasmask,
/turf/closed/wall/r_wall/rust,
@@ -77,11 +74,7 @@
desc = "What seems to be the remnants of what was once a human.";
name = "Turned"
},
-/turf/open/floor/plating/asteroid/lowpressure,
-/area/overmap_encounter/planetoid/rockplanet/explored)
-"rc" = (
-/obj/structure/marker_beacon,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"ro" = (
/obj/effect/decal/cleanable/oil,
@@ -110,14 +103,14 @@
/area/ruin/unpowered)
"sM" = (
/obj/structure/flora/rock/pile,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"sP" = (
/mob/living/simple_animal/hostile/skeleton/plasmaminer,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"tN" = (
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"ub" = (
/obj/machinery/computer{
@@ -135,7 +128,7 @@
/area/ruin/unpowered)
"ur" = (
/obj/structure/flora/rock,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"vK" = (
/obj/machinery/door/airlock/mining,
@@ -191,7 +184,7 @@
/area/ruin/unpowered)
"Gc" = (
/mob/living/simple_animal/hostile/asteroid/goliath,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Gh" = (
/obj/structure/tank_dispenser/oxygen,
@@ -209,7 +202,7 @@
desc = "What seems to be the remnants of what was once a human.";
name = "Turned"
},
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"JC" = (
/obj/item/weldingtool,
@@ -246,7 +239,7 @@
pixel_x = -10;
pixel_y = -7
},
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Pn" = (
/obj/item/reagent_containers/food/snacks/donkpocket/warm/berry,
@@ -277,7 +270,7 @@
/obj/effect/decal/cleanable/blood,
/obj/effect/mob_spawn/human/miner/explorer,
/obj/item/pickaxe,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Qr" = (
/obj/effect/turf_decal/rechargefloor,
@@ -286,11 +279,11 @@
/area/ruin/unpowered)
"QR" = (
/mob/living/simple_animal/bot/mulebot,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Rk" = (
/obj/effect/decal/cleanable/blood,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"SC" = (
/obj/structure/table,
@@ -337,11 +330,11 @@
"Wf" = (
/obj/effect/decal/cleanable/blood,
/obj/item/clothing/glasses/material/mining/gar,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Wv" = (
/obj/structure/marker_beacon,
-/turf/open/floor/plating/asteroid/airless,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Wz" = (
/obj/item/broken_bottle,
@@ -359,7 +352,7 @@
/area/ruin/unpowered)
"YW" = (
/obj/structure/barricade/wooden,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
(1,1,1) = {"
@@ -406,7 +399,7 @@ yZ
tN
bs
bs
-ll
+tN
yZ
yZ
"}
@@ -427,12 +420,12 @@ ug
uq
ug
rr
-rc
+Wv
tN
tN
tN
tN
-rc
+Wv
"}
(4,1,1) = {"
yZ
@@ -551,7 +544,7 @@ tN
dk
ll
bs
-rc
+Wv
tN
"}
(9,1,1) = {"
@@ -595,7 +588,7 @@ tN
tN
tN
tN
-rc
+Wv
ll
ll
yZ
@@ -648,17 +641,17 @@ tN
tN
tN
tN
-rc
+Wv
"}
(13,1,1) = {"
yZ
ll
-rc
+Wv
tN
tN
YW
YW
-rc
+Wv
sP
tN
tN
@@ -737,7 +730,7 @@ tN
tN
tN
tN
-rc
+Wv
Rk
tN
tN
@@ -806,17 +799,17 @@ ll
tN
tN
tN
-oj
-oj
+tN
+tN
Wv
-oj
-oj
-oj
-oj
-oj
-oj
+tN
+tN
+tN
+tN
+tN
+tN
Wv
-oj
+tN
"}
(20,1,1) = {"
yZ
@@ -883,7 +876,7 @@ tN
tN
tN
tN
-rc
+Wv
tN
tN
tN
@@ -922,7 +915,7 @@ yZ
yZ
yZ
ll
-rc
+Wv
Rk
tN
tN
@@ -989,7 +982,7 @@ yZ
(27,1,1) = {"
yZ
yZ
-rc
+Wv
yZ
yZ
ll
@@ -1006,7 +999,7 @@ tN
tN
tN
tN
-rc
+Wv
tN
yZ
"}
@@ -1065,7 +1058,7 @@ tN
ll
yZ
yZ
-rc
+Wv
Vw
Vw
Vw
@@ -1073,7 +1066,7 @@ Vw
Vw
Vw
ll
-rc
+Wv
ll
yZ
yZ
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_moth.dmm b/_maps/RandomRuins/RockRuins/rockplanet_moth.dmm
deleted file mode 100644
index 865ae26148cc..000000000000
--- a/_maps/RandomRuins/RockRuins/rockplanet_moth.dmm
+++ /dev/null
@@ -1,575 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 10
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"b" = (
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"d" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"e" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 9
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"f" = (
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"g" = (
-/obj/item/toy/plush/moth,
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet)
-"h" = (
-/obj/effect/turf_decal/industrial/warning/dust,
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"i" = (
-/obj/machinery/power/apc/auto_name/north,
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"k" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"l" = (
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"m" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "6-8"
- },
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"n" = (
-/obj/item/toy/plush/moth,
-/obj/effect/gibspawner/xeno/bodypartless,
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet)
-"p" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/mineral/plasma,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"q" = (
-/obj/effect/turf_decal/industrial/warning/dust/corner,
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"r" = (
-/obj/effect/turf_decal/industrial/warning/dust/corner{
- dir = 4
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"s" = (
-/obj/item/stack/sheet/mineral/plasma,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"t" = (
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"u" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/mineral/plasma,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"v" = (
-/obj/structure/table,
-/obj/item/storage/toolbox/electrical,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"w" = (
-/obj/machinery/suit_storage_unit/mining/eva,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"x" = (
-/obj/machinery/vending/mining_equipment,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"y" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 5
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"z" = (
-/obj/structure/closet/crate,
-/obj/item/storage/firstaid/regular,
-/obj/item/storage/firstaid/regular,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"A" = (
-/obj/effect/spawner/lootdrop/crate_spawner,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"B" = (
-/obj/structure/ore_box,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"D" = (
-/obj/item/stack/sheet/mineral/plasma,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"F" = (
-/turf/closed/wall/rust,
-/area/mine/rockplanet_nanotrasen)
-"G" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 6
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"H" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"I" = (
-/obj/machinery/power/port_gen/pacman,
-/obj/structure/cable{
- icon_state = "0-9"
- },
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"K" = (
-/obj/machinery/door/airlock,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"L" = (
-/obj/structure/table,
-/obj/item/storage/box/donkpockets,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"M" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 4
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"O" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 1
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"P" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"Q" = (
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/machinery/suit_storage_unit/mining/eva,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"R" = (
-/obj/structure/girder/displaced,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"S" = (
-/obj/structure/girder/displaced,
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet)
-"T" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/mine/rockplanet_nanotrasen)
-"U" = (
-/obj/item/toy/plush/moth,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"V" = (
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/item/toy/plush/moth,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"W" = (
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 8
- },
-/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet)
-"X" = (
-/obj/effect/gibspawner/xeno/bodypartless,
-/turf/open/floor/plating/rust,
-/area/mine/rockplanet_nanotrasen)
-"Y" = (
-/obj/machinery/door/airlock/centcom,
-/turf/open/floor/plasteel,
-/area/mine/rockplanet_nanotrasen)
-"Z" = (
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet)
-
-(1,1,1) = {"
-e
-W
-W
-W
-W
-W
-W
-W
-W
-W
-a
-"}
-(2,1,1) = {"
-O
-b
-b
-b
-b
-b
-b
-b
-b
-b
-h
-"}
-(3,1,1) = {"
-O
-b
-b
-b
-b
-b
-b
-b
-b
-b
-h
-"}
-(4,1,1) = {"
-O
-b
-b
-b
-b
-b
-b
-b
-b
-b
-h
-"}
-(5,1,1) = {"
-O
-b
-b
-b
-b
-b
-b
-b
-b
-b
-h
-"}
-(6,1,1) = {"
-y
-M
-M
-M
-r
-b
-q
-M
-M
-M
-G
-"}
-(7,1,1) = {"
-Z
-Z
-Z
-Z
-O
-b
-h
-Z
-Z
-Z
-Z
-"}
-(8,1,1) = {"
-Z
-Z
-Z
-Z
-O
-b
-h
-Z
-Z
-Z
-Z
-"}
-(9,1,1) = {"
-Z
-Z
-Z
-Z
-O
-b
-h
-Z
-Z
-Z
-Z
-"}
-(10,1,1) = {"
-F
-T
-T
-T
-F
-Y
-F
-T
-T
-T
-F
-"}
-(11,1,1) = {"
-F
-u
-p
-p
-F
-t
-P
-t
-t
-x
-F
-"}
-(12,1,1) = {"
-F
-i
-t
-t
-Y
-t
-s
-s
-l
-w
-F
-"}
-(13,1,1) = {"
-F
-m
-t
-l
-F
-v
-l
-l
-t
-w
-F
-"}
-(14,1,1) = {"
-F
-p
-I
-s
-F
-L
-L
-l
-l
-Q
-F
-"}
-(15,1,1) = {"
-F
-F
-F
-F
-F
-F
-F
-Y
-F
-F
-F
-"}
-(16,1,1) = {"
-F
-d
-f
-s
-F
-B
-t
-t
-V
-t
-F
-"}
-(17,1,1) = {"
-F
-d
-l
-s
-F
-B
-U
-l
-l
-l
-T
-"}
-(18,1,1) = {"
-F
-H
-D
-d
-F
-U
-l
-X
-l
-U
-T
-"}
-(19,1,1) = {"
-T
-t
-l
-d
-F
-H
-l
-U
-l
-l
-F
-"}
-(20,1,1) = {"
-T
-t
-l
-l
-K
-l
-l
-U
-l
-U
-S
-"}
-(21,1,1) = {"
-T
-d
-t
-t
-t
-l
-U
-l
-l
-l
-Z
-"}
-(22,1,1) = {"
-T
-d
-t
-t
-F
-H
-l
-z
-l
-l
-Z
-"}
-(23,1,1) = {"
-F
-t
-l
-t
-F
-t
-U
-l
-n
-Z
-g
-"}
-(24,1,1) = {"
-F
-k
-l
-t
-F
-t
-X
-Z
-Z
-Z
-Z
-"}
-(25,1,1) = {"
-F
-A
-t
-t
-R
-l
-U
-g
-Z
-Z
-Z
-"}
-(26,1,1) = {"
-F
-d
-t
-t
-R
-l
-Z
-Z
-Z
-g
-Z
-"}
-(27,1,1) = {"
-F
-F
-F
-F
-S
-Z
-Z
-Z
-Z
-Z
-Z
-"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_pioneer.dmm b/_maps/RandomRuins/RockRuins/rockplanet_pioneer.dmm
index 21a4816a5612..4dba77052239 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_pioneer.dmm
+++ b/_maps/RandomRuins/RockRuins/rockplanet_pioneer.dmm
@@ -4,44 +4,44 @@
/area/template_noop)
"b" = (
/obj/effect/decal/remains/human,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"f" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 10
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"k" = (
/obj/item/pizzabox,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"l" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 4
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"t" = (
/obj/structure/flora/rock,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"I" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 8
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"M" = (
/obj/item/clothing/neck/tie/red,
/obj/item/clothing/shoes/laceup,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
"R" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 5
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/overmap_encounter/planetoid/rockplanet/explored)
(1,1,1) = {"
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_rd_god.dmm b/_maps/RandomRuins/RockRuins/rockplanet_rd_god.dmm
deleted file mode 100644
index a480e6230ea1..000000000000
--- a/_maps/RandomRuins/RockRuins/rockplanet_rd_god.dmm
+++ /dev/null
@@ -1,628 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"a" = (
-/turf/template_noop,
-/area/template_noop)
-"k" = (
-/turf/open/floor/plating/dirt/jungle/wasteland,
-/area/overmap_encounter/planetoid/rockplanet/explored)
-"B" = (
-/obj/structure/girder/displaced,
-/turf/open/floor/plating/dirt/jungle/wasteland,
-/area/overmap_encounter/planetoid/rockplanet/explored)
-"D" = (
-/mob/living/simple_animal/hostile/asteroid/elite/herald{
- desc = "Director?";
- name = "the research director"
- },
-/obj/item/gun/energy/e_gun/rdgun,
-/obj/item/clothing/suit/toggle/labcoat,
-/obj/item/clothing/under/rank/rnd/research_director/skirt,
-/obj/item/clothing/shoes/sneakers/brown,
-/obj/item/clothing/neck/cloak/rd,
-/turf/open/floor/plating/dirt/jungle/wasteland,
-/area/overmap_encounter/planetoid/rockplanet/explored)
-"O" = (
-/obj/structure/girder,
-/turf/open/floor/plating/dirt/jungle/wasteland,
-/area/overmap_encounter/planetoid/rockplanet/explored)
-
-(1,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-k
-k
-a
-a
-a
-a
-a
-a
-a
-a
-"}
-(2,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-k
-k
-a
-a
-a
-a
-k
-k
-a
-a
-"}
-(3,1,1) = {"
-a
-a
-a
-k
-a
-a
-a
-a
-k
-a
-a
-k
-k
-k
-a
-k
-k
-k
-k
-k
-a
-a
-"}
-(4,1,1) = {"
-a
-a
-a
-k
-k
-k
-k
-a
-k
-k
-k
-k
-k
-k
-a
-k
-k
-k
-k
-k
-a
-a
-"}
-(5,1,1) = {"
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-a
-a
-"}
-(6,1,1) = {"
-a
-a
-k
-k
-k
-k
-k
-k
-O
-k
-k
-k
-k
-B
-k
-k
-k
-k
-k
-a
-a
-a
-"}
-(7,1,1) = {"
-a
-k
-k
-k
-B
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-a
-a
-"}
-(8,1,1) = {"
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-a
-a
-"}
-(9,1,1) = {"
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-"}
-(10,1,1) = {"
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-"}
-(11,1,1) = {"
-a
-k
-B
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-a
-"}
-(12,1,1) = {"
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-O
-k
-a
-a
-a
-"}
-(13,1,1) = {"
-a
-a
-k
-k
-k
-k
-k
-k
-k
-D
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-"}
-(14,1,1) = {"
-a
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-"}
-(15,1,1) = {"
-a
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-"}
-(16,1,1) = {"
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-"}
-(17,1,1) = {"
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-"}
-(18,1,1) = {"
-a
-a
-k
-O
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-a
-"}
-(19,1,1) = {"
-a
-a
-k
-k
-k
-k
-B
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-"}
-(20,1,1) = {"
-a
-a
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-O
-k
-k
-a
-"}
-(21,1,1) = {"
-a
-a
-a
-a
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-k
-a
-"}
-(22,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-k
-k
-k
-k
-O
-k
-k
-k
-k
-k
-B
-k
-k
-a
-"}
-(23,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-k
-k
-k
-k
-O
-k
-k
-k
-k
-k
-k
-k
-a
-"}
-(24,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-k
-a
-a
-k
-k
-k
-a
-k
-k
-k
-a
-a
-"}
-(25,1,1) = {"
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-a
-k
-k
-k
-a
-a
-k
-k
-k
-a
-a
-"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm b/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm
new file mode 100644
index 000000000000..fe9e234ae6e8
--- /dev/null
+++ b/_maps/RandomRuins/RockRuins/rockplanet_saloon.dmm
@@ -0,0 +1,2429 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"al" = (
+/obj/structure/barricade/wooden,
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"an" = (
+/obj/structure/table/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"aJ" = (
+/obj/structure/table/wood/fancy/red_gold,
+/obj/item/toy/cards/deck/syndicate,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/unpowered)
+"bi" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/small{
+ pixel_x = -2;
+ pixel_y = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"bC" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor3-old"
+ },
+/obj/item/reagent_containers/hypospray/medipen{
+ desc = "A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge. Contains a powerful preservative that can delay decomposition when applied to a dead body. This one is spent.";
+ icon_state = "medipen0";
+ list_reagents = null;
+ name = "spent epinephrine medipen";
+ pixel_x = 3;
+ pixel_y = -8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 4
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"bK" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/tequila{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"cf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"ch" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"ci" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"cr" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/small{
+ pixel_x = 1;
+ pixel_y = 3
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"cH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"dw" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/end,
+/turf/open/floor/plasteel/grimy,
+/area/ruin/unpowered)
+"dF" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor5-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 6
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"dP" = (
+/mob/living/simple_animal/hostile/netherworld/migo,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"dS" = (
+/mob/living/simple_animal/hostile/mining_drone/rockplanet,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"dW" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/shaker{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/glass/rag{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"dZ" = (
+/obj/structure/railing{
+ color = "#BA8C63"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"ei" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"eF" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"eJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"eM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"eS" = (
+/obj/item/chair/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"eX" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/vomit/old{
+ icon_state = "vomit_4-old"
+ },
+/mob/living/simple_animal/hostile/netherworld,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/item/storage/firstaid{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"fo" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"fs" = (
+/obj/item/chair/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"fu" = (
+/obj/structure/table/wood/fancy/red_gold,
+/obj/item/stack/spacecash/c500{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/unpowered)
+"fL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"fN" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"fO" = (
+/obj/structure/chair/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"fZ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered)
+"gq" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"gL" = (
+/obj/structure/railing{
+ color = "#BA8C63"
+ },
+/obj/structure/railing/corner{
+ color = "#BA8C63";
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"hj" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/barman_recipes{
+ pixel_x = -2;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/flask{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 8
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"hp" = (
+/obj/structure/sink{
+ dir = 1
+ },
+/obj/structure/mirror{
+ pixel_y = -28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor6-old"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"ib" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"im" = (
+/obj/item/clothing/mask/breath{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/item/tank/internals/emergency_oxygen/engi/empty{
+ pixel_x = -18;
+ pixel_y = -6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/ebony,
+/area/ruin/unpowered)
+"it" = (
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"iS" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 6;
+ pixel_y = 12
+ },
+/obj/item/reagent_containers/food/drinks/bottle{
+ pixel_x = -8;
+ pixel_y = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"jz" = (
+/obj/structure/chair/wood{
+ dir = 1
+ },
+/mob/living/simple_animal/hostile/netherworld/migo,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"jQ" = (
+/mob/living/simple_animal/hostile/netherworld,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"jW" = (
+/obj/structure/barricade/wooden/crude,
+/obj/structure/door_assembly/door_assembly_wood{
+ anchored = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"kb" = (
+/obj/structure/barricade/wooden/crude,
+/obj/machinery/door/airlock/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/maple,
+/area/ruin/unpowered)
+"kd" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"kh" = (
+/obj/item/ammo_casing/caseless{
+ pixel_x = -4;
+ pixel_y = -7
+ },
+/obj/item/ammo_casing/caseless{
+ pixel_x = 9;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/unpowered)
+"kq" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor6-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"la" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"lH" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"lI" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"lM" = (
+/obj/structure/reagent_dispensers/beerkeg,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 4
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/unpowered)
+"lT" = (
+/obj/item/ammo_casing/caseless{
+ pixel_x = -3;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/royalblack,
+/area/ruin/unpowered)
+"lV" = (
+/obj/structure/sink{
+ pixel_y = 16
+ },
+/obj/structure/mirror{
+ pixel_y = 28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/vomit/old{
+ icon_state = "vomit_1-old"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"lW" = (
+/obj/effect/decal/remains/human,
+/obj/item/clothing/under/rank/civilian/bartender{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/item/clothing/shoes/laceup{
+ pixel_x = -6;
+ pixel_y = -10
+ },
+/obj/item/clothing/suit/armor/vest/alt{
+ pixel_x = 4;
+ pixel_y = 6
+ },
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_x = -10;
+ pixel_y = 2
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor5-old"
+ },
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 4
+ },
+/mob/living/simple_animal/hostile/illusion,
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"mh" = (
+/obj/machinery/vending/boozeomat/all_access,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"mC" = (
+/obj/structure/railing{
+ color = "#BA8C63"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"mE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/unpowered)
+"mZ" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"ou" = (
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"oN" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"pe" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"pp" = (
+/obj/structure/railing{
+ color = "#BA8C63";
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"pz" = (
+/obj/structure/chair/wood,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"pM" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"pO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"pV" = (
+/obj/item/ammo_casing/caseless{
+ pixel_x = 6;
+ pixel_y = -10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/unpowered)
+"pY" = (
+/obj/structure/chair/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"qd" = (
+/obj/structure/door_assembly/door_assembly_wood{
+ anchored = 1
+ },
+/turf/open/floor/wood/maple,
+/area/ruin/unpowered)
+"qh" = (
+/obj/structure/door_assembly/door_assembly_silver{
+ anchored = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"qy" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"rh" = (
+/obj/item/chair/stool/bar{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"rB" = (
+/obj/structure/bed,
+/obj/item/bedsheet/brown,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 6
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"rT" = (
+/obj/structure/sink{
+ dir = 1
+ },
+/obj/structure/mirror{
+ pixel_y = -28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"sj" = (
+/obj/structure/railing/corner{
+ color = "#BA8C63"
+ },
+/obj/item/ammo_casing/caseless{
+ pixel_x = -4;
+ pixel_y = -7
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"sF" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/netherworld/migo,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"to" = (
+/obj/structure/closet/cabinet,
+/obj/item/storage/bag/money/vault,
+/obj/item/stack/spacecash/c1000,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 5
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"tK" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"tL" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor2-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 1
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/unpowered)
+"tO" = (
+/obj/structure/closet/crate/bin,
+/obj/item/broken_bottle{
+ pixel_x = -6;
+ pixel_y = -4
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 1;
+ pixel_y = -5
+ },
+/obj/item/cigbutt/cigarbutt{
+ pixel_y = -6
+ },
+/obj/item/cigbutt/cigarbutt{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 10
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"tR" = (
+/obj/structure/table/wood/fancy/royalblack,
+/obj/machinery/chem_dispenser/drinks/beer{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"tZ" = (
+/obj/structure/barricade/wooden,
+/obj/effect/spawner/structure/window,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"ud" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"ul" = (
+/obj/machinery/vending/classicbeats,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"uS" = (
+/obj/structure/barricade/wooden,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"va" = (
+/obj/machinery/chem_master/condimaster{
+ desc = "Used to mix booze. You can see a Coondimaster label lazily covered up.";
+ name = "Hoochmaster 2000"
+ },
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 9
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"ve" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 1
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/unpowered)
+"wu" = (
+/obj/structure/barricade/wooden,
+/obj/machinery/door/airlock/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"wD" = (
+/turf/open/floor/carpet/black,
+/area/ruin/unpowered)
+"wJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"wQ" = (
+/obj/item/stack/medical/mesh{
+ pixel_x = 7;
+ pixel_y = 5
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/ebony,
+/area/ruin/unpowered)
+"wZ" = (
+/obj/machinery/door/airlock/silver,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"xc" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"xl" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/drinks/bottle/cognac{
+ pixel_x = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"xE" = (
+/obj/structure/railing/corner{
+ color = "#BA8C63";
+ dir = 4
+ },
+/obj/item/gun/ballistic/automatic/pistol/no_mag,
+/obj/item/ammo_casing/caseless{
+ pixel_x = 6;
+ pixel_y = -10
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"xH" = (
+/obj/structure/table/wood/fancy/red_gold,
+/obj/item/stack/spacecash/c200{
+ pixel_x = -4;
+ pixel_y = -6
+ },
+/obj/item/coin/iron{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/item/coin/iron{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/coin/iron{
+ pixel_x = -6;
+ pixel_y = 6
+ },
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/unpowered)
+"yn" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"yp" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor7-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"yQ" = (
+/obj/structure/door_assembly/door_assembly_silver{
+ anchored = 1
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"zm" = (
+/obj/structure/railing/corner{
+ color = "#BA8C63";
+ dir = 8
+ },
+/obj/item/ammo_casing/caseless{
+ pixel_x = -3;
+ pixel_y = 4
+ },
+/obj/item/ammo_casing/caseless{
+ pixel_x = 6;
+ pixel_y = -10
+ },
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor7-old"
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"zC" = (
+/obj/item/clothing/neck/tie/black,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood/ebony{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"zG" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Aa" = (
+/obj/structure/dresser,
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = -4;
+ pixel_y = 12
+ },
+/obj/item/storage/firstaid{
+ empty = 1;
+ pixel_x = -12;
+ pixel_y = -9
+ },
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 5
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"Ab" = (
+/obj/structure/toilet,
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/vomit/old{
+ icon_state = "vomit_3-old"
+ },
+/mob/living/simple_animal/hostile/cockroach/glockroach,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"Ad" = (
+/obj/structure/table/wood,
+/obj/machinery/reagentgrinder{
+ pixel_y = 8
+ },
+/obj/item/storage/box/drinkingglasses,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 8
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"AO" = (
+/obj/machinery/door/airlock/silver,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"AR" = (
+/obj/structure/barricade/wooden,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"AY" = (
+/obj/structure/musician/piano,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"Bz" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"BI" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"CC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"CG" = (
+/obj/item/chair/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/unpowered)
+"CH" = (
+/obj/structure/sink{
+ pixel_y = 16
+ },
+/obj/structure/mirror{
+ pixel_y = 28
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"Dj" = (
+/mob/living/simple_animal/hostile/netherworld/migo,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"Dt" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30"
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"Dw" = (
+/obj/item/chair/stool/bar,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"DT" = (
+/obj/structure/table/wood/fancy/red_gold,
+/obj/item/stack/spacecash/c100{
+ pixel_x = 6;
+ pixel_y = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/coin/gold{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/carpet/nanoweave,
+/area/ruin/unpowered)
+"DW" = (
+/obj/structure/chair/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"DX" = (
+/obj/machinery/vending/cigarette,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"FN" = (
+/obj/item/shard,
+/obj/structure/barricade/wooden/crude,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"FW" = (
+/obj/structure/chair/stool/bar,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Gd" = (
+/obj/structure/railing{
+ color = "#BA8C63";
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Gr" = (
+/obj/structure/barricade/wooden,
+/obj/item/shard,
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"Gw" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/simple_animal/hostile/netherworld/migo,
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"GG" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor3-old"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"GT" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor5-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"GZ" = (
+/obj/structure/railing/corner{
+ color = "#BA8C63";
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"Hu" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor6-old"
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Hz" = (
+/obj/structure/chair/stool{
+ dir = 8
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"HY" = (
+/obj/structure/chair/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Ih" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes/cigars/havana{
+ pixel_y = 4
+ },
+/obj/item/lighter{
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30"
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"Im" = (
+/obj/structure/chair/stool/bar{
+ pixel_x = 16
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Iz" = (
+/obj/structure/ore_box,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"IB" = (
+/obj/structure/chair/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"IJ" = (
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor5-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Jj" = (
+/obj/item/stack/medical/mesh{
+ pixel_x = 12;
+ pixel_y = -7
+ },
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 1
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken6"
+ },
+/area/ruin/unpowered)
+"Kd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Ku" = (
+/obj/structure/railing/corner{
+ color = "#BA8C63";
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"KX" = (
+/obj/structure/toilet,
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor7-old"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"Ls" = (
+/mob/living/simple_animal/hostile/cockroach/glockroach,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"LY" = (
+/obj/structure/railing/corner{
+ color = "#BA8C63";
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"Mp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"Ms" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"MG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/unpowered)
+"MR" = (
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"MW" = (
+/obj/structure/railing{
+ color = "#BA8C63"
+ },
+/obj/structure/railing/corner{
+ color = "#BA8C63"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Na" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/plasteel/grimy,
+/area/ruin/unpowered)
+"Nc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood{
+ icon_state = "wood-broken2"
+ },
+/area/ruin/unpowered)
+"Nz" = (
+/obj/item/shard{
+ icon_state = "small"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"NI" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken7"
+ },
+/area/ruin/unpowered)
+"NM" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/structure/curtain,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"NS" = (
+/obj/item/chair/stool{
+ dir = 8
+ },
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"OX" = (
+/obj/machinery/door/airlock/silver,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor4-old"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/ruin/unpowered)
+"Pe" = (
+/obj/structure/ore_box,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"Pn" = (
+/turf/closed/wall/mineral/wood,
+/area/ruin/unpowered)
+"Po" = (
+/obj/item/chair/stool/bar{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"PL" = (
+/obj/effect/decal/cleanable/generic,
+/obj/item/storage/box/papersack{
+ pixel_x = -8;
+ pixel_y = -3
+ },
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"PU" = (
+/obj/item/megaphone{
+ pixel_x = 10;
+ pixel_y = 16
+ },
+/obj/item/candle/tribal_torch{
+ pixel_x = 16
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/carpet/royalblack,
+/area/ruin/unpowered)
+"Qf" = (
+/obj/item/chair/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Qr" = (
+/turf/open/floor/carpet/royalblack,
+/area/ruin/unpowered)
+"Qx" = (
+/obj/item/chair/stool/bar,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"QB" = (
+/obj/structure/chair/wood{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"QC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"QT" = (
+/obj/machinery/jukebox,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"QZ" = (
+/obj/structure/closet/crate/wooden,
+/obj/effect/spawner/lootdrop/maintenance/three,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"Ri" = (
+/turf/template_noop,
+/area/template_noop)
+"Sm" = (
+/obj/item/ammo_casing/shotgun/buckshot,
+/obj/item/ammo_casing/shotgun/buckshot{
+ pixel_x = 5;
+ pixel_y = -3
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"SR" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"To" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"Tr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Tt" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_x = -5
+ },
+/obj/item/candle{
+ pixel_x = -4;
+ pixel_y = 3
+ },
+/obj/item/book{
+ desc = "Retells the moments of a bartender in this saloon. Find out it's pages have been lost to time.";
+ icon_state = "book4";
+ name = "bartender's diary";
+ pixel_x = 15;
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 10
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"Tv" = (
+/obj/structure/closet/cabinet,
+/obj/item/clothing/under/rank/civilian/bartender/purple,
+/obj/item/clothing/under/rank/civilian/bartender/skirt,
+/obj/item/toy/figure/bartender,
+/obj/item/clothing/head/collectable/tophat,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 9
+ },
+/turf/open/floor/wood/walnut,
+/area/ruin/unpowered)
+"TM" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Un" = (
+/obj/structure/table/wood,
+/obj/item/trash/plate{
+ pixel_y = 2
+ },
+/obj/item/candle{
+ pixel_y = 6
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"UB" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/reagent_containers/food/drinks/bottle/vermouth{
+ pixel_x = -6;
+ pixel_y = 14
+ },
+/obj/item/reagent_containers/food/drinks/bottle/rum{
+ pixel_x = 6;
+ pixel_y = 10
+ },
+/obj/item/reagent_containers/food/drinks/bottle/wine{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/bottle/kahlua{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/drinks/bottle/grappa{
+ pixel_x = -6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Ve" = (
+/turf/open/floor/carpet/green,
+/area/ruin/unpowered)
+"VE" = (
+/obj/structure/chair/stool/bar{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"VG" = (
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/structure/barricade/wooden,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"VN" = (
+/obj/structure/table/wood/fancy/black,
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_x = -32
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Wj" = (
+/obj/structure/barricade/wooden,
+/obj/item/shard{
+ icon_state = "small"
+ },
+/obj/effect/decal/cleanable/glass,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"Wl" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"Wu" = (
+/obj/structure/closet/crate/trashcart,
+/obj/item/cigbutt/cigarbutt{
+ pixel_y = -6
+ },
+/obj/item/broken_bottle{
+ pixel_x = -6;
+ pixel_y = -4
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 8;
+ pixel_y = -6
+ },
+/obj/item/paper/crumpled{
+ pixel_x = 1;
+ pixel_y = 3
+ },
+/obj/item/broken_bottle{
+ pixel_x = 4;
+ pixel_y = 1
+ },
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/effect/spawner/lootdrop/gloves,
+/obj/effect/spawner/lootdrop/glowstick,
+/obj/effect/decal/cleanable/wrapping,
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit,
+/area/ruin/unpowered)
+"WS" = (
+/turf/open/floor/wood{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/unpowered)
+"Xa" = (
+/obj/item/ammo_casing/caseless,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor6-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"Xi" = (
+/obj/item/chair/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Xn" = (
+/obj/item/stack/medical/gauze{
+ amount = 2;
+ pixel_x = 4;
+ pixel_y = 13
+ },
+/obj/item/stack/medical/suture{
+ amount = 4;
+ pixel_x = 7
+ },
+/obj/item/stack/medical/suture{
+ amount = 1;
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/item/healthanalyzer{
+ pixel_x = -4;
+ pixel_y = -13
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 4
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken5"
+ },
+/area/ruin/unpowered)
+"XI" = (
+/obj/item/chair/stool/bar,
+/obj/effect/decal/cleanable/blood/old{
+ icon_state = "floor7-old"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"XZ" = (
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/lootdrop/maintenance/five,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Yj" = (
+/obj/structure/barricade/wooden,
+/obj/item/shard{
+ icon_state = "medium"
+ },
+/obj/effect/decal/cleanable/glass,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
+"Ym" = (
+/obj/item/chair/stool/bar{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Yo" = (
+/obj/effect/decal/cleanable/garbage,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"Yx" = (
+/obj/structure/table/wood/fancy/royalblack,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"YG" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"Zd" = (
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin/unpowered)
+"Zn" = (
+/obj/item/chair/stool/bar{
+ dir = 8
+ },
+/turf/open/floor/wood{
+ icon_state = "wood-broken4"
+ },
+/area/ruin/unpowered)
+"Zu" = (
+/obj/structure/chair/wood{
+ pixel_x = 16;
+ pixel_y = -4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 8
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken3"
+ },
+/area/ruin/unpowered)
+"ZA" = (
+/obj/item/chair/wood{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"ZE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/wood{
+ color = "#543C30";
+ dir = 8
+ },
+/turf/open/floor/wood/walnut{
+ icon_state = "wood-broken"
+ },
+/area/ruin/unpowered)
+"ZM" = (
+/obj/item/chair/wood,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+"ZZ" = (
+/obj/item/chair/wood{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/wood,
+/area/ruin/unpowered)
+
+(1,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+it
+"}
+(2,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+it
+Zd
+Zd
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+it
+Zd
+"}
+(3,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Ri
+Zd
+it
+Zd
+Zd
+Zd
+it
+it
+Zd
+Zd
+Zd
+Zd
+it
+Zd
+Zd
+Ri
+"}
+(4,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Zd
+dP
+Zd
+Zd
+Zd
+it
+Zd
+Zd
+Zd
+it
+Zd
+it
+Zd
+Zd
+it
+Ri
+"}
+(5,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+it
+Zd
+Zd
+Pn
+Pn
+Wj
+ou
+Pn
+Pn
+Pn
+Yj
+uS
+Pn
+AR
+Zd
+Zd
+"}
+(6,1,1) = {"
+Ri
+Ri
+Ri
+Zd
+Zd
+Zd
+it
+Pn
+va
+Ad
+hj
+tO
+Pn
+Tv
+ZE
+Zu
+Tt
+Pn
+Zd
+it
+"}
+(7,1,1) = {"
+Ri
+Ri
+Zd
+it
+Zd
+Zd
+Zd
+AR
+Jj
+wQ
+kq
+Dt
+kb
+ve
+im
+zC
+Ih
+Pn
+it
+Zd
+"}
+(8,1,1) = {"
+Ri
+Zd
+Zd
+Zd
+it
+Zd
+jQ
+Wl
+to
+lM
+bC
+dF
+Pn
+Aa
+lW
+Xn
+rB
+AR
+it
+Ri
+"}
+(9,1,1) = {"
+Zd
+it
+Pn
+Pn
+AR
+Pn
+Pn
+Pn
+Pn
+Wl
+Pn
+qd
+Pn
+Pn
+Pn
+Pn
+Pn
+Pn
+Zd
+Zd
+"}
+(10,1,1) = {"
+it
+Zd
+Pn
+CG
+gq
+fO
+ZA
+pM
+fO
+FW
+xc
+Hu
+mh
+UB
+Yx
+tR
+VN
+Pn
+Zd
+it
+"}
+(11,1,1) = {"
+it
+Zd
+Gr
+eM
+QC
+QC
+QC
+cf
+MR
+Qx
+iS
+Mp
+tL
+Na
+Na
+dw
+fN
+lI
+it
+Zd
+"}
+(12,1,1) = {"
+Zd
+dS
+Nz
+CC
+ib
+pO
+MR
+pY
+sF
+ci
+QC
+yp
+QC
+Sm
+QC
+ci
+Ms
+Yj
+it
+Zd
+"}
+(13,1,1) = {"
+Zd
+it
+Pn
+fZ
+fZ
+fZ
+fo
+lH
+BI
+MR
+cr
+xl
+an
+bi
+bK
+dW
+yn
+Pn
+pp
+Dj
+"}
+(14,1,1) = {"
+Ri
+Yo
+Pn
+Ve
+la
+fZ
+wJ
+Xi
+QC
+QC
+YG
+Zn
+zG
+XI
+Dw
+Po
+aa
+Pn
+mC
+it
+"}
+(15,1,1) = {"
+Zd
+Wu
+Pn
+NS
+Ve
+fZ
+fZ
+eM
+mE
+MR
+QC
+MR
+pY
+IJ
+kh
+GT
+tK
+Pn
+MW
+Ku
+"}
+(16,1,1) = {"
+Zd
+PL
+Pn
+ul
+Gw
+PU
+fZ
+fo
+ZM
+QC
+mE
+fs
+lH
+jz
+pV
+lT
+Xa
+jW
+zm
+LY
+"}
+(17,1,1) = {"
+Ri
+Zd
+Pn
+AY
+la
+MG
+fZ
+pz
+lH
+QB
+Bz
+MR
+ZZ
+pe
+MG
+Qr
+ud
+wu
+sj
+xE
+"}
+(18,1,1) = {"
+Zd
+QZ
+Pn
+Hz
+la
+fZ
+wD
+fo
+IB
+QC
+cf
+QC
+Mp
+fN
+MG
+eJ
+mZ
+Pn
+gL
+GZ
+"}
+(19,1,1) = {"
+Zd
+Pe
+Pn
+la
+la
+wD
+eJ
+qy
+BI
+QC
+pY
+QC
+MR
+VE
+rh
+qy
+QT
+Pn
+dZ
+Zd
+"}
+(20,1,1) = {"
+it
+Iz
+Pn
+fZ
+wD
+fZ
+fo
+MR
+QC
+ZZ
+Un
+QB
+Im
+aJ
+DT
+cf
+pe
+Pn
+Gd
+it
+"}
+(21,1,1) = {"
+Zd
+Zd
+FN
+eJ
+ch
+cH
+sF
+QC
+MR
+QC
+IB
+QC
+NI
+xH
+fu
+QC
+fN
+VG
+it
+Zd
+"}
+(22,1,1) = {"
+it
+it
+tZ
+fL
+QC
+QC
+MR
+cf
+QC
+MR
+WS
+QC
+QC
+Ym
+zG
+MR
+XZ
+ou
+Zd
+it
+"}
+(23,1,1) = {"
+Zd
+it
+Pn
+HY
+oN
+Qf
+eS
+eF
+DW
+ib
+ib
+TM
+ib
+ib
+kd
+SR
+DX
+Pn
+Zd
+it
+"}
+(24,1,1) = {"
+Zd
+Zd
+Pn
+Wl
+AR
+AR
+Pn
+Pn
+Pn
+Wl
+Pn
+Nc
+Pn
+AR
+To
+Pn
+Pn
+Pn
+Zd
+Zd
+"}
+(25,1,1) = {"
+Ri
+it
+Zd
+Zd
+Zd
+it
+Pn
+Ab
+AO
+hp
+Pn
+Tr
+Pn
+CH
+yQ
+NM
+AR
+it
+Zd
+Ri
+"}
+(26,1,1) = {"
+Ri
+Ri
+Zd
+it
+Zd
+Zd
+Pn
+Pn
+Pn
+rT
+Pn
+ei
+Pn
+lV
+Pn
+Pn
+Pn
+Zd
+Zd
+Ri
+"}
+(27,1,1) = {"
+Ri
+Ri
+Ri
+Zd
+it
+it
+AR
+KX
+yQ
+Ls
+wZ
+Kd
+qh
+GG
+OX
+eX
+Pn
+Zd
+Ri
+Ri
+"}
+(28,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Zd
+it
+Pn
+Pn
+Pn
+Pn
+Pn
+al
+Pn
+Pn
+Pn
+Pn
+Pn
+Zd
+it
+Ri
+"}
+(29,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Ri
+Zd
+it
+it
+Zd
+Zd
+it
+it
+Zd
+it
+Zd
+Zd
+it
+Zd
+it
+Ri
+"}
+(30,1,1) = {"
+Ri
+Ri
+Ri
+Ri
+Ri
+Ri
+Zd
+Zd
+it
+Dj
+Zd
+Zd
+it
+Zd
+it
+Zd
+Zd
+Ri
+Zd
+it
+"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_soviet.dmm b/_maps/RandomRuins/RockRuins/rockplanet_soviet.dmm
deleted file mode 100644
index a53b4de8a793..000000000000
--- a/_maps/RandomRuins/RockRuins/rockplanet_soviet.dmm
+++ /dev/null
@@ -1,464 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aw" = (
-/obj/structure/punji_sticks,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"bC" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"cm" = (
-/obj/vehicle/ridden/atv,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"dp" = (
-/obj/effect/decal/cleanable/ash,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"eP" = (
-/obj/machinery/door/airlock/grunge,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"gM" = (
-/obj/structure/fence/corner,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"is" = (
-/obj/structure/fence{
- dir = 4
- },
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"iw" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"iP" = (
-/obj/structure/cable{
- icon_state = "2-5"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"jY" = (
-/obj/structure/rack,
-/obj/item/weldingtool/hugetank,
-/obj/item/shovel,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"kg" = (
-/obj/effect/spawner/structure/window,
-/obj/structure/barricade/wooden/crude,
-/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"lm" = (
-/obj/structure/fence/corner{
- dir = 10
- },
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"mB" = (
-/obj/structure/table/wood/fancy/red,
-/obj/item/reagent_containers/food/drinks/bottle/vodka,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"ne" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"nE" = (
-/obj/machinery/power/port_gen/pacman,
-/obj/structure/cable,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"nP" = (
-/turf/closed/wall,
-/area/ruin/unpowered)
-"op" = (
-/obj/structure/sink/oil_well,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"pr" = (
-/turf/template_noop,
-/area/template_noop)
-"rJ" = (
-/obj/structure/reagent_dispensers/fueltank,
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"rW" = (
-/obj/structure/rack,
-/obj/item/construction/plumbing,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"sf" = (
-/obj/structure/closet/gimmick/russian,
-/obj/item/gun/ballistic/rifle/boltaction,
-/obj/item/storage/toolbox/ammo,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"sr" = (
-/obj/effect/decal/cleanable/wrapping,
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/cable{
- icon_state = "4-10"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"sV" = (
-/obj/structure/table,
-/obj/item/gun/ballistic/revolver/russian,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"tl" = (
-/obj/structure/fence{
- dir = 8
- },
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"ut" = (
-/obj/structure/rack,
-/obj/item/clothing/head/welding,
-/obj/item/clothing/head/welding,
-/obj/item/storage/belt/utility/full,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"uG" = (
-/obj/structure/rack,
-/obj/item/stack/ducts/fifty,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"vt" = (
-/obj/structure/rack,
-/obj/item/weldingtool,
-/obj/item/key,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"vx" = (
-/obj/structure/fence/door/opened,
-/obj/effect/mine/stun,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"vM" = (
-/obj/structure/sign/poster/contraband/rebels_unite,
-/turf/closed/wall,
-/area/ruin/unpowered)
-"wm" = (
-/obj/structure/ore_box,
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/decal/cleanable/oil,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"xs" = (
-/obj/item/wallframe/extinguisher_cabinet,
-/turf/closed/wall,
-/area/ruin/unpowered)
-"xN" = (
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"yY" = (
-/obj/machinery/door/airlock/grunge,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"zb" = (
-/obj/effect/spawner/structure/window,
-/obj/structure/barricade/wooden/crude,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"ze" = (
-/obj/effect/decal/cleanable/glass,
-/obj/structure/punji_sticks,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"zg" = (
-/obj/effect/decal/cleanable/robot_debris,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"BG" = (
-/turf/closed/wall/rust,
-/area/ruin/unpowered)
-"CT" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"Dj" = (
-/obj/structure/sign/poster/contraband/communist_state,
-/turf/closed/wall,
-/area/ruin/unpowered)
-"DO" = (
-/obj/structure/sign/departments/engineering,
-/turf/closed/wall/rust,
-/area/ruin/unpowered)
-"Fg" = (
-/obj/structure/chair/comfy/beige,
-/mob/living/simple_animal/hostile/russian,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"FY" = (
-/obj/structure/table,
-/obj/item/flashlight/lamp/green,
-/obj/item/radio,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"GW" = (
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"If" = (
-/obj/structure/rack,
-/obj/item/clothing/glasses/welding,
-/obj/item/clothing/glasses/welding,
-/obj/item/trash/syndi_cakes,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"IB" = (
-/obj/machinery/plumbing/liquid_pump,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"Mn" = (
-/obj/structure/rack,
-/obj/item/weldingtool/largetank,
-/obj/item/key,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"MJ" = (
-/mob/living/simple_animal/hostile/bear/russian,
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-"Ob" = (
-/obj/effect/decal/cleanable/wrapping,
-/obj/effect/decal/cleanable/dirt,
-/mob/living/simple_animal/hostile/russian,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"OR" = (
-/obj/machinery/vending/sovietsoda,
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"Pg" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen/fountain,
-/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"PI" = (
-/obj/structure/sign/poster/contraband/revolver,
-/turf/closed/wall/rust,
-/area/ruin/unpowered)
-"Qv" = (
-/obj/structure/fence,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"QX" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"VO" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating/asteroid,
-/area/ruin/unpowered)
-"VS" = (
-/obj/structure/closet/crate/trashcart,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"WB" = (
-/obj/structure/ore_box,
-/turf/open/floor/plating/rust,
-/area/ruin/unpowered)
-"WO" = (
-/turf/open/floor/plating,
-/area/ruin/unpowered)
-
-(1,1,1) = {"
-pr
-pr
-pr
-aw
-ze
-aw
-pr
-pr
-dp
-pr
-pr
-pr
-"}
-(2,1,1) = {"
-pr
-nP
-nP
-nP
-zb
-BG
-BG
-BG
-Qv
-Qv
-lm
-pr
-"}
-(3,1,1) = {"
-dp
-nP
-wm
-Ob
-iP
-CT
-nE
-BG
-cm
-xN
-is
-pr
-"}
-(4,1,1) = {"
-dp
-BG
-WB
-sr
-ut
-GW
-rJ
-Dj
-cm
-xN
-vx
-pr
-"}
-(5,1,1) = {"
-pr
-PI
-mB
-QX
-If
-ne
-VS
-nP
-zg
-xN
-tl
-pr
-"}
-(6,1,1) = {"
-pr
-BG
-OR
-bC
-uG
-ne
-ne
-yY
-xN
-xN
-is
-pr
-"}
-(7,1,1) = {"
-aw
-xs
-iw
-WO
-ne
-WO
-WO
-eP
-xN
-xN
-tl
-dp
-"}
-(8,1,1) = {"
-ze
-zb
-ne
-MJ
-WO
-WO
-FY
-nP
-IB
-xN
-tl
-pr
-"}
-(9,1,1) = {"
-aw
-zb
-GW
-WO
-ne
-Fg
-sV
-DO
-op
-xN
-vx
-pr
-"}
-(10,1,1) = {"
-aw
-vM
-Mn
-jY
-vt
-sf
-Pg
-BG
-rW
-VO
-tl
-pr
-"}
-(11,1,1) = {"
-pr
-BG
-BG
-nP
-nP
-kg
-zb
-nP
-Qv
-Qv
-gM
-pr
-"}
-(12,1,1) = {"
-pr
-pr
-pr
-pr
-aw
-aw
-aw
-aw
-pr
-pr
-pr
-pr
-"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_clowncrash.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
similarity index 82%
rename from _maps/RandomRuins/RockRuins/rockplanet_clowncrash.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
index 622e5ef0e418..4c67aa19d857 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_clowncrash.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm
@@ -3,7 +3,7 @@
/obj/structure/fence/corner{
dir = 9
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"b" = (
/obj/machinery/modular_computer/console/preset/civilian,
@@ -15,7 +15,7 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"d" = (
/obj/item/grown/bananapeel,
@@ -25,7 +25,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"e" = (
/obj/structure/table/reinforced,
@@ -38,12 +38,12 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"g" = (
/obj/structure/fence/door,
/obj/item/toy/snappop/phoenix,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"h" = (
/obj/machinery/door/airlock/titanium,
@@ -52,30 +52,30 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"i" = (
/obj/structure/shuttle/engine/propulsion,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"j" = (
/mob/living/simple_animal/bot/honkbot,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"k" = (
-/turf/closed/mineral/random/asteroid/rockplanet,
+/turf/closed/mineral/random/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"l" = (
/obj/item/grown/bananapeel,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"m" = (
/obj/structure/fence/corner{
dir = 6
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"o" = (
/obj/structure/table/reinforced,
/obj/item/bikehorn/airhorn,
/obj/item/nullrod/clown,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"r" = (
/obj/structure/table/reinforced,
@@ -94,7 +94,7 @@
"u" = (
/obj/structure/mecha_wreckage/honker,
/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"w" = (
/obj/structure/sign/poster/contraband/clown,
@@ -121,18 +121,10 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"D" = (
/obj/item/wrench,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
-/obj/item/stack/sheet/mineral/plasma,
/obj/structure/rack,
-/turf/open/floor/plating/asteroid,
+/obj/item/stack/sheet/mineral/plasma/five,
+/obj/item/stack/sheet/mineral/plasma/five,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"E" = (
/obj/structure/shuttle/engine/heater,
@@ -142,45 +134,45 @@
/obj/structure/fence{
dir = 8
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"G" = (
/obj/structure/cable{
icon_state = "1-8"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"H" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"J" = (
/obj/machinery/power/floodlight,
/obj/structure/cable{
icon_state = "0-8"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"K" = (
/obj/structure/closet/crate/trashcart,
/obj/effect/spawner/lootdrop/maintenance/seven,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"L" = (
/obj/structure/fence/corner,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"M" = (
/obj/structure/fence,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"N" = (
/obj/effect/decal/cleanable/oil/slippery,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"O" = (
/obj/structure/table/reinforced,
/obj/item/pickaxe/drill,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"P" = (
/turf/open/floor/noslip,
@@ -193,25 +185,25 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"S" = (
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"T" = (
/obj/structure/fence/corner{
dir = 8
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"U" = (
/obj/structure/fence{
dir = 4
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"V" = (
/obj/item/clothing/suit/space/hardsuit/clown,
@@ -223,14 +215,14 @@
/obj/structure/table/reinforced,
/obj/item/seeds/banana/bluespace,
/obj/item/circuitboard/computer/arcade/orion_trail,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"X" = (
/obj/effect/decal/cleanable/oil/slippery,
/obj/structure/cable{
icon_state = "4-8"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Y" = (
/obj/structure/statue/bananium/clown,
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_crash_kitchen.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm
similarity index 96%
rename from _maps/RandomRuins/RockRuins/rockplanet_crash_kitchen.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm
index 127f11136f5e..7ac1ef2f2d23 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_crash_kitchen.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_crash_kitchen.dmm
@@ -64,7 +64,7 @@
},
/obj/machinery/firealarm{
dir = 1;
- pixel_y = -25
+ pixel_y = -24
},
/turf/open/floor/carpet/nanoweave/purple,
/area/ruin/unpowered)
@@ -140,9 +140,7 @@
/turf/open/floor/plasteel,
/area/ruin/unpowered)
"sI" = (
-/mob/living/simple_animal/hostile/asteroid/goliath/beast{
- dir = 4
- },
+/mob/living/simple_animal/hostile/hivebot/rapid,
/turf/open/floor/plating{
icon_state = "platingdmg1"
},
@@ -196,11 +194,11 @@
/turf/open/floor/wood,
/area/ruin/unpowered)
"ut" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"uM" = (
-/obj/structure/lattice,
-/turf/open/floor/plating/asteroid,
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/unpowered)
"vc" = (
/obj/structure/cable{
@@ -216,9 +214,7 @@
/turf/open/floor/carpet/nanoweave/purple,
/area/ruin/unpowered)
"wq" = (
-/mob/living/simple_animal/hostile/asteroid/goliath/beast{
- dir = 8
- },
+/mob/living/simple_animal/hostile/hivebot/rapid,
/turf/open/floor/plating{
icon_state = "platingdmg2"
},
@@ -304,7 +300,7 @@
pixel_x = 12
},
/obj/structure/mirror{
- pixel_x = 25
+ pixel_x = 24
},
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
@@ -343,9 +339,7 @@
dir = 8
},
/obj/item/soap,
-/mob/living/simple_animal/hostile/asteroid/goliath/beast{
- dir = 4
- },
+/mob/living/simple_animal/hostile/hivebot/rapid,
/turf/open/floor/plasteel/white,
/area/ruin/unpowered)
"Ka" = (
@@ -392,7 +386,7 @@
"QS" = (
/obj/structure/chair/comfy/teal,
/obj/machinery/airalarm/all_access{
- pixel_y = 25
+ pixel_y = 24
},
/turf/open/floor/wood,
/area/ruin/unpowered)
@@ -447,7 +441,7 @@
},
/obj/item/oar,
/obj/machinery/advanced_airlock_controller{
- pixel_y = -25
+ pixel_y = -24
},
/obj/structure/closet/emcloset/wall{
pixel_x = 32
@@ -538,9 +532,7 @@
/turf/open/floor/plasteel/tech,
/area/ruin/unpowered)
"WP" = (
-/mob/living/simple_animal/hostile/asteroid/goliath/beast{
- dir = 4
- },
+/mob/living/simple_animal/hostile/hivebot/rapid,
/turf/open/floor/plating,
/area/ruin/unpowered)
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
similarity index 100%
rename from _maps/RandomRuins/RockRuins/rockplanet_fortress_of_solitide.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_lab.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
similarity index 99%
rename from _maps/RandomRuins/RockRuins/rockplanet_lab.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
index 43664bb8e727..96c038f4321d 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_lab.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_lab.dmm
@@ -454,7 +454,7 @@
/area/ruin/powered)
"tD" = (
/turf/template_noop,
-/area/overmap_encounter/planetoid/rockplanet)
+/area/template_noop)
"uB" = (
/obj/structure/table/wood/reinforced,
/obj/item/pen/blue,
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_ore_proccessing_facility.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm
similarity index 99%
rename from _maps/RandomRuins/RockRuins/rockplanet_ore_proccessing_facility.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm
index b219896d21ab..bc8d5d54b026 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_ore_proccessing_facility.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_ore_proccessing_facility.dmm
@@ -172,7 +172,7 @@
/area/ruin/powered)
"lW" = (
/obj/structure/flora/rock/pile,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/powered)
"mg" = (
/obj/effect/mob_spawn/human/corpse/cargo_tech,
@@ -605,7 +605,7 @@
},
/area/ruin/powered)
"Lp" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/ruin/powered)
"LN" = (
/obj/machinery/conveyor/auto{
@@ -745,7 +745,7 @@
/area/ruin/powered)
"Yq" = (
/turf/template_noop,
-/area/overmap_encounter/planetoid/rockplanet)
+/area/template_noop)
"Zp" = (
/obj/structure/catwalk,
/obj/machinery/conveyor/auto{
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_pandora.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
similarity index 96%
rename from _maps/RandomRuins/RockRuins/rockplanet_pandora.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
index c475b8c3df48..46515e65a7b8 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_pandora.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pandora.dmm
@@ -9,7 +9,7 @@
/obj/effect/portal/permanent/one_way{
id = "pandora_entrance"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet)
"m" = (
/obj/effect/light_emitter{
@@ -62,7 +62,7 @@
/turf/closed/indestructible/riveted/hierophant,
/area/ruin)
"O" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet)
"S" = (
/obj/effect/light_emitter{
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_pod.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_pod.dmm
similarity index 89%
rename from _maps/RandomRuins/RockRuins/rockplanet_pod.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_pod.dmm
index 68632290e07b..f369cee46c4d 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_pod.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_pod.dmm
@@ -4,14 +4,14 @@
/area/template_noop)
"f" = (
/obj/structure/closet/crate/grave,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"g" = (
/turf/open/floor/pod/dark,
/area/overmap_encounter/planetoid/rockplanet/explored)
"h" = (
/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"j" = (
/obj/structure/table/reinforced,
@@ -25,7 +25,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"m" = (
/obj/structure/ore_box,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"n" = (
/obj/structure/table/reinforced,
@@ -38,7 +38,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"r" = (
/obj/effect/decal/fakelattice,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"u" = (
/obj/structure/closet/secure_closet/miner/unlocked,
@@ -46,7 +46,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"v" = (
/obj/effect/decal/cleanable/blood/splatter,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"w" = (
/mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal,
@@ -61,10 +61,10 @@
/turf/open/floor/pod/dark,
/area/overmap_encounter/planetoid/rockplanet/explored)
"C" = (
-/obj/effect/decal/fakelattice,
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/emcloset/anchored,
-/turf/open/floor/plating/asteroid,
+/obj/effect/decal/fakelattice,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"I" = (
/obj/effect/decal/cleanable/dirt,
@@ -73,7 +73,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"J" = (
/obj/effect/decal/cleanable/oil/slippery,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"M" = (
/obj/effect/decal/cleanable/dirt,
@@ -84,7 +84,7 @@
/area/overmap_encounter/planetoid/rockplanet/explored)
"T" = (
/obj/structure/closet/crate/miningcar,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"X" = (
/obj/structure/table/reinforced,
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_solgov_terraformfacility.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_solgov_terraformfacility.dmm
deleted file mode 100644
index fad2d461e2cc..000000000000
--- a/_maps/RandomRuins/WasteRuins/wasteplanet_solgov_terraformfacility.dmm
+++ /dev/null
@@ -1,9708 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"aO" = (
-/turf/open/floor/wood/walnut,
-/area/template_noop)
-"aX" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/structure/chair/wood{
- dir = 4
- },
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"aY" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/machinery/vending/snack/blue,
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"cw" = (
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/plasteel/dark,
-/area/template_noop)
-"cN" = (
-/turf/open/floor/plasteel/stairs,
-/area/template_noop)
-"dF" = (
-/obj/machinery/door/airlock/external,
-/obj/effect/turf_decal/siding/red{
- dir = 8
- },
-/obj/effect/turf_decal/siding/red{
- dir = 8
- },
-/obj/machinery/door/poddoor/preopen,
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"eb" = (
-/turf/template_noop,
-/area/template_noop)
-"eF" = (
-/obj/effect/spawner/structure/window/shuttle,
-/obj/machinery/door/poddoor/shutters/preopen,
-/turf/open/floor/plating,
-/area/template_noop)
-"eO" = (
-/obj/machinery/door/airlock/external,
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"fF" = (
-/turf/closed/wall/mineral/titanium/nodiagonal,
-/area/template_noop)
-"gj" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line,
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"gk" = (
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"gm" = (
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/carpet/red,
-/area/template_noop)
-"gC" = (
-/turf/open/floor/plating,
-/area/template_noop)
-"jq" = (
-/turf/open/floor/plating/dirt/jungle,
-/area/template_noop)
-"kB" = (
-/obj/machinery/door/airlock/external,
-/obj/structure/catwalk/over/plated_catwalk/dark,
-/turf/open/floor/plating,
-/area/template_noop)
-"lT" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/shrink_cw,
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"mM" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/effect/turf_decal/stoneborder{
- dir = 1
- },
-/turf/open/floor/plasteel/mono/dark,
-/area/template_noop)
-"nS" = (
-/obj/structure/chair/comfy/teal{
- dir = 1
- },
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"om" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/machinery/computer/crew{
- dir = 2
- },
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"oN" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/shrink_ccw,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"oQ" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line,
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"sr" = (
-/obj/effect/turf_decal/siding/red,
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"sA" = (
-/obj/machinery/computer/secure_data{
- dir = 4
- },
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"wa" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/structure/table/wood/reinforced,
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"ww" = (
-/obj/machinery/door/airlock/external,
-/obj/effect/turf_decal/siding/red/corner,
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"xc" = (
-/obj/structure/flora/tree/jungle,
-/turf/open/floor/plating/grass/jungle,
-/area/template_noop)
-"xB" = (
-/obj/machinery/suit_storage_unit/solgov,
-/obj/effect/turf_decal/techfloor{
- dir = 10
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/template_noop)
-"yy" = (
-/turf,
-/area/template_noop)
-"yM" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/plating/grass/jungle,
-/area/template_noop)
-"zG" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 9
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"zL" = (
-/turf/open/floor/plating/grass/jungle,
-/area/template_noop)
-"Aw" = (
-/turf/open/space/basic,
-/area/template_noop)
-"AZ" = (
-/obj/structure/flora/ausbushes/fullgrass,
-/turf/open/floor/plating/grass/jungle,
-/area/template_noop)
-"BX" = (
-/obj/machinery/cryopod{
- dir = 4
- },
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"CO" = (
-/obj/machinery/suit_storage_unit,
-/obj/effect/turf_decal/techfloor{
- dir = 6
- },
-/turf/open/floor/plasteel/tech/grid,
-/area/template_noop)
-"Dm" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
-/obj/machinery/door/airlock/external,
-/turf/open/floor/plating,
-/area/template_noop)
-"Dp" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/effect/turf_decal/stoneborder{
- dir = 1
- },
-/obj/effect/turf_decal/weather/dirt,
-/turf/open/floor/plasteel/mono/dark,
-/area/template_noop)
-"EE" = (
-/obj/machinery/shower{
- pixel_y = 19
- },
-/obj/effect/turf_decal/techfloor/hole/right,
-/obj/effect/turf_decal/techfloor/hole,
-/obj/effect/turf_decal/siding/white,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/arrow_ccw,
-/turf/open/floor/plasteel/freezer,
-/area/template_noop)
-"EN" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/obj/structure/chair/wood{
- dir = 8
- },
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"Fa" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
-/turf/open/floor/plating/rust,
-/area/template_noop)
-"Gd" = (
-/obj/machinery/door/airlock/external,
-/obj/effect/turf_decal/sand/plating,
-/turf/open/floor/plating,
-/area/template_noop)
-"Gp" = (
-/obj/machinery/computer/security{
- network = list("carrier");
- dir = 8
- },
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"Ij" = (
-/obj/machinery/door/airlock/external,
-/turf/open/floor/plating,
-/area/template_noop)
-"IU" = (
-/turf/open/floor/plasteel/stairs/left,
-/area/template_noop)
-"JC" = (
-/obj/structure/flora/tree/jungle/small,
-/turf/open/floor/plating/grass/jungle,
-/area/template_noop)
-"JP" = (
-/turf/open/floor/plasteel/stairs{
- dir = 8
- },
-/area/template_noop)
-"Ku" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"KI" = (
-/obj/structure/catwalk/over/plated_catwalk/dark,
-/turf/open/floor/plating,
-/area/template_noop)
-"LL" = (
-/area/template_noop)
-"LS" = (
-/obj/effect/turf_decal/techfloor/corner,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/shrink_ccw,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/corner/opaque/yellow{
- dir = 9
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"Mi" = (
-/turf/open/floor/plasteel/dark,
-/area/template_noop)
-"MU" = (
-/obj/effect/turf_decal/siding/red{
- dir = 1
- },
-/obj/structure/table/wood/reinforced,
-/obj/machinery/door/poddoor/preopen,
-/turf/open/floor/wood/mahogany,
-/area/template_noop)
-"NQ" = (
-/obj/effect/turf_decal/techfloor/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/shrink_cw,
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"Qr" = (
-/turf/open/floor/plasteel/stairs/right,
-/area/template_noop)
-"QG" = (
-/obj/effect/turf_decal/floordetail/edgedrain{
- dir = 1
- },
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"RY" = (
-/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/industrial/warning/dust{
- dir = 4
- },
-/turf/open/floor/plasteel/tech,
-/area/template_noop)
-"Sy" = (
-/obj/structure/flora/ausbushes/grassybush,
-/turf/open/floor/plating/grass/jungle,
-/area/template_noop)
-"SU" = (
-/obj/machinery/airalarm/directional/west,
-/turf/open/floor/carpet/red,
-/area/template_noop)
-"To" = (
-/obj/structure/chair/comfy/teal{
- dir = 4
- },
-/turf/open/floor/carpet/red,
-/area/template_noop)
-"Tr" = (
-/obj/structure/chair/comfy/beige{
- dir = 8
- },
-/turf/open/floor/wood/walnut,
-/area/template_noop)
-"Tu" = (
-/turf/open/floor/wood/ebony,
-/area/template_noop)
-"TM" = (
-/obj/machinery/shower{
- pixel_y = 19
- },
-/obj/effect/turf_decal/techfloor/hole/right,
-/obj/effect/turf_decal/techfloor/hole,
-/obj/effect/turf_decal/siding/white,
-/turf/open/floor/plasteel/freezer,
-/area/template_noop)
-"Ul" = (
-/obj/machinery/suit_storage_unit/solgov,
-/obj/effect/turf_decal/techfloor,
-/turf/open/floor/plasteel/tech/grid,
-/area/template_noop)
-"Up" = (
-/obj/item/chair/wood,
-/turf/open/floor/plasteel/dark,
-/area/template_noop)
-"Ur" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/plating/dirt/jungle,
-/area/template_noop)
-"Ww" = (
-/obj/structure/chair/wood{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/template_noop)
-"Xc" = (
-/turf/open/floor/plasteel/stairs{
- dir = 4
- },
-/area/template_noop)
-"YC" = (
-/obj/effect/spawner/structure/window/shuttle,
-/turf/open/floor/plating,
-/area/template_noop)
-"Zl" = (
-/obj/effect/turf_decal/sand,
-/obj/machinery/door/airlock/external,
-/turf/open/floor/plating,
-/area/template_noop)
-
-(1,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(2,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(3,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(4,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(5,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(6,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(7,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(8,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(9,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(10,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(11,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(12,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(13,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(14,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(15,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(16,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(17,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(18,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(19,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(20,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(21,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(22,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(23,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(24,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(25,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(26,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(27,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(28,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(29,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(30,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(31,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(32,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(33,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(34,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(35,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(36,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(37,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(38,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(39,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(40,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(41,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(42,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(43,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(44,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(45,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(46,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(47,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(48,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(49,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(50,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(51,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(52,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(53,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(54,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(55,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(56,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(57,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(58,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(59,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(60,1,1) = {"
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-"}
-(61,1,1) = {"
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-yy
-"}
-(62,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(63,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(64,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(65,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(66,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(67,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(68,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(69,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(70,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(71,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(72,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(73,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(74,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(75,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(76,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(77,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(78,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(79,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-gC
-gC
-gC
-gC
-gC
-gC
-gC
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(80,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-gC
-gC
-gC
-gC
-gC
-gC
-gC
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(81,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-gC
-gC
-gC
-gC
-gC
-gC
-gC
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(82,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-gC
-gC
-gC
-gC
-gC
-gC
-gC
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(83,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-fF
-fF
-fF
-fF
-fF
-eb
-eb
-eb
-gC
-gC
-gC
-gC
-gC
-gC
-gC
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(84,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-gC
-gC
-gC
-gC
-fF
-eb
-fF
-fF
-Ij
-Ij
-fF
-YC
-YC
-YC
-YC
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(85,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-gC
-gC
-gC
-gC
-fF
-fF
-fF
-aX
-Tu
-Tu
-mM
-yM
-zL
-AZ
-zL
-fF
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(86,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-gC
-gC
-gC
-gC
-Dm
-KI
-KI
-wa
-Tu
-Tu
-mM
-AZ
-zL
-zL
-AZ
-yM
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(87,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-gC
-gC
-gC
-gC
-fF
-Mi
-KI
-EN
-Tu
-Tu
-Dp
-jq
-zL
-JC
-Ur
-Sy
-fF
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(88,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-gC
-gC
-gC
-fF
-fF
-Mi
-KI
-IU
-Tu
-Tu
-IU
-jq
-jq
-AZ
-zL
-zL
-JC
-fF
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(89,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-fF
-gC
-gC
-fF
-Up
-Mi
-KI
-Qr
-Tu
-Tu
-Qr
-jq
-AZ
-Ur
-Sy
-AZ
-AZ
-fF
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(90,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-Aw
-fF
-fF
-fF
-fF
-cw
-Mi
-KI
-QG
-Tu
-Tu
-Dp
-jq
-Sy
-zL
-JC
-yM
-fF
-fF
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(91,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-cw
-Mi
-KI
-QG
-Tu
-Tu
-mM
-zL
-xc
-AZ
-AZ
-Sy
-fF
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(92,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-Ww
-Mi
-KI
-QG
-Tu
-JP
-mM
-yM
-AZ
-zL
-jq
-fF
-fF
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(93,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-fF
-fF
-fF
-kB
-fF
-fF
-dF
-fF
-fF
-fF
-fF
-fF
-fF
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(94,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-fF
-Fa
-MU
-sA
-gk
-fF
-BX
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(95,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-fF
-KI
-MU
-nS
-gk
-fF
-gk
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(96,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-fF
-KI
-MU
-Gp
-gk
-eO
-gk
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(97,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-fF
-kB
-fF
-fF
-ww
-fF
-fF
-fF
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(98,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-fF
-Xc
-aO
-fF
-sr
-cN
-SU
-gm
-eF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(99,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-fF
-aO
-aO
-fF
-sr
-om
-To
-gm
-eF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(100,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-fF
-Tr
-aO
-fF
-sr
-aY
-gm
-eF
-eF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(101,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-fF
-fF
-LS
-fF
-fF
-eF
-eF
-eF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(102,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-fF
-EE
-NQ
-xB
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(103,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-fF
-EE
-oQ
-Ul
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(104,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-fF
-TM
-oN
-CO
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(105,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-fF
-fF
-lT
-fF
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(106,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-fF
-zG
-Ku
-fF
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(107,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-fF
-RY
-gj
-fF
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(108,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-fF
-Zl
-Gd
-fF
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(109,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-LL
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(110,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-LL
-LL
-LL
-LL
-LL
-LL
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(111,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(112,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(113,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(114,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(115,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(116,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(117,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(118,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(119,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(120,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
-(121,1,1) = {"
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-yy
-yy
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-eb
-"}
diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm
new file mode 100644
index 000000000000..6dd03ed7c02e
--- /dev/null
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_tarpit.dmm
@@ -0,0 +1,1677 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ax" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"bQ" = (
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"cb" = (
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"ci" = (
+/obj/structure/fence/door,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"cA" = (
+/obj/effect/turf_decal/number/one,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"cS" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/item/grenade/frag,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"cT" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/road,
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"dl" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"dp" = (
+/obj/structure/flippedtable,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"dA" = (
+/obj/effect/turf_decal/road{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"dU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"eh" = (
+/obj/structure/fence,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"eC" = (
+/obj/effect/turf_decal/number/one{
+ dir = 1
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"eN" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"ff" = (
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"gj" = (
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"gn" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"gT" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/road/stripes{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"hT" = (
+/obj/structure/marker_beacon,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"iB" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"iH" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"iM" = (
+/obj/structure/fence/corner{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"iN" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"iV" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"jf" = (
+/obj/structure/fence/corner,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"kj" = (
+/obj/structure/marker_beacon,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"ku" = (
+/obj/effect/turf_decal/industrial/hatch,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"kV" = (
+/obj/vehicle/ridden/atv,
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"lC" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"mk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"mr" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"my" = (
+/obj/machinery/light/dim,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"mM" = (
+/obj/machinery/door/airlock/engineering,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"nI" = (
+/obj/effect/turf_decal/road/stripes{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"oc" = (
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"qe" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"qI" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"rb" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"rw" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"rV" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"sE" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"sW" = (
+/obj/effect/turf_decal/road/line/opaque/yellow,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"th" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"ts" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"tH" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"ub" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"uf" = (
+/obj/effect/turf_decal/road,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"uA" = (
+/obj/machinery/door/poddoor/shutters,
+/turf/open/floor/concrete/tiles,
+/area/ruin/unpowered)
+"uJ" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/road/stripes{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"uO" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"vp" = (
+/obj/effect/turf_decal/road/stop{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"vT" = (
+/obj/effect/turf_decal/road/line/opaque/yellow,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"wz" = (
+/obj/structure/fence/corner{
+ dir = 10
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"wN" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"wR" = (
+/obj/structure/table,
+/obj/item/weldingtool/hugetank/empty,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"xt" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"xF" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"xM" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"xQ" = (
+/turf/template_noop,
+/area/template_noop)
+"xV" = (
+/obj/effect/turf_decal/road,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"xZ" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"yv" = (
+/obj/effect/turf_decal/industrial/warning{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/paper{
+ info = "First, take a scoop out of the pit. Go ahead,d try it out! Second, mix it with raw cement. Then simply add some sand to it, doesn't matter. Then you got yourself some pavement. Simply pour it on some catwalk and you got yourself some roadway. More efficent this way too. Enjoy. On a side note, I hear something outside, better check that out. I'll finish his later."
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"yG" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"yW" = (
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"zu" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"zU" = (
+/obj/effect/turf_decal/number/one{
+ dir = 1
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"AO" = (
+/obj/machinery/light/dim{
+ dir = 8
+ },
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Bk" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"BB" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/item/clothing/head/helmet,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"BS" = (
+/obj/structure/flippedtable,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Cj" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"Di" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"DC" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/structure/barricade/sandbags,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Eh" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Eu" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"EX" = (
+/obj/effect/turf_decal/road/stripes{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Ff" = (
+/obj/structure/sign/warning/fire{
+ pixel_y = 32
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"GD" = (
+/obj/effect/turf_decal/road/line/opaque/yellow,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Hv" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/clothing/head/helmet,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Hw" = (
+/obj/effect/turf_decal/road,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Io" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/road/stop,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Jo" = (
+/obj/effect/turf_decal/road/line/opaque/yellow,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"JF" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"JI" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"JZ" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Ka" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Kd" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 1
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"KX" = (
+/turf/closed/wall/concrete,
+/area/ruin/unpowered)
+"Li" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Lm" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/obj/effect/turf_decal/road/stripes{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"LY" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"OR" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Pu" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"PD" = (
+/obj/effect/turf_decal/road{
+ dir = 9
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"PF" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Qk" = (
+/obj/effect/turf_decal/road/stripes{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Re" = (
+/obj/effect/turf_decal/road{
+ dir = 6
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Rw" = (
+/obj/effect/turf_decal/number/one{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Ry" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"RO" = (
+/obj/effect/turf_decal/road/stop{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"RP" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"RT" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Sx" = (
+/obj/structure/fence{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"Ty" = (
+/obj/structure/fence/corner{
+ dir = 4
+ },
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"UZ" = (
+/obj/structure/table,
+/obj/item/pickaxe/drill,
+/obj/machinery/light/dim{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"Vf" = (
+/obj/structure/barricade/sandbags,
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"VD" = (
+/obj/structure/table,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"VE" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow,
+/obj/effect/turf_decal/road/stripes,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Wr" = (
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/ruin/unpowered)
+"WP" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/gun/ballistic/automatic/pistol/commander/no_mag,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Xn" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"XC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/concrete,
+/area/ruin/unpowered)
+"XN" = (
+/obj/effect/turf_decal/road{
+ dir = 1
+ },
+/obj/item/clothing/head/helmet,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"XT" = (
+/obj/effect/turf_decal/road{
+ dir = 8
+ },
+/obj/effect/turf_decal/road/stripes{
+ dir = 8
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Yc" = (
+/obj/effect/turf_decal/road{
+ dir = 4
+ },
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"YB" = (
+/turf/open/water/tar,
+/area/ruin/unpowered)
+"YO" = (
+/obj/effect/turf_decal/road/line/edge/opaque/yellow{
+ dir = 4
+ },
+/obj/item/clothing/head/helmet,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"YX" = (
+/turf/open/floor/concrete/slab_1,
+/area/ruin/unpowered)
+"Zc" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Zk" = (
+/obj/effect/turf_decal/road/edge,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"Zo" = (
+/obj/effect/turf_decal/road/line/opaque/yellow{
+ dir = 4
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+"ZV" = (
+/obj/effect/turf_decal/road/edge{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/concrete/pavement,
+/area/ruin/unpowered)
+
+(1,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+Wr
+Xn
+xQ
+"}
+(2,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+YX
+Wr
+Wr
+bQ
+Wr
+Wr
+YX
+"}
+(3,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+Bk
+tH
+Zc
+Wr
+Xn
+Wr
+"}
+(4,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+YX
+Wr
+YX
+YX
+Bk
+Wr
+YX
+YX
+YX
+xQ
+YX
+YX
+uJ
+nI
+RO
+gT
+YX
+"}
+(5,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+Wr
+PD
+xV
+xV
+xV
+Hw
+Hw
+Wr
+xV
+Hw
+Hw
+xV
+cT
+Zk
+bQ
+bQ
+Xn
+YX
+"}
+(6,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+YX
+Yc
+JI
+lC
+zu
+th
+lC
+zu
+Hv
+lC
+zu
+Wr
+Io
+Wr
+bQ
+Zc
+xt
+YX
+"}
+(7,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+Bk
+tH
+Zc
+Di
+rw
+Ka
+Di
+Li
+iN
+Di
+rw
+WP
+Vf
+bQ
+bQ
+bQ
+xt
+Wr
+"}
+(8,1,1) = {"
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+JI
+tH
+dl
+th
+Wr
+cS
+sE
+sE
+sE
+sE
+sE
+Wr
+qI
+Eh
+bQ
+Wr
+Xn
+YX
+"}
+(9,1,1) = {"
+xQ
+iM
+eh
+eh
+eh
+eh
+eh
+eh
+eh
+eh
+eh
+wz
+YX
+tH
+sW
+Kd
+Xn
+Wr
+YX
+YX
+Wr
+YX
+YX
+YX
+YX
+Lm
+vp
+EX
+XT
+YX
+"}
+(10,1,1) = {"
+xQ
+Sx
+YB
+Wr
+Wr
+YB
+YB
+Wr
+oc
+Wr
+Wr
+Sx
+YX
+tH
+Di
+Ka
+Xn
+YX
+kj
+Rw
+iB
+ff
+cA
+hT
+YX
+Yc
+dl
+th
+xt
+YX
+"}
+(11,1,1) = {"
+xQ
+Sx
+YB
+Wr
+YB
+YB
+YB
+YB
+Wr
+Wr
+Wr
+ci
+YX
+tH
+dl
+Wr
+Xn
+YX
+Wr
+ff
+iB
+iB
+ff
+ku
+Wr
+Yc
+sW
+yG
+xt
+Wr
+"}
+(12,1,1) = {"
+xQ
+Sx
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Wr
+Wr
+Sx
+YX
+DC
+vT
+JZ
+Eu
+Cj
+ku
+ff
+iB
+ff
+ff
+ku
+YX
+Yc
+uO
+mr
+Xn
+YX
+"}
+(13,1,1) = {"
+xQ
+Sx
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Sx
+YX
+Yc
+rV
+mr
+xt
+qe
+ku
+ff
+iB
+ff
+ff
+ku
+Bk
+xM
+dl
+th
+Xn
+YX
+"}
+(14,1,1) = {"
+xQ
+Sx
+Wr
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Wr
+Sx
+Wr
+Yc
+BB
+Pu
+wN
+qe
+hT
+eC
+iB
+iB
+cA
+hT
+YX
+tH
+sW
+Kd
+Xn
+YX
+"}
+(15,1,1) = {"
+xQ
+Sx
+Wr
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Wr
+Sx
+YX
+Yc
+sW
+Kd
+Xn
+qe
+ku
+ff
+ff
+iB
+Wr
+ku
+YX
+tH
+Di
+Ka
+Xn
+Wr
+"}
+(16,1,1) = {"
+xQ
+Sx
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Wr
+Sx
+YX
+Wr
+Di
+Ka
+gj
+qe
+ku
+ff
+ff
+iB
+iB
+ku
+YX
+tH
+lC
+th
+Xn
+YX
+"}
+(17,1,1) = {"
+xQ
+Sx
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Wr
+Sx
+YX
+Yc
+dl
+th
+Xn
+YX
+ku
+iB
+ff
+ff
+ff
+ku
+YX
+Yc
+GD
+Wr
+Xn
+YX
+"}
+(18,1,1) = {"
+xQ
+Sx
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+YB
+Sx
+YX
+Yc
+Jo
+Kd
+Xn
+YX
+hT
+Rw
+ff
+ff
+cA
+hT
+YX
+Yc
+Di
+Ka
+Xn
+YX
+"}
+(19,1,1) = {"
+xQ
+Sx
+Wr
+YB
+YB
+YB
+YB
+YB
+YB
+Wr
+Wr
+Sx
+YX
+tH
+uO
+Wr
+Xn
+Wr
+ku
+JI
+iB
+ff
+ff
+ku
+Wr
+tH
+lC
+Pu
+Xn
+Wr
+"}
+(20,1,1) = {"
+xQ
+Sx
+YB
+YB
+YB
+YB
+YB
+YB
+oc
+Wr
+oc
+ci
+Bk
+tH
+dl
+th
+Xn
+Bk
+ku
+ff
+Wr
+iB
+Wr
+ku
+YX
+Yc
+sW
+Kd
+Xn
+Bk
+"}
+(21,1,1) = {"
+xQ
+Sx
+Wr
+Wr
+Wr
+Wr
+Wr
+Wr
+YB
+Wr
+Wr
+Sx
+YX
+tH
+Wr
+yG
+xt
+Bk
+ku
+ff
+Wr
+ff
+ff
+ku
+YX
+Yc
+YO
+Ka
+Xn
+Bk
+"}
+(22,1,1) = {"
+xQ
+Ty
+eh
+eh
+eh
+eh
+eh
+eh
+eh
+eh
+eh
+jf
+Bk
+tH
+Di
+mr
+Xn
+Wr
+hT
+zU
+ff
+Wr
+cA
+hT
+Wr
+tH
+lC
+th
+Xn
+Bk
+"}
+(23,1,1) = {"
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+YX
+YX
+Bk
+YX
+YX
+tH
+dl
+Pu
+Xn
+YX
+ku
+Wr
+ff
+ff
+Wr
+Wr
+YX
+tH
+sW
+ts
+xt
+Bk
+"}
+(24,1,1) = {"
+KX
+kV
+xZ
+rb
+mk
+AO
+LY
+uA
+cb
+xV
+Hw
+Hw
+uf
+Zk
+sW
+Kd
+Xn
+YX
+ku
+ff
+Wr
+Wr
+ff
+ku
+Bk
+iH
+Ry
+OR
+eN
+YX
+"}
+(25,1,1) = {"
+KX
+xZ
+xZ
+yv
+XC
+mk
+LY
+uA
+VE
+zu
+th
+dl
+Zo
+th
+uO
+mr
+Xn
+Bk
+Wr
+Wr
+ff
+ff
+Wr
+ku
+Wr
+Yc
+dl
+th
+Xn
+YX
+"}
+(26,1,1) = {"
+KX
+xZ
+PF
+rb
+VD
+BS
+LY
+uA
+JF
+rw
+Ka
+Di
+iV
+Ka
+Zc
+bQ
+Xn
+Bk
+Wr
+eC
+Wr
+Wr
+cA
+hT
+Wr
+Wr
+sW
+Kd
+Xn
+Wr
+"}
+(27,1,1) = {"
+KX
+ub
+xZ
+xF
+RT
+dp
+LY
+uA
+RP
+sE
+sE
+sE
+gn
+ZV
+bQ
+bQ
+Xn
+Bk
+ku
+Wr
+xQ
+xQ
+Wr
+ku
+YX
+Yc
+Di
+mr
+xt
+Bk
+"}
+(28,1,1) = {"
+KX
+Ff
+mk
+xF
+wR
+dp
+my
+KX
+ax
+YX
+dU
+YX
+ax
+Lm
+EX
+Qk
+XT
+YX
+Wr
+xQ
+xQ
+xQ
+xQ
+ku
+Wr
+Wr
+dl
+Wr
+Xn
+YX
+"}
+(29,1,1) = {"
+KX
+UZ
+ff
+xF
+ff
+yW
+mk
+mM
+dU
+dU
+dU
+YX
+YX
+dA
+XN
+sE
+Re
+YX
+ku
+ff
+xQ
+xQ
+ff
+xQ
+xQ
+Yc
+Wr
+Kd
+Wr
+Wr
+"}
+(30,1,1) = {"
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+YX
+YX
+dU
+YX
+Bk
+Bk
+Bk
+Bk
+YX
+YX
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+xQ
+Di
+Wr
+bQ
+YX
+"}
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_tradepost.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
similarity index 67%
rename from _maps/RandomRuins/RockRuins/rockplanet_tradepost.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
index d0b25960b434..7efd9f552188 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_tradepost.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_tradepost.dmm
@@ -4,47 +4,55 @@
/obj/effect/spawner/lootdrop/aimodule_harmless,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"bY" = (
/obj/structure/closet/crate/engineering,
/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/obj/item/stack/sheet/mineral/plasma/five,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"ch" = (
/obj/effect/decal/cleanable/plasma,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"cJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
"cL" = (
/obj/structure/cable{
icon_state = "2-5"
},
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"em" = (
/obj/structure/chair/plastic,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"en" = (
/obj/machinery/power/port_gen/pacman,
/obj/structure/cable,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"fC" = (
/obj/structure/rack,
/obj/item/stack/wrapping_paper,
/obj/effect/spawner/lootdrop/gambling,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"gy" = (
/obj/machinery/suit_storage_unit/mining/eva,
/obj/effect/decal/cleanable/cobweb,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"gA" = (
/obj/effect/decal/cleanable/glass,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"im" = (
/obj/structure/rack,
@@ -52,36 +60,41 @@
/obj/effect/spawner/lootdrop/donkpockets,
/obj/effect/spawner/lootdrop/mafia_outfit,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"ip" = (
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/unpowered)
"iy" = (
/obj/structure/cable,
/obj/structure/statue/sandstone/assistant,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"kf" = (
/obj/structure/ore_box,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning/full,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"kF" = (
/obj/structure/closet/crate/bin,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"kU" = (
-/obj/structure/table/reinforced,
-/obj/item/gun/energy/laser/retro,
+/obj/machinery/computer/helm,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"kW" = (
-/obj/structure/shuttle/engine/propulsion{
- dir = 8
+/obj/machinery/power/shuttle/engine/electric{
+ dir = 4
},
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"mj" = (
/obj/structure/fluff/oldturret,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"mK" = (
/obj/structure/marker_beacon,
@@ -90,20 +103,20 @@
"np" = (
/obj/structure/cable,
/obj/machinery/power/floodlight,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"nw" = (
/obj/effect/decal/cleanable/plasma,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"nO" = (
/obj/structure/barricade/wooden/crude,
/obj/structure/window/fulltile,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"nV" = (
/turf/closed/wall,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"pc" = (
/obj/structure/marker_beacon,
/turf/open/floor/plating,
@@ -111,98 +124,118 @@
"pl" = (
/obj/machinery/vending/snack,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"rJ" = (
-/obj/structure/shuttle/engine/heater{
- dir = 8
+/obj/machinery/power/smes/shuttle/precharged{
+ dir = 4
},
-/turf/closed/wall/mineral/titanium,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/obj/structure/window/reinforced/spawner/west,
+/turf/open/floor/pod/light,
+/area/ruin/unpowered)
"sT" = (
/obj/structure/rack,
/obj/item/stack/wrapping_paper,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"sW" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/gambling,
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"tl" = (
/obj/structure/barricade/wooden/crude,
/obj/structure/window/fulltile,
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"tm" = (
/obj/structure/table/reinforced,
/obj/item/flashlight/lamp/green,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"tp" = (
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"ts" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/ruin/unpowered)
"tU" = (
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/industrial/warning/full,
-/turf/open/floor/plating/asteroid,
+/obj/item/stack/sheet/mineral/plasma/five,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"uc" = (
/obj/machinery/door/airlock/shuttle,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"un" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall/mineral/titanium,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"uL" = (
+/obj/structure/window/fulltile,
+/obj/structure/barricade/wooden/crude,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
"wA" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"wB" = (
/obj/effect/decal/cleanable/garbage,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"wM" = (
/obj/item/bot_assembly/medbot,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"yd" = (
/obj/structure/statue/sandstone/assistant,
/obj/structure/cable{
icon_state = "4-9"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
+"ym" = (
+/turf/open/floor/plating/rust,
+/area/ruin/unpowered)
+"yI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/plastic{
+ dir = 8
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/unpowered)
"ze" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"zq" = (
/obj/machinery/modular_computer/console/preset/civilian,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"zY" = (
/obj/structure/closet/crate,
/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/gun/ballistic/revolver/detective,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Ag" = (
/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating/asteroid,
-/area/overmap_encounter/planetoid/rockplanet/explored)
-"AK" = (
-/obj/structure/closet/crate,
-/obj/effect/turf_decal/industrial/warning/full,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ba" = (
/obj/structure/door_assembly/door_assembly_highsecurity,
@@ -210,24 +243,24 @@
icon_state = "6-8"
},
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"BE" = (
/obj/structure/door_assembly/door_assembly_hatch,
/obj/structure/cable{
icon_state = "1-6"
},
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Cf" = (
/obj/structure/rack,
/obj/item/stack/wrapping_paper,
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Cl" = (
/obj/mecha/working/ripley/cargo,
/obj/effect/turf_decal/industrial/warning/full,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"CC" = (
/obj/effect/decal/cleanable/dirt/dust,
@@ -236,86 +269,116 @@
"De" = (
/turf/template_noop,
/area/template_noop)
+"Eg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/comfy/shuttle{
+ dir = 1
+ },
+/turf/open/floor/pod/light,
+/area/ruin/unpowered)
+"Fc" = (
+/obj/structure/door_assembly/door_assembly_hatch,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
"Ga" = (
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Gg" = (
-/obj/structure/chair/plastic,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Ha" = (
/obj/structure/table/wood/poker,
/obj/item/storage/bag/money/vault,
/turf/open/floor/carpet/red,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Hm" = (
/obj/effect/decal/fakelattice,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"IN" = (
/obj/structure/grille,
-/obj/structure/window/reinforced/fulltile/shuttle,
+/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"IU" = (
/obj/machinery/power/floodlight,
/obj/structure/cable{
icon_state = "0-8"
},
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"IZ" = (
/obj/effect/decal/cleanable/robot_debris,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
+"Jh" = (
+/obj/machinery/power/terminal{
+ dir = 8
+ },
+/turf/open/floor/pod/light,
+/area/ruin/unpowered)
"Lm" = (
/turf/closed/wall/mineral/titanium,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Ln" = (
/turf/open/floor/carpet/red,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"LG" = (
/obj/effect/turf_decal/industrial/warning/full,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
+/area/overmap_encounter/planetoid/rockplanet/explored)
+"LO" = (
+/obj/structure/closet/crate,
+/obj/effect/turf_decal/industrial/warning/full,
+/obj/item/stack/sheet/mineral/plasma/five,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ma" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"MR" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Nl" = (
/obj/effect/decal/cleanable/greenglow,
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"OC" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/pod/light,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"OV" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/plating/rust,
+/area/ruin/unpowered)
"OY" = (
/obj/structure/chair/office{
dir = 8
},
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"OZ" = (
/obj/structure/cable{
icon_state = "4-10"
},
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"PS" = (
/obj/structure/rack,
/obj/effect/decal/cleanable/garbage,
/obj/item/circuitboard/machine/thermomachine,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"Qp" = (
+/obj/machinery/holopad,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
"QD" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/gambling,
@@ -323,7 +386,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/wrench,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
+"Rc" = (
+/obj/structure/chair/plastic{
+ dir = 4
+ },
+/turf/open/floor/plating/rust,
+/area/ruin/unpowered)
"RB" = (
/obj/structure/chair{
dir = 4
@@ -331,56 +400,70 @@
/obj/effect/decal/cleanable/blood/old,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/red,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"RE" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable{
icon_state = "2-9"
},
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Sn" = (
/turf/open/floor/plating,
/area/overmap_encounter/planetoid/rockplanet/explored)
"SE" = (
/obj/effect/decal/cleanable/food/tomato_smudge,
/turf/open/floor/plating/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Tk" = (
/turf/open/floor/plating/rust,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Tl" = (
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"TB" = (
/obj/structure/closet/crate/miningcar,
/obj/effect/turf_decal/industrial/warning/full,
-/turf/open/floor/plating/asteroid,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/obj/item/stack/sheet/mineral/plasma,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
"Ue" = (
/turf/closed/wall/rust,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"VU" = (
/mob/living/simple_animal/pet/cat/kitten,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Xc" = (
/obj/structure/filingcabinet/chestdrawer,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
"Ya" = (
-/turf/open/floor/plating/asteroid,
+/turf/open/floor/plating/asteroid/wasteplanet,
/area/overmap_encounter/planetoid/rockplanet/explored)
+"YH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/plastic,
+/turf/open/floor/plating,
+/area/ruin/unpowered)
"Zq" = (
/obj/structure/table/wood/poker,
/obj/item/stack/sheet/mineral/plasma,
/obj/item/storage/pill_bottle/zoom,
/turf/open/floor/carpet/red,
-/area/overmap_encounter/planetoid/rockplanet/explored)
+/area/ruin/unpowered)
(1,1,1) = {"
+De
+De
+De
+De
+De
Ue
Ue
Ue
@@ -398,6 +481,11 @@ De
De
"}
(2,1,1) = {"
+De
+De
+De
+De
+De
Ue
fC
ch
@@ -415,11 +503,16 @@ mK
De
"}
(3,1,1) = {"
+De
+De
+De
+De
+De
Ue
sT
wB
QD
-Sn
+Gg
tl
wM
Ya
@@ -432,11 +525,16 @@ Lm
De
"}
(4,1,1) = {"
+De
+De
+De
+De
+De
Ue
sW
Ga
Cf
-CC
+OV
tl
Ya
Ya
@@ -449,6 +547,11 @@ Lm
De
"}
(5,1,1) = {"
+Ue
+uL
+uL
+uL
+Ue
nV
PS
Tl
@@ -460,17 +563,22 @@ Ya
Lm
Lm
bY
-tp
+Jh
Lm
Lm
De
"}
(6,1,1) = {"
nV
+cJ
+Rc
+ts
+ym
+nV
Ma
-Sn
-MR
-Tk
+Gg
+cJ
+ym
Ue
np
Ya
@@ -483,11 +591,16 @@ CC
De
"}
(7,1,1) = {"
-Ue
+uL
+YH
+Gg
+Qp
+Gg
+Fc
Gg
VU
-MR
-Sn
+cJ
+Gg
nV
iy
Ya
@@ -500,6 +613,11 @@ Tk
De
"}
(8,1,1) = {"
+uL
+em
+Gg
+OV
+cJ
Ue
em
nw
@@ -511,16 +629,21 @@ Hm
Tk
Lm
kU
-wA
+Eg
Lm
Tk
De
"}
(9,1,1) = {"
+nV
+OV
+yI
+ip
+cJ
Ue
tm
OZ
-MR
+cJ
kF
nV
yd
@@ -534,6 +657,11 @@ Tk
De
"}
(10,1,1) = {"
+nV
+uL
+uL
+uL
+Ue
Ue
Ue
Ba
@@ -551,9 +679,14 @@ CC
De
"}
(11,1,1) = {"
+De
+De
+De
+De
+De
Ue
gy
-Sn
+Gg
RE
en
nV
@@ -568,11 +701,16 @@ pc
De
"}
(12,1,1) = {"
+De
+De
+De
+De
+De
Ue
-MR
+cJ
Ln
RB
-Sn
+Gg
nO
Ya
Ya
@@ -585,40 +723,55 @@ De
De
"}
(13,1,1) = {"
+De
+De
+De
+De
+De
nV
pl
Ha
Zq
-MR
+cJ
nO
gA
Ya
Ya
tU
-AK
-AK
+LO
+LO
TB
Ya
De
"}
(14,1,1) = {"
+De
+De
+De
+De
+De
nV
Xc
-MR
+cJ
OY
-Tk
+ym
Ue
Ya
Nl
Ya
Cl
-AK
+LO
kf
LG
Ag
De
"}
(15,1,1) = {"
+De
+De
+De
+De
+De
nV
nV
nV
diff --git a/_maps/RandomRuins/RockRuins/rockplanet_unhonorable.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm
similarity index 81%
rename from _maps/RandomRuins/RockRuins/rockplanet_unhonorable.dmm
rename to _maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm
index d47a7d9c65c7..f8f61c6fb4de 100644
--- a/_maps/RandomRuins/RockRuins/rockplanet_unhonorable.dmm
+++ b/_maps/RandomRuins/WasteRuins/wasteplanet_unhonorable.dmm
@@ -24,7 +24,7 @@
/area/ruin)
"k" = (
/obj/structure/radioactive/stack,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"l" = (
/obj/structure/table/reinforced,
@@ -36,7 +36,7 @@
/area/ruin)
"m" = (
/obj/effect/radiation,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"n" = (
/obj/item/ammo_box/magazine/aknt,
@@ -46,7 +46,7 @@
/area/ruin)
"o" = (
/obj/structure/fence/door,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"p" = (
/obj/item/stack/sheet/mineral/uranium/five,
@@ -66,7 +66,7 @@
/obj/structure/fence/corner{
dir = 10
},
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"t" = (
/obj/item/stack/sheet/mineral/uranium/five,
@@ -98,14 +98,20 @@
/area/ruin)
"A" = (
/obj/item/grenade/frag,
+/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating/rust,
/area/ruin)
"B" = (
/turf/closed/wall/r_wall/rust,
/area/ruin)
+"C" = (
+/obj/item/ammo_box/magazine/aknt,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating/rust,
+/area/ruin)
"D" = (
/obj/structure/fence,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"F" = (
/turf/closed/wall/r_wall,
@@ -129,14 +135,18 @@
/area/ruin)
"K" = (
/obj/effect/mine/shrapnel,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
+/area/ruin)
+"L" = (
+/obj/structure/sign/warning/radiation,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"M" = (
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"O" = (
/obj/structure/marker_beacon,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"P" = (
/obj/effect/gibspawner,
@@ -145,7 +155,7 @@
/area/ruin)
"Q" = (
/obj/structure/fence/corner,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"R" = (
/obj/effect/decal/remains/human,
@@ -154,24 +164,24 @@
/obj/item/clothing/head/radiation{
pixel_y = 8
},
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"S" = (
/obj/structure/sign/warning/longtermwaste{
pixel_y = 32
},
/obj/structure/radioactive,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"U" = (
/obj/structure/radioactive,
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"W" = (
/obj/structure/fence{
dir = 8
},
-/turf/open/floor/plating/asteroid/lowpressure,
+/turf/open/floor/plating/asteroid/rockplanet/lit,
/area/ruin)
"Y" = (
/obj/item/ammo_box/magazine/aknt,
@@ -264,7 +274,7 @@ F
y
n
p
-b
+e
r
B
F
@@ -293,7 +303,7 @@ M
M
M
k
-z
+L
O
"}
(7,1,1) = {"
@@ -302,7 +312,7 @@ B
l
Y
i
-Y
+C
Z
v
M
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index 49856485e293..ac4905b6dfa5 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -202,7 +202,8 @@
#define KITCHEN_COLDROOM_ATMOS "o2=33;n2=124;TEMP=193.15"
/// used in the holodeck burn test program
#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370"
-
+/// used in rockplanet
+#define ROCKPLANET_DEFAULT_ATMOS "co2=95;n2=3;TEMP=210.15"
//ATMOSPHERICS DEPARTMENT GAS TANK TURFS
#define ATMOS_TANK_N2O "n2o=6000;TEMP=293.15"
#define ATMOS_TANK_CO2 "co2=50000;TEMP=293.15"
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 740830120829..56734bd2bc9d 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -41,6 +41,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define RAD_PROTECT_CONTENTS_1 (1 << 17)
/// should this object be allowed to be contaminated
#define RAD_NO_CONTAMINATE_1 (1 << 18)
+///Use when this shouldn't be obscured by large icons, like trees.
+#define SHOW_BEHIND_LARGE_ICONS_1 (1<<12)
/// Should we use the initial icon for display? Mostly used by overlay only objects
#define HTML_USE_INITAL_ICON_1 (1<<20)
diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm
index f99841a4ea95..189ac6fd0b53 100644
--- a/code/__DEFINES/footsteps.dm
+++ b/code/__DEFINES/footsteps.dm
@@ -8,6 +8,9 @@
#define FOOTSTEP_LAVA "lava"
#define FOOTSTEP_MEAT "meat"
#define FOOTSTEP_CATWALK "catwalk"
+#define FOOTSTEP_ICE "ice"
+#define FOOTSTEP_SNOW "snow"
+#define FOOTSTEP_CONCRETE "conc"
//barefoot sounds
#define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot"
#define FOOTSTEP_WOOD_CLAW "woodclaw"
@@ -88,7 +91,25 @@ GLOBAL_LIST_INIT(footstep, list(
'sound/effects/footstep/catwalk2.ogg',
'sound/effects/footstep/catwalk3.ogg',
'sound/effects/footstep/catwalk4.ogg',
- 'sound/effects/footstep/catwalk5.ogg'), 100, 1)
+ 'sound/effects/footstep/catwalk5.ogg'), 100, 1),
+ FOOTSTEP_SNOW = list(list(
+ 'sound/effects/footstep/snow1.ogg',
+ 'sound/effects/footstep/snow2.ogg',
+ 'sound/effects/footstep/snow3.ogg',
+ 'sound/effects/footstep/snow4.ogg',
+ 'sound/effects/footstep/snow5.ogg'), 100, 1),
+ FOOTSTEP_ICE = list(list(
+ 'sound/effects/footstep/ice1.ogg',
+ 'sound/effects/footstep/ice2.ogg',
+ 'sound/effects/footstep/ice3.ogg',
+ 'sound/effects/footstep/ice4.ogg',
+ 'sound/effects/footstep/ice5.ogg'), 60, 1),
+ FOOTSTEP_CONCRETE = list(list(
+ 'sound/effects/footstep/concrete1.ogg',
+ 'sound/effects/footstep/concrete2.ogg',
+ 'sound/effects/footstep/concrete3.ogg',
+ 'sound/effects/footstep/concrete4.ogg',
+ 'sound/effects/footstep/concrete5.ogg'), 100, 1),
))
//bare footsteps lists
GLOBAL_LIST_INIT(barefootstep, list(
@@ -132,6 +153,24 @@ GLOBAL_LIST_INIT(barefootstep, list(
'sound/effects/footstep/lava3.ogg'), 100, 0),
FOOTSTEP_MEAT = list(list(
'sound/effects/meatslap.ogg'), 100, 0),
+ FOOTSTEP_SNOW = list(list(
+ 'sound/effects/footstep/snow1.ogg',
+ 'sound/effects/footstep/snow2.ogg',
+ 'sound/effects/footstep/snow3.ogg',
+ 'sound/effects/footstep/snow4.ogg',
+ 'sound/effects/footstep/snow5.ogg'), 100, 1),
+ FOOTSTEP_ICE = list(list(
+ 'sound/effects/footstep/ice1.ogg',
+ 'sound/effects/footstep/ice2.ogg',
+ 'sound/effects/footstep/ice3.ogg',
+ 'sound/effects/footstep/ice4.ogg',
+ 'sound/effects/footstep/ice5.ogg'), 60, 1),
+ FOOTSTEP_CONCRETE = list(list(
+ 'sound/effects/footstep/concrete1.ogg',
+ 'sound/effects/footstep/concrete2.ogg',
+ 'sound/effects/footstep/concrete3.ogg',
+ 'sound/effects/footstep/concrete4.ogg',
+ 'sound/effects/footstep/concrete5.ogg'), 100, 1),
))
//claw footsteps lists
@@ -176,6 +215,24 @@ GLOBAL_LIST_INIT(clawfootstep, list(
'sound/effects/footstep/lava3.ogg'), 100, 0),
FOOTSTEP_MEAT = list(list(
'sound/effects/meatslap.ogg'), 100, 0),
+ FOOTSTEP_SNOW = list(list(
+ 'sound/effects/footstep/snow1.ogg',
+ 'sound/effects/footstep/snow2.ogg',
+ 'sound/effects/footstep/snow3.ogg',
+ 'sound/effects/footstep/snow4.ogg',
+ 'sound/effects/footstep/snow5.ogg'), 100, 1),
+ FOOTSTEP_ICE = list(list(
+ 'sound/effects/footstep/ice1.ogg',
+ 'sound/effects/footstep/ice2.ogg',
+ 'sound/effects/footstep/ice3.ogg',
+ 'sound/effects/footstep/ice4.ogg',
+ 'sound/effects/footstep/ice5.ogg'), 60, 1),
+ FOOTSTEP_CONCRETE = list(list(
+ 'sound/effects/footstep/concrete1.ogg',
+ 'sound/effects/footstep/concrete2.ogg',
+ 'sound/effects/footstep/concrete3.ogg',
+ 'sound/effects/footstep/concrete4.ogg',
+ 'sound/effects/footstep/concrete5.ogg'), 100, 1),
))
//heavy footsteps list
diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm
index 9e453da87336..1ef40d9a4697 100644
--- a/code/__DEFINES/maps.dm
+++ b/code/__DEFINES/maps.dm
@@ -37,9 +37,10 @@ require only minor tweaks.
#define ZTRAIT_LAVA_RUINS "Lava Ruins"
#define ZTRAIT_ICE_RUINS "Ice Ruins"
#define ZTRAIT_ICE_RUINS_UNDERGROUND "Ice Ruins Underground"
-#define ZTRAIT_SAND_RUINS "Sand Ruins" //WS edit - Whitesands
+#define ZTRAIT_SAND_RUINS "Sand Ruins"
#define ZTRAIT_JUNGLE_RUINS "Jungle Ruins"
#define ZTRAIT_ROCK_RUINS "Rock Ruins"
+#define ZTRAIT_WASTE_RUINS "Waste Ruins"
// boolean - weather types that occur on the level
#define ZTRAIT_SANDSTORM "Weather_Sandstorm"
@@ -125,19 +126,24 @@ require only minor tweaks.
///Map generation defines
-#define PERLIN_LAYER_HEIGHT "perlin_height"
-#define PERLIN_LAYER_HUMIDITY "perlin_humidity"
-#define PERLIN_LAYER_HEAT "perlin_heat"
-
-#define BIOME_LOW_HEAT "low_heat"
-#define BIOME_LOWMEDIUM_HEAT "lowmedium_heat"
-#define BIOME_HIGHMEDIUM_HEAT "highmedium_heat"
-#define BIOME_HIGH_HEAT "high_heat"
-
-#define BIOME_LOW_HUMIDITY "low_humidity"
-#define BIOME_LOWMEDIUM_HUMIDITY "lowmedium_humidity"
-#define BIOME_HIGHMEDIUM_HUMIDITY "highmedium_humidity"
-#define BIOME_HIGH_HUMIDITY "high_humidity"
+#define BIOME_LOWEST_HUMIDITY "biome_lowest_humidity"
+#define BIOME_LOW_HUMIDITY "biome_low_humidity"
+#define BIOME_MEDIUM_HUMIDITY "biome_medium_humidity"
+#define BIOME_HIGH_HUMIDITY "biome_high_humidity"
+#define BIOME_HIGHEST_HUMIDITY "biome_highest_humidity"
+
+#define BIOME_COLDEST "coldest"
+#define BIOME_COLD "cold"
+#define BIOME_WARM "warm"
+#define BIOME_TEMPERATE "perfect"
+#define BIOME_HOT "hot"
+#define BIOME_HOTTEST "hottest"
+
+#define BIOME_COLDEST_CAVE "coldest_cave"
+#define BIOME_COLD_CAVE "cold_cave"
+#define BIOME_WARM_CAVE "warm_cave"
+#define BIOME_HOT_CAVE "hot_cave"
+
#define ALLOCATION_FREE 1
#define ALLOCATION_QUADRANT 2
diff --git a/code/__DEFINES/overmap.dm b/code/__DEFINES/overmap.dm
index 55f7e9ce68a8..dc4b53a2b30e 100644
--- a/code/__DEFINES/overmap.dm
+++ b/code/__DEFINES/overmap.dm
@@ -20,15 +20,19 @@
#define MAX_OVERMAP_PLACEMENT_ATTEMPTS 5
//Possible dynamic encounter types
-#define DYNAMIC_WORLD_LAVA "lava"
+#define DYNAMIC_WORLD_LAVA "lava" //base planets
#define DYNAMIC_WORLD_ICE "ice"
#define DYNAMIC_WORLD_SAND "sand"
#define DYNAMIC_WORLD_JUNGLE "jungle"
-#define DYNAMIC_WORLD_ROCKPLANET "rockplanet"
-#define DYNAMIC_WORLD_REEBE "reebe"
+
+#define DYNAMIC_WORLD_ROCKPLANET "rockplanet" //wacky planets
+#define DYNAMIC_WORLD_BEACHPLANET "beachplanet"
+#define DYNAMIC_WORLD_WASTEPLANET "wasteplanet"
+
+#define DYNAMIC_WORLD_REEBE "reebe" //celestial bodies
#define DYNAMIC_WORLD_ASTEROID "asteroid"
#define DYNAMIC_WORLD_SPACERUIN "space"
-#define DYNAMIC_WORLD_LIST_ALL list(DYNAMIC_WORLD_LAVA, DYNAMIC_WORLD_ICE, DYNAMIC_WORLD_SAND, DYNAMIC_WORLD_JUNGLE, DYNAMIC_WORLD_ROCKPLANET, DYNAMIC_WORLD_REEBE, DYNAMIC_WORLD_ASTEROID, DYNAMIC_WORLD_SPACERUIN)
+#define DYNAMIC_WORLD_LIST_ALL list(DYNAMIC_WORLD_LAVA, DYNAMIC_WORLD_ICE, DYNAMIC_WORLD_SAND, DYNAMIC_WORLD_JUNGLE, DYNAMIC_WORLD_ROCKPLANET, DYNAMIC_WORLD_REEBE, DYNAMIC_WORLD_ASTEROID, DYNAMIC_WORLD_SPACERUIN, DYNAMIC_WORLD_BEACHPLANET, DYNAMIC_WORLD_WASTEPLANET)
//Possible ship states
#define OVERMAP_SHIP_IDLE "idle"
diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm
index f79f2084a1fd..a9ce0a05cbbe 100644
--- a/code/__DEFINES/sound.dm
+++ b/code/__DEFINES/sound.dm
@@ -118,6 +118,11 @@
'sound/hallucinations/turn_around2.ogg', 'sound/hallucinations/veryfar_noise.ogg', \
'sound/hallucinations/wail.ogg')
+#define BEACH list( \
+ 'sound/ambience/shore.ogg', 'sound/ambience/seag1.ogg','sound/ambience/seag2.ogg','sound/ambience/seag2.ogg', \
+ 'sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg')
+
+
#define INTERACTION_SOUND_RANGE_MODIFIER -3
#define EQUIP_SOUND_VOLUME 30
#define PICKUP_SOUND_VOLUME 15
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 7bf6b53e4fd3..c0812bca205a 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -109,6 +109,7 @@ DEFINE_BITFIELD(flags_1, list(
"RAD_NO_CONTAMINATE_1" = RAD_NO_CONTAMINATE_1,
"RAD_PROTECT_CONTENTS_1" = RAD_PROTECT_CONTENTS_1,
"SHOCKED_1" = SHOCKED_1,
+ "SHOW_BEHIND_LARGE_ICONS_1" = SHOW_BEHIND_LARGE_ICONS_1,
))
DEFINE_BITFIELD(flags_ricochet, list(
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index d3d71e56ca43..ac7298dc100d 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -426,3 +426,8 @@
/datum/config_entry/number/overmap_size
config_entry_value = 30
min_val = 1
+
+/datum/config_entry/number/overmap_encounter_size
+ max_val = 255
+ config_entry_value = 127
+ min_val = 127
diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm
index 8ce9600fc723..833efea74bbb 100644
--- a/code/controllers/subsystem/mapping.dm
+++ b/code/controllers/subsystem/mapping.dm
@@ -15,6 +15,8 @@ SUBSYSTEM_DEF(mapping)
var/list/sand_ruins_templates = list()
var/list/jungle_ruins_templates = list()
var/list/rock_ruins_templates = list()
+ var/list/beach_ruins_templates = list()
+ var/list/waste_ruins_templates = list()
var/list/yellow_ruins_templates = list()
var/list/maplist
@@ -86,6 +88,8 @@ SUBSYSTEM_DEF(mapping)
space_ruins_templates = SSmapping.space_ruins_templates
lava_ruins_templates = SSmapping.lava_ruins_templates
rock_ruins_templates = SSmapping.rock_ruins_templates
+ beach_ruins_templates = SSmapping.beach_ruins_templates
+ waste_ruins_templates = SSmapping.waste_ruins_templates
sand_ruins_templates = SSmapping.sand_ruins_templates
jungle_ruins_templates = SSmapping.jungle_ruins_templates
ice_ruins_templates = SSmapping.ice_ruins_templates
@@ -122,6 +126,7 @@ SUBSYSTEM_DEF(mapping)
banned += generateMapList("[global.config.directory]/sandruinblacklist.txt")
banned += generateMapList("[global.config.directory]/jungleruinblacklist.txt")
banned += generateMapList("[global.config.directory]/rockruinblacklist.txt")
+ banned += generateMapList("[global.config.directory]/wasteruinblacklist.txt")
for(var/item in sortList(subtypesof(/datum/map_template/ruin), /proc/cmp_ruincost_priority))
var/datum/map_template/ruin/ruin_type = item
@@ -148,6 +153,10 @@ SUBSYSTEM_DEF(mapping)
space_ruins_templates[R.name] = R
else if(istype(R, /datum/map_template/ruin/rockplanet))
rock_ruins_templates[R.name] = R
+ else if(istype(R, /datum/map_template/ruin/beachplanet))
+ beach_ruins_templates[R.name] = R
+ else if(istype(R, /datum/map_template/ruin/wasteplanet))
+ waste_ruins_templates[R.name] = R
else if(istype(R, /datum/map_template/ruin/reebe))
yellow_ruins_templates[R.name] = R
diff --git a/code/controllers/subsystem/overmap.dm b/code/controllers/subsystem/overmap.dm
index 211380def2e9..82956e194a9d 100644
--- a/code/controllers/subsystem/overmap.dm
+++ b/code/controllers/subsystem/overmap.dm
@@ -177,7 +177,7 @@ SUBSYSTEM_DEF(overmap)
*/
/datum/controller/subsystem/overmap/proc/spawn_outpost()
var/list/S = get_unused_overmap_square_in_radius(rand(3, round(size/5)))
- new /datum/overmap/outpost(S)
+ new /datum/overmap/dynamic/outpost(S)
return
/datum/controller/subsystem/overmap/proc/spawn_initial_ships()
@@ -210,71 +210,37 @@ SUBSYSTEM_DEF(overmap)
* * target - The ruin to spawn, if any
* * ruin_type - The ruin to spawn. Don't pass this argument if you want it to randomly select based on planet type.
*/
-/datum/controller/subsystem/overmap/proc/spawn_dynamic_encounter(planet_type, ruin = TRUE, ignore_cooldown = FALSE, datum/map_template/ruin/ruin_type)
+/datum/controller/subsystem/overmap/proc/spawn_dynamic_encounter(datum/overmap/dynamic/dynamic_datum, ruin = TRUE, ignore_cooldown = FALSE, datum/map_template/ruin/ruin_type)
log_shuttle("SSOVERMAP: SPAWNING DYNAMIC ENCOUNTER STARTED")
- var/list/ruin_list
+ var/list/ruin_list = dynamic_datum.ruin_list
var/datum/map_generator/mapgen
- var/area/target_area
- var/turf/surface = /turf/open/space
- var/datum/weather_controller/weather_controller_type
- if(planet_type)
- switch(planet_type)
- if(DYNAMIC_WORLD_LAVA)
- ruin_list = SSmapping.lava_ruins_templates
- mapgen = new /datum/map_generator/cave_generator/lavaland
- target_area = /area/overmap_encounter/planetoid/lava
- surface = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
- weather_controller_type = /datum/weather_controller/lavaland
- if(DYNAMIC_WORLD_ICE)
- ruin_list = SSmapping.ice_ruins_templates
- mapgen = new /datum/map_generator/cave_generator/icemoon
- target_area = /area/overmap_encounter/planetoid/ice
- surface = /turf/open/floor/plating/asteroid/snow/icemoon
- weather_controller_type = /datum/weather_controller/snow_planet
- if(DYNAMIC_WORLD_SAND)
- ruin_list = SSmapping.sand_ruins_templates
- mapgen = new /datum/map_generator/cave_generator/whitesands
- target_area = /area/overmap_encounter/planetoid/sand
- surface = /turf/open/floor/plating/asteroid/whitesands
- weather_controller_type = /datum/weather_controller/desert
- if(DYNAMIC_WORLD_JUNGLE)
- ruin_list = SSmapping.jungle_ruins_templates
- mapgen = new /datum/map_generator/jungle_generator
- target_area = /area/overmap_encounter/planetoid/jungle
- surface = /turf/open/floor/plating/dirt/jungle
- weather_controller_type = /datum/weather_controller/lush
- if(DYNAMIC_WORLD_ASTEROID)
- ruin_list = null
- mapgen = new /datum/map_generator/cave_generator/asteroid
- if(DYNAMIC_WORLD_ROCKPLANET)
- ruin_list = SSmapping.rock_ruins_templates
- mapgen = new /datum/map_generator/cave_generator/rockplanet
- target_area = /area/overmap_encounter/planetoid/rockplanet
- surface = /turf/open/floor/plating/asteroid
- weather_controller_type = /datum/weather_controller/chlorine //let's go??
- if(DYNAMIC_WORLD_REEBE)
- ruin_list = SSmapping.yellow_ruins_templates
- mapgen = new /datum/map_generator/cave_generator/reebe
- target_area = /area/overmap_encounter/planetoid/reebe
- surface = /turf/open/chasm/reebe_void
- if(DYNAMIC_WORLD_SPACERUIN)
- ruin_list = SSmapping.space_ruins_templates
+ var/area/target_area = dynamic_datum.target_area
+ var/turf/surface = dynamic_datum.surface
+ var/datum/weather_controller/weather_controller_type = dynamic_datum.weather_controller_type
+ ///A planet template that contains a list of biomes to use
+ var/datum/planet/planet_template = dynamic_datum.planet_template
+
+ if(!dynamic_datum)
+ CRASH("spawn_dynamic_encounter called without any datum to spawn!")
if(ruin && ruin_list && !ruin_type)
ruin_type = ruin_list[pick(ruin_list)]
if(ispath(ruin_type))
ruin_type = new ruin_type
- var/height = QUADRANT_MAP_SIZE
- var/width = QUADRANT_MAP_SIZE
+ var/height = dynamic_datum.vlevel_height
+ var/width = dynamic_datum.vlevel_width
var/encounter_name = "Dynamic Overmap Encounter"
+ if(dynamic_datum.planet_name)
+ encounter_name = dynamic_datum.planet_name
var/datum/map_zone/mapzone = SSmapping.create_map_zone(encounter_name)
var/datum/virtual_level/vlevel = SSmapping.create_virtual_level(encounter_name, list(ZTRAIT_MINING = TRUE), mapzone, width, height, ALLOCATION_QUADRANT, QUADRANT_MAP_SIZE)
vlevel.reserve_margin(QUADRANT_SIZE_BORDER)
- if(mapgen) /// If we have a map generator, don't ChangeTurf's in fill_in. Just to ChangeTurf them once again.
+ if(dynamic_datum.mapgen) /// If we have a map generator, don't ChangeTurf's in fill_in. Just to ChangeTurf them once again.
+ mapgen = new dynamic_datum.mapgen
surface = null
vlevel.fill_in(surface, target_area)
@@ -291,7 +257,11 @@ SUBSYSTEM_DEF(overmap)
if(mapgen) //If what is going on is what I think it is, this is going to need to return some sort of promise to await.
log_shuttle("SSOVERMAP: START_DYN_E: RUNNING MAPGEN REF [REF(mapgen)] FOR VLEV [vlevel.id] OF TYPE [mapgen.type]")
- mapgen.generate_terrain(vlevel.get_unreserved_block())
+ if (istype(mapgen, /datum/map_generator/planet_generator) && !isnull(planet_template))
+ planet_template = new planet_template
+ mapgen.generate_terrain(vlevel.get_unreserved_block(), planet_template)
+ else
+ mapgen.generate_terrain(vlevel.get_unreserved_block())
log_shuttle("SSOVERMAP: START_DYN_E: MAPGEN REF [REF(mapgen)] RETURNED FOR VLEV [vlevel.id] OF TYPE [mapgen.type]. IT MAY NOT BE FINISHED YET.")
if(weather_controller_type)
diff --git a/code/datums/atmosphere/planetary.dm b/code/datums/atmosphere/planetary.dm
index ad8eadb42c3d..e79df39ae467 100644
--- a/code/datums/atmosphere/planetary.dm
+++ b/code/datums/atmosphere/planetary.dm
@@ -21,8 +21,8 @@
minimum_pressure = WARNING_LOW_PRESSURE + 10
maximum_pressure = LAVALAND_EQUIPMENT_EFFECT_PRESSURE - 1
- minimum_temp = HUMAN_BODYTEMP_COLD_DAMAGE_LIMIT + 1
- maximum_temp = 350
+ minimum_temp = T20C + 80
+ maximum_temp = T20C + 120
/datum/atmosphere/icemoon
id = ICEMOON_DEFAULT_ATMOS
diff --git a/code/datums/components/largeobjecttransparency.dm b/code/datums/components/largeobjecttransparency.dm
new file mode 100644
index 000000000000..8de09c7058d0
--- /dev/null
+++ b/code/datums/components/largeobjecttransparency.dm
@@ -0,0 +1,111 @@
+///Makes large icons partially see through if high priority atoms are behind them.
+/datum/component/largetransparency
+ //Can be positive or negative. Determines how far away from parent the first registered turf is.
+ var/x_offset
+ var/y_offset
+ //Has to be positive or 0.
+ var/x_size
+ var/y_size
+ //The alpha values this switches in between.
+ var/initial_alpha
+ var/target_alpha
+ //if this is supposed to prevent clicks if it's transparent.
+ var/toggle_click
+ var/list/registered_turfs
+ var/amounthidden = 0
+
+/datum/component/largetransparency/Initialize(_x_offset = 0, _y_offset = 1, _x_size = 0, _y_size = 1, _initial_alpha = null, _target_alpha = 140, _toggle_click = TRUE)
+ if(!isatom(parent))
+ return COMPONENT_INCOMPATIBLE
+ x_offset = _x_offset
+ y_offset = _y_offset
+ x_size = _x_size
+ y_size = _y_size
+ if(isnull(_initial_alpha))
+ var/atom/at = parent
+ initial_alpha = at.alpha
+ else
+ initial_alpha = _initial_alpha
+ target_alpha = _target_alpha
+ toggle_click = _toggle_click
+ registered_turfs = list()
+
+
+/datum/component/largetransparency/Destroy()
+ registered_turfs.Cut()
+ return ..()
+
+/datum/component/largetransparency/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/on_move)
+ register_with_turfs()
+
+/datum/component/largetransparency/UnregisterFromParent()
+ UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
+ unregister_with_turfs()
+
+/datum/component/largetransparency/proc/register_with_turfs()
+ var/turf/current_tu = get_turf(parent)
+ if(!current_tu)
+ return
+ var/turf/lowleft_tu = locate(clamp(current_tu.x + x_offset, 0, world.maxx), clamp(current_tu.y + y_offset, 0, world.maxy), current_tu.z)
+ var/turf/upright_tu = locate(min(lowleft_tu.x + x_size, world.maxx), min(lowleft_tu.y + y_size, world.maxy), current_tu.z)
+ registered_turfs = block(lowleft_tu, upright_tu) //small problems with z level edges but nothing gamebreaking.
+ //register the signals
+ for(var/regist_tu in registered_turfs)
+ if(!regist_tu)
+ continue
+ RegisterSignal(regist_tu, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_CREATED), .proc/object_enter)
+ RegisterSignal(regist_tu, COMSIG_ATOM_EXITED, .proc/object_leave)
+ RegisterSignal(regist_tu, COMSIG_TURF_CHANGE, .proc/on_turf_change)
+ for(var/thing in regist_tu)
+ var/atom/check_atom = thing
+ if(!(check_atom.flags_1 & SHOW_BEHIND_LARGE_ICONS_1))
+ continue
+ amounthidden++
+ if(amounthidden)
+ reduce_alpha()
+
+/datum/component/largetransparency/proc/unregister_with_turfs()
+ var/list/signal_list = list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_EXITED, COMSIG_TURF_CHANGE, COMSIG_ATOM_CREATED)
+ for(var/regist_tu in registered_turfs)
+ UnregisterSignal(regist_tu, signal_list)
+ registered_turfs.Cut()
+
+/datum/component/largetransparency/proc/on_move()
+ SIGNAL_HANDLER
+ amounthidden = 0
+ restore_alpha()
+ unregister_with_turfs()
+ register_with_turfs()
+
+/datum/component/largetransparency/proc/on_turf_change()
+ SIGNAL_HANDLER
+ addtimer(CALLBACK(src, .proc/on_move), 1, TIMER_UNIQUE|TIMER_OVERRIDE) //*pain
+
+/datum/component/largetransparency/proc/object_enter(datum/source, atom/enterer)
+ SIGNAL_HANDLER
+ if(!(enterer.flags_1 & SHOW_BEHIND_LARGE_ICONS_1))
+ return
+ if(!amounthidden)
+ reduce_alpha()
+ amounthidden++
+
+/datum/component/largetransparency/proc/object_leave(datum/source, atom/leaver, direction)
+ SIGNAL_HANDLER
+ if(!(leaver.flags_1 & SHOW_BEHIND_LARGE_ICONS_1))
+ return
+ amounthidden = max(0, amounthidden - 1)
+ if(!amounthidden)
+ restore_alpha()
+
+/datum/component/largetransparency/proc/reduce_alpha()
+ var/atom/par_atom = parent
+ par_atom.alpha = target_alpha
+ if(toggle_click)
+ par_atom.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
+/datum/component/largetransparency/proc/restore_alpha()
+ var/atom/par_atom = parent
+ par_atom.alpha = initial_alpha
+ if(toggle_click)
+ par_atom.mouse_opacity = MOUSE_OPACITY_ICON
diff --git a/code/datums/looping_sounds/weather.dm b/code/datums/looping_sounds/weather.dm
index 449928168426..4398e7d5b1b2 100644
--- a/code/datums/looping_sounds/weather.dm
+++ b/code/datums/looping_sounds/weather.dm
@@ -8,7 +8,7 @@
start_sound = 'sound/weather/ashstorm/outside/active_start.ogg'
start_length = 130
end_sound = 'sound/weather/ashstorm/outside/active_end.ogg'
- volume = 20
+ volume = 40
/datum/looping_sound/active_inside_ashstorm
mid_sounds = list(
diff --git a/code/datums/mapgen/BeachGenerator.dm b/code/datums/mapgen/BeachGenerator.dm
new file mode 100644
index 000000000000..3d9ccd139cff
--- /dev/null
+++ b/code/datums/mapgen/BeachGenerator.dm
@@ -0,0 +1,3 @@
+/datum/map_generator/planet_generator/beach
+ mountain_height = 0.95
+ perlin_zoom = 75
diff --git a/code/datums/mapgen/CaveGenerator.dm b/code/datums/mapgen/Cavegens/CaveGenerator.dm
similarity index 100%
rename from code/datums/mapgen/CaveGenerator.dm
rename to code/datums/mapgen/Cavegens/CaveGenerator.dm
diff --git a/code/datums/mapgen/Cavegens/RockplanetCaves.dm b/code/datums/mapgen/Cavegens/RockplanetCaves.dm
index 52f2824da6ed..3e52bfd3a5ad 100644
--- a/code/datums/mapgen/Cavegens/RockplanetCaves.dm
+++ b/code/datums/mapgen/Cavegens/RockplanetCaves.dm
@@ -1,139 +1,31 @@
/datum/map_generator/cave_generator/rockplanet
- open_turf_types = list(/turf/open/floor/plating/asteroid = 50,
- /turf/open/floor/plating/rust/rockplanet = 10,
- /turf/open/floor/plating/rockplanet = 5)
+ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet = 5,
+ /turf/open/floor/plating/asteroid/rockplanet/cracked = 1)
- closed_turf_types = list(/turf/closed/mineral/random/asteroid/rockplanet = 45,
- /turf/closed/wall/rust = 10,)
+ closed_turf_types = list(/turf/closed/mineral/random/asteroid/rockplanet = 1)
mob_spawn_chance = 2
flora_spawn_chance = 5
+ mob_spawn_chance = 3
+
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/netherworld/asteroid = 30,
+ /mob/living/simple_animal/hostile/asteroid/fugu/asteroid = 30,
+ /mob/living/simple_animal/hostile/netherworld/migo/asteroid = 20, //mariuce
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet = 30,
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 20,
+ )
- mob_spawn_list = list(
- //'regular' fauna, not too difficult
- /mob/living/simple_animal/hostile/netherworld/asteroid = 50,
- /mob/living/simple_animal/hostile/asteroid/fugu/asteroid = 50,
- /mob/living/simple_animal/hostile/netherworld/migo/asteroid = 40, //mariuce
- //crystal mobs, very difficult
- /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal = 1,
- /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/forgotten = 1,
- /mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal = 1,
- //bots, are hostile
- /mob/living/simple_animal/bot/firebot/rockplanet = 15,
- /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
- /mob/living/simple_animal/hostile/abandoned_minebot = 15,
- /mob/living/simple_animal/bot/floorbot/rockplanet = 15)
+ feature_spawn_list = null
flora_spawn_list = list(
- /obj/structure/mecha_wreckage/ripley = 15,
- /obj/structure/mecha_wreckage/ripley/firefighter = 9,
- /obj/structure/mecha_wreckage/ripley/mkii = 9,
- /obj/structure/girder = 90,
- /obj/structure/reagent_dispensers/fueltank = 30,
- /obj/item/stack/cable_coil/cut = 30,
- /obj/effect/decal/cleanable/greenglow = 60,
- /obj/effect/decal/cleanable/glass = 30,
- /obj/structure/closet/crate/secure/loot = 3,
- /obj/machinery/portable_atmospherics/canister/toxins = 3,
- /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
- /obj/structure/radioactive = 6,
- /obj/structure/radioactive/stack = 6,
- /obj/structure/radioactive/waste = 6,
-
- /obj/structure/salvageable/machine = 20,
- /obj/structure/salvageable/autolathe = 15,
- /obj/structure/salvageable/computer = 10,
- /obj/structure/salvageable/protolathe = 10,
- /obj/structure/salvageable/circuit_imprinter = 8,
- /obj/structure/salvageable/destructive_analyzer = 8,
- /obj/structure/salvageable/server = 8,
+ /obj/structure/flora/rock = 3,
+ /obj/structure/flora/tree/cactus = 4,
+ /obj/structure/flora/ash/cacti = 1,
)
- feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/effect/mine/shrapnel/human_only = 1)
-
- initial_closed_chance = 45
+ feature_spawn_chance = 0
+ initial_closed_chance = 30
smoothing_iterations = 50
birth_limit = 4
death_limit = 3
-
-/turf/closed/mineral/random/asteroid/rockplanet
- name = "iron rock"
- icon = 'icons/turf/mining.dmi'
- icon_state = "redrock"
- smooth_icon = 'icons/turf/walls/red_wall.dmi'
- base_icon_state = "red_wall"
- initial_gas_mix = OPENTURF_DEFAULT_ATMOS
- turf_type = /turf/open/floor/plating/asteroid
- mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 7, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 5,
- /obj/item/stack/ore/silver = 7, /obj/item/stack/ore/plasma = 15, /obj/item/stack/ore/iron = 55, /obj/item/stack/ore/titanium = 6,
- /turf/closed/mineral/gibtonite/rockplanet = 4, /obj/item/stack/ore/bluespace_crystal = 1)
- mineralChance = 30
-
-/turf/closed/mineral/gibtonite/rockplanet
- name = "iron rock"
- icon = 'icons/turf/mining.dmi'
- icon_state = "redrock"
- smooth_icon = 'icons/turf/walls/red_wall.dmi'
- base_icon_state = "red_wall"
-
-
-/turf/open/floor/plating/rockplanet
- baseturfs = /turf/open/floor/plating/asteroid
-
-/turf/open/floor/plating/rust/rockplanet
- baseturfs = /turf/open/floor/plating/asteroid
-
-//CUSTOM MOB
-/mob/living/simple_animal/hostile/abandoned_minebot
- name = "\improper Abandoned minebot"
- desc = "The instructions printed on the side are faded, and the only thing that remains is mechanical bloodlust."
- gender = NEUTER
- icon = 'icons/mob/aibots.dmi'
- icon_state = "mining_drone"
- icon_living = "mining_drone"
- status_flags = CANSTUN|CANKNOCKDOWN|CANPUSH
- mouse_opacity = MOUSE_OPACITY_ICON
- a_intent = INTENT_HARM
- atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
- minbodytemp = 0
- move_to_delay = 10
- health = 70
- maxHealth = 70
- melee_damage_lower = 15
- melee_damage_upper = 15
- obj_damage = 10
- environment_smash = ENVIRONMENT_SMASH_NONE
- check_friendly_fire = TRUE
- stop_automated_movement_when_pulled = TRUE
- attack_verb_continuous = "drills"
- attack_verb_simple = "drill"
- attack_sound = 'sound/weapons/circsawhit.ogg'
- projectilesound = 'sound/weapons/kenetic_accel.ogg'
- custom_price = 800
- speak_emote = list("states")
- del_on_death = TRUE
- light_system = MOVABLE_LIGHT
- light_range = 6
- light_on = FALSE
- ranged = TRUE
- retreat_distance = 2
- minimum_distance = 1
- icon_state = "mining_drone_offense"
- faction = list("mining", "turret")
- loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/effect/spawner/lootdrop/minebot)
- projectiletype = /obj/projectile/kinetic/miner/weak
-
-
-/obj/projectile/kinetic/miner/weak
- damage = 15
-
-/obj/effect/spawner/lootdrop/minebot
- loot = list(/obj/item/borg/upgrade/modkit/minebot_passthrough = 15,
- /obj/item/borg/upgrade/modkit/chassis_mod = 15,
- /obj/item/borg/upgrade/modkit/tracer = 15,
- /obj/item/borg/upgrade/modkit/cooldown = 6,
- /obj/item/borg/upgrade/modkit/damage = 6,
- /obj/item/borg/upgrade/modkit/range = 6,
- /obj/item/borg/upgrade/modkit/aoe/mobs = 6,
- /obj/item/borg/upgrade/modkit/aoe/turfs = 6,
- /obj/item/borg/upgrade/modkit/trigger_guard = 6)
diff --git a/code/datums/mapgen/Cavegens/WasteplanetCaves.dm b/code/datums/mapgen/Cavegens/WasteplanetCaves.dm
new file mode 100644
index 000000000000..837a4170d34d
--- /dev/null
+++ b/code/datums/mapgen/Cavegens/WasteplanetCaves.dm
@@ -0,0 +1,58 @@
+/datum/map_generator/cave_generator/wasteplanet
+ open_turf_types = list(/turf/open/floor/plating/asteroid/wasteplanet = 50,
+ /turf/open/floor/plating/rust/wasteplanet = 10,
+ /turf/open/floor/plating/wasteplanet = 5)
+
+ closed_turf_types = list(/turf/closed/mineral/random/asteroid/wasteplanet = 45,
+ /turf/closed/wall/rust = 10,)
+
+ mob_spawn_chance = 2
+ flora_spawn_chance = 5
+
+ mob_spawn_list = list(
+ //hivebots, not too difficult
+ /mob/living/simple_animal/hostile/hivebot/strong/rockplanet = 70,
+ /mob/living/simple_animal/hostile/hivebot/range/rockplanet = 40,
+ /mob/living/simple_animal/hostile/hivebot/rapid/rockplanet = 30,
+ //crystal mobs, very difficult
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal = 1,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/forgotten = 1,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal = 1,
+ //bots, are hostile
+ /mob/living/simple_animal/bot/firebot/rockplanet = 15,
+ /mob/living/simple_animal/bot/secbot/ed209/rockplanet = 3,
+ /mob/living/simple_animal/hostile/abandoned_minebot = 15,
+ /mob/living/simple_animal/bot/floorbot/rockplanet = 15,
+ )
+
+ flora_spawn_list = list(
+ /obj/structure/mecha_wreckage/ripley = 15,
+ /obj/structure/mecha_wreckage/ripley/firefighter = 9,
+ /obj/structure/mecha_wreckage/ripley/mkii = 9,
+ /obj/structure/girder = 90,
+ /obj/structure/reagent_dispensers/fueltank = 30,
+ /obj/item/stack/cable_coil/cut = 30,
+ /obj/effect/decal/cleanable/greenglow = 60,
+ /obj/effect/decal/cleanable/glass = 30,
+ /obj/structure/closet/crate/secure/loot = 3,
+ /obj/machinery/portable_atmospherics/canister/toxins = 3,
+ /obj/machinery/portable_atmospherics/canister/carbon_dioxide = 3,
+ /obj/structure/radioactive = 6,
+ /obj/structure/radioactive/stack = 6,
+ /obj/structure/radioactive/waste = 6,
+
+ /obj/structure/salvageable/machine = 20,
+ /obj/structure/salvageable/autolathe = 15,
+ /obj/structure/salvageable/computer = 10,
+ /obj/structure/salvageable/protolathe = 10,
+ /obj/structure/salvageable/circuit_imprinter = 8,
+ /obj/structure/salvageable/destructive_analyzer = 8,
+ /obj/structure/salvageable/server = 8,
+ )
+
+ feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/effect/mine/shrapnel/human_only = 1)
+
+ initial_closed_chance = 45
+ smoothing_iterations = 50
+ birth_limit = 4
+ death_limit = 3
diff --git a/code/datums/mapgen/JungleGenerator.dm b/code/datums/mapgen/JungleGenerator.dm
deleted file mode 100644
index c1ddbabf5ec4..000000000000
--- a/code/datums/mapgen/JungleGenerator.dm
+++ /dev/null
@@ -1,85 +0,0 @@
-//the random offset applied to square coordinates, causes intermingling at biome borders
-#define BIOME_RANDOM_SQUARE_DRIFT 2
-
-/datum/map_generator/jungle_generator
- ///2D list of all biomes based on heat and humidity combos.
- var/list/possible_biomes = list(
- BIOME_LOW_HEAT = list(
- BIOME_LOW_HUMIDITY = /datum/biome/plains,
- BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/mudlands,
- BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/mudlands,
- BIOME_HIGH_HUMIDITY = /datum/biome/water
- ),
- BIOME_LOWMEDIUM_HEAT = list(
- BIOME_LOW_HUMIDITY = /datum/biome/plains,
- BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/jungle,
- BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/jungle,
- BIOME_HIGH_HUMIDITY = /datum/biome/mudlands
- ),
- BIOME_HIGHMEDIUM_HEAT = list(
- BIOME_LOW_HUMIDITY = /datum/biome/plains,
- BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/plains,
- BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/jungle/deep,
- BIOME_HIGH_HUMIDITY = /datum/biome/jungle
- ),
- BIOME_HIGH_HEAT = list(
- BIOME_LOW_HUMIDITY = /datum/biome/wasteland,
- BIOME_LOWMEDIUM_HUMIDITY = /datum/biome/plains,
- BIOME_HIGHMEDIUM_HUMIDITY = /datum/biome/jungle,
- BIOME_HIGH_HUMIDITY = /datum/biome/jungle/deep
- )
- )
- ///Used to select "zoom" level into the perlin noise, higher numbers result in slower transitions
- var/perlin_zoom = 65
-
-///Seeds the rust-g perlin noise with a random number.
-/datum/map_generator/jungle_generator/generate_terrain(list/turfs)
- . = ..()
- var/start_time = REALTIMEOFDAY
- var/height_seed = rand(0, 50000)
- var/humidity_seed = rand(0, 50000)
- var/heat_seed = rand(0, 50000)
-
- for(var/t in turfs) //Go through all the turfs and generate them
- var/turf/gen_turf = t
- var/drift_x = (gen_turf.x + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
- var/drift_y = (gen_turf.y + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
-
- var/height = text2num(rustg_noise_get_at_coordinates("[height_seed]", "[drift_x]", "[drift_y]"))
-
- var/area/A = gen_turf.loc //meet my friends, Ctrl+C and Ctrl+V!
- if(!(A.area_flags & CAVES_ALLOWED))
- continue
-
- var/datum/biome/selected_biome
- if(height <= 0.85) //If height is less than 0.85, we generate biomes based on the heat and humidity of the area.
- var/humidity = text2num(rustg_noise_get_at_coordinates("[humidity_seed]", "[drift_x]", "[drift_y]"))
- var/heat = text2num(rustg_noise_get_at_coordinates("[heat_seed]", "[drift_x]", "[drift_y]"))
- var/heat_level //Type of heat zone we're in LOW-MEDIUM-HIGH
- var/humidity_level //Type of humidity zone we're in LOW-MEDIUM-HIGH
-
- switch(heat)
- if(0 to 0.25)
- heat_level = BIOME_LOW_HEAT
- if(0.25 to 0.5)
- heat_level = BIOME_LOWMEDIUM_HEAT
- if(0.5 to 0.75)
- heat_level = BIOME_HIGHMEDIUM_HEAT
- if(0.75 to 1)
- heat_level = BIOME_HIGH_HEAT
- switch(humidity)
- if(0 to 0.25)
- humidity_level = BIOME_LOW_HUMIDITY
- if(0.25 to 0.5)
- humidity_level = BIOME_LOWMEDIUM_HUMIDITY
- if(0.5 to 0.75)
- humidity_level = BIOME_HIGHMEDIUM_HUMIDITY
- if(0.75 to 1)
- humidity_level = BIOME_HIGH_HUMIDITY
- selected_biome = possible_biomes[heat_level][humidity_level]
- else //Over 0.85; It's a mountain
- selected_biome = /datum/biome/mountain
- selected_biome = SSmapping.biomes[selected_biome] //Get the instance of this biome from SSmapping
- selected_biome.generate_turf(gen_turf)
- CHECK_TICK
- report_completion(start_time, "Jungle Generator")
diff --git a/code/datums/mapgen/LavaGenerator.dm b/code/datums/mapgen/LavaGenerator.dm
new file mode 100644
index 000000000000..f35dc3b88cc1
--- /dev/null
+++ b/code/datums/mapgen/LavaGenerator.dm
@@ -0,0 +1,3 @@
+/datum/map_generator/planet_generator/lava
+ mountain_height = 0.5
+ perlin_zoom = 65
diff --git a/code/datums/mapgen/PlanetGenerator.dm b/code/datums/mapgen/PlanetGenerator.dm
new file mode 100644
index 000000000000..ed6fe324d442
--- /dev/null
+++ b/code/datums/mapgen/PlanetGenerator.dm
@@ -0,0 +1,81 @@
+//the random offset applied to square coordinates, causes intermingling at biome borders
+#define BIOME_RANDOM_SQUARE_DRIFT 1
+
+/datum/map_generator/planet_generator
+ var/name = "Planet Generator"
+ var/mountain_height = 0.85
+ var/perlin_zoom = 65
+ var/initial_closed_chance = 45
+ var/smoothing_iterations = 20
+ var/birth_limit = 4
+ var/death_limit = 3
+
+/datum/map_generator/planet_generator/generate_terrain(list/turfs, datum/planet/planet_type)
+ . = ..()
+
+ var/height_seed = rand(0, 50000)
+ var/humidity_seed = rand(0, 50000)
+ var/heat_seed = rand(0, 50000)
+
+ var/string_gen = rustg_cnoise_generate("[initial_closed_chance]", "[smoothing_iterations]", "[birth_limit]", "[death_limit]", "[world.maxx]", "[world.maxy]") //Generate the raw CA data
+
+ for(var/t in turfs)
+ var/turf/gen_turf = t
+ var/drift_x = (gen_turf.x + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
+ var/drift_y = (gen_turf.y + rand(-BIOME_RANDOM_SQUARE_DRIFT, BIOME_RANDOM_SQUARE_DRIFT)) / perlin_zoom
+
+ var/heat = text2num(rustg_noise_get_at_coordinates("[heat_seed]", "[drift_x]", "[drift_y]"))
+ var/height = text2num(rustg_noise_get_at_coordinates("[height_seed]", "[drift_x]", "[drift_y]"))
+ var/humidity = text2num(rustg_noise_get_at_coordinates("[humidity_seed]", "[drift_x]", "[drift_y]"))
+ var/heat_level
+ var/humidity_level
+ var/datum/biome/selected_biome
+ var/datum/biome/cave/selected_cave_biome
+
+ var/area/A = gen_turf.loc
+ if(!(A.area_flags & CAVES_ALLOWED))
+ continue
+
+ switch(humidity)
+ if(0 to 0.20)
+ humidity_level =BIOME_LOWEST_HUMIDITY
+ if(0.20 to 0.40)
+ humidity_level =BIOME_LOW_HUMIDITY
+ if(0.40 to 0.60)
+ humidity_level =BIOME_MEDIUM_HUMIDITY
+ if(0.60 to 0.80)
+ humidity_level =BIOME_HIGH_HUMIDITY
+ if(0.80 to 1)
+ humidity_level =BIOME_HIGHEST_HUMIDITY
+ if(height <= mountain_height)
+ switch(heat)
+ if(0 to 0.20)
+ heat_level = planet_type.biomes[BIOME_COLDEST]
+ if(0.20 to 0.40)
+ heat_level = planet_type.biomes[BIOME_COLD]
+ if(0.40 to 0.60)
+ heat_level = planet_type.biomes[BIOME_WARM]
+ if(0.60 to 0.65)
+ heat_level = planet_type.biomes[BIOME_TEMPERATE]
+ if(0.65 to 0.80)
+ heat_level = planet_type.biomes[BIOME_HOT]
+ if(0.80 to 1)
+ heat_level = planet_type.biomes[BIOME_HOTTEST]
+ selected_biome = heat_level[humidity_level]
+ selected_biome = SSmapping.biomes[selected_biome]
+ selected_biome.generate_overworld(gen_turf)
+ else
+ switch(heat)
+ if(0 to 0.25)
+ heat_level = planet_type.biomes[BIOME_COLDEST_CAVE]
+ if(0.25 to 0.5)
+ heat_level = planet_type.biomes[BIOME_COLD_CAVE]
+ if(0.5 to 0.75)
+ heat_level = planet_type.biomes[BIOME_WARM_CAVE]
+ if(0.75 to 1)
+ heat_level = planet_type.biomes[BIOME_HOT_CAVE]
+ selected_cave_biome = heat_level[humidity_level]
+ selected_cave_biome = SSmapping.biomes[selected_cave_biome]
+ selected_cave_biome.generate_caves(gen_turf, string_gen)
+ CHECK_TICK
+
diff --git a/code/datums/mapgen/RockGenerator .dm b/code/datums/mapgen/RockGenerator .dm
new file mode 100644
index 000000000000..9f5e5ed7638d
--- /dev/null
+++ b/code/datums/mapgen/RockGenerator .dm
@@ -0,0 +1,3 @@
+/datum/map_generator/planet_generator/rock
+ mountain_height = 0.6
+ perlin_zoom = 65
diff --git a/code/datums/mapgen/SandGenerator.dm b/code/datums/mapgen/SandGenerator.dm
new file mode 100644
index 000000000000..3da50c5bb374
--- /dev/null
+++ b/code/datums/mapgen/SandGenerator.dm
@@ -0,0 +1,3 @@
+/datum/map_generator/planet_generator/sand
+ mountain_height = 0.8
+ perlin_zoom = 65
diff --git a/code/datums/mapgen/SnowGenerator.dm b/code/datums/mapgen/SnowGenerator.dm
new file mode 100644
index 000000000000..0e17c8e2e498
--- /dev/null
+++ b/code/datums/mapgen/SnowGenerator.dm
@@ -0,0 +1,7 @@
+/datum/map_generator/planet_generator/snow
+ mountain_height = 0.40
+ perlin_zoom = 55
+ initial_closed_chance = 45
+ smoothing_iterations = 20
+ birth_limit = 4
+ death_limit = 3
diff --git a/code/datums/mapgen/WasteGenerator.dm b/code/datums/mapgen/WasteGenerator.dm
new file mode 100644
index 000000000000..1343ce4f9c99
--- /dev/null
+++ b/code/datums/mapgen/WasteGenerator.dm
@@ -0,0 +1,3 @@
+/datum/map_generator/planet_generator/waste
+ mountain_height = 0.20
+ perlin_zoom = 60
diff --git a/code/datums/mapgen/biomes/_biome.dm b/code/datums/mapgen/biomes/_biome.dm
index 677e718a6474..a5fbb641dad0 100644
--- a/code/datums/mapgen/biomes/_biome.dm
+++ b/code/datums/mapgen/biomes/_biome.dm
@@ -1,66 +1,103 @@
-///This datum handles the transitioning from a turf to a specific biome, and handles spawning decorative structures and mobs.
/datum/biome
- ///Type of turf this biome creates
- var/turf/turf_type
- ///Chance of having a structure from the flora types list spawn
- var/flora_density = 0
- ///Chance of having a mob from the fauna types list spawn
- var/fauna_density = 0
- ///list of type paths of objects that can be spawned when the turf spawns flora
- var/list/flora_types = list(/obj/structure/flora/grass/jungle)
- ///list of type paths of mobs that can be spawned when the turf spawns fauna
- var/list/fauna_types = list()
-
-///This proc handles the creation of a turf of a specific biome type
-/datum/biome/proc/generate_turf(turf/gen_turf)
- gen_turf.ChangeTurf(turf_type, initial(turf_type.baseturfs), CHANGETURF_DEFER_CHANGE)
+ var/open_turf_types = list(/turf/open/floor/plating/asteroid = 1)
+ var/list/feature_spawn_list
+ var/list/mob_spawn_list
+ var/list/flora_spawn_list
+ var/mob_spawn_chance = 6
+ var/flora_spawn_chance = 2
+ var/feature_spawn_chance = 0.1
+
+/datum/biome/cave
+ var/closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1)
+ open_turf_types = list(/turf/open/floor/plating/asteroid = 1)
+
+/datum/biome/proc/generate_overworld(turf/gen_turf)
+ //TURF SPAWNING
+ var/turf/picked_turf = pickweight(open_turf_types)
+ var/turf/open/new_turf = gen_turf.ChangeTurf(picked_turf, initial(picked_turf.baseturfs), CHANGETURF_DEFER_CHANGE)
+ generate_features(new_turf)
+ CHECK_TICK
+
+/datum/biome/cave/proc/generate_caves(turf/gen_turf, string_gen)
var/area/A = gen_turf.loc
- if(length(fauna_types) && prob(fauna_density) && (A.area_flags & MOB_SPAWN_ALLOWED))
- var/mob/fauna = pick(fauna_types)
- new fauna(gen_turf)
-
- if(length(flora_types) && prob(flora_density) && (A.area_flags & FLORA_ALLOWED))
- var/obj/structure/flora = pick(flora_types)
- new flora(gen_turf)
-
-//jungle planet biomes
-/datum/biome/mudlands
- turf_type = /turf/open/floor/plating/dirt/jungle/dark
- flora_types = list(/obj/structure/flora/grass/jungle,/obj/structure/flora/grass/jungle/b, /obj/structure/flora/rock/jungle, /obj/structure/flora/rock/pile/largejungle)
- flora_density = 3
-
-/datum/biome/plains
- turf_type = /turf/open/floor/plating/grass/jungle
- flora_types = list(/obj/structure/flora/grass/jungle,/obj/structure/flora/grass/jungle/b, /obj/structure/flora/tree/jungle, /obj/structure/flora/rock/jungle, /obj/structure/flora/junglebush, /obj/structure/flora/junglebush/b, /obj/structure/flora/junglebush/c, /obj/structure/flora/junglebush/large, /obj/structure/flora/rock/pile/largejungle)
- flora_density = 15
-
-/datum/biome/jungle
- turf_type = /turf/open/floor/plating/grass/jungle
- flora_types = list(/obj/structure/flora/grass/jungle,/obj/structure/flora/grass/jungle/b, /obj/structure/flora/tree/jungle, /obj/structure/flora/rock/jungle, /obj/structure/flora/junglebush, /obj/structure/flora/junglebush/b, /obj/structure/flora/junglebush/c, /obj/structure/flora/junglebush/large, /obj/structure/flora/rock/pile/largejungle, /obj/structure/spacevine)
- flora_density = 50
-
-/datum/biome/jungle/deep
- flora_types = list(/obj/structure/flora/grass/jungle,/obj/structure/flora/grass/jungle/b, /obj/structure/flora/tree/jungle, /obj/structure/flora/rock/jungle, /obj/structure/flora/junglebush, /obj/structure/flora/junglebush/b,
- /obj/structure/flora/junglebush/c,
- /obj/structure/flora/junglebush/large,
- /obj/structure/flora/rock/pile/largejungle,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine/dense,
- /obj/structure/spacevine
- )
- flora_density = 90
-
-/datum/biome/wasteland
- turf_type = /turf/open/floor/plating/dirt/jungle/wasteland
-
-/datum/biome/water
- turf_type = /turf/open/water/jungle
-
-/datum/biome/mountain
- turf_type = /turf/closed/mineral/random/jungle
+ if(!(A.area_flags & CAVES_ALLOWED))
+ return
+
+ var/closed = text2num(string_gen[world.maxx * (gen_turf.y - 1) + gen_turf.x])
+
+ var/stored_flags
+ if(gen_turf.flags_1 & NO_RUINS_1)
+ stored_flags |= NO_RUINS_1
+
+ var/turf/new_turf = pickweight(closed ? closed_turf_types : open_turf_types)
+ new_turf = gen_turf.ChangeTurf(new_turf, initial(new_turf.baseturfs), CHANGETURF_DEFER_CHANGE)
+ new_turf.flags_1 |= stored_flags
+
+
+ CHECK_TICK
+
+ //Overwrite turf areas with cave areas to combat weather
+ var/area/overmap_encounter/planetoid/cave/new_area = GLOB.areas_by_type[/area/overmap_encounter/planetoid/cave] || new
+ var/area/old_area = get_area(new_turf)
+ new_area.contents += new_turf
+ new_turf.change_area(old_area, new_area)
+ CHECK_TICK
+
+ if(!closed)
+ generate_features(new_turf)
+ CHECK_TICK
+
+/datum/biome/proc/generate_features(turf/new_turf)
+ //FLORA SPAWNING
+ var/atom/spawned_flora
+ var/area/A = new_turf.loc
+ if(flora_spawn_list && prob(flora_spawn_chance))
+ var/can_spawn = TRUE
+ if(!(A.area_flags & FLORA_ALLOWED))
+ can_spawn = FALSE
+ if(can_spawn)
+ spawned_flora = pickweight(flora_spawn_list)
+ spawned_flora = new spawned_flora(new_turf)
+ new_turf.flags_1 |= NO_LAVA_GEN_1
+
+ //FEATURE SPAWNING HERE
+ var/atom/spawned_feature
+ if(feature_spawn_list && prob(feature_spawn_chance) && !spawned_flora)
+ var/can_spawn = TRUE
+
+ if(!(A.area_flags & FLORA_ALLOWED))
+ can_spawn = FALSE
+
+ var/atom/picked_feature = pickweight(feature_spawn_list)
+
+ for(var/obj/F in range(7, new_turf))
+ if(istype(F, picked_feature))
+ can_spawn = FALSE
+
+ if(can_spawn)
+ spawned_feature = new picked_feature(new_turf)
+ new_turf.flags_1 |= NO_LAVA_GEN_1
+
+ //MOB SPAWNING
+ if(mob_spawn_list && !spawned_flora && !spawned_feature && prob(mob_spawn_chance))
+ var/can_spawn = TRUE
+
+ if(!(A.area_flags & MOB_SPAWN_ALLOWED))
+ can_spawn = FALSE
+
+ var/atom/picked_mob = pickweight(mob_spawn_list)
+
+ for(var/thing in urange(12, new_turf)) //prevents mob clumps
+ if(!ishostile(thing) && !istype(thing, /obj/structure/spawner))
+ continue
+ if(ispath(picked_mob, /mob/living) || istype(thing, /mob/living/))
+ can_spawn = FALSE //if the random is a standard mob, avoid spawning if there's another one within 12 tiles
+ break
+ if((ispath(picked_mob, /obj/structure/spawner) || istype(thing, /obj/structure/spawner)) && get_dist(new_turf, thing) <= 2)
+ can_spawn = FALSE //prevents tendrils spawning in each other's collapse range
+ break
+
+ if(can_spawn)
+ new picked_mob(new_turf)
+ new_turf.flags_1 |= NO_LAVA_GEN_1
+ CHECK_TICK
diff --git a/code/datums/mapgen/biomes/beach_biomes.dm b/code/datums/mapgen/biomes/beach_biomes.dm
new file mode 100644
index 000000000000..d0d86b190082
--- /dev/null
+++ b/code/datums/mapgen/biomes/beach_biomes.dm
@@ -0,0 +1,126 @@
+/datum/biome/grass
+ open_turf_types = list(/turf/open/floor/plating/grass/beach/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/jungle = 1,
+ /obj/structure/flora/ausbushes/brflowers = 1,
+ /obj/structure/flora/ausbushes/fernybush = 1,
+ /obj/structure/flora/ausbushes/fullgrass = 1,
+ /obj/structure/flora/ausbushes/genericbush = 1,
+ /obj/structure/flora/ausbushes/grassybush = 1,
+ /obj/structure/flora/ausbushes/lavendergrass = 1,
+ /obj/structure/flora/ausbushes/leafybush = 1,
+ /obj/structure/flora/ausbushes/palebush = 1,
+ /obj/structure/flora/ausbushes/pointybush = 1,
+ /obj/structure/flora/ausbushes/ppflowers = 1,
+ /obj/structure/flora/ausbushes/reedbush = 1,
+ /obj/structure/flora/ausbushes/sparsegrass = 1,
+ /obj/structure/flora/ausbushes/stalkybush = 1,
+ /obj/structure/flora/ausbushes/stalkybush = 1,
+ /obj/structure/flora/ausbushes/sunnybush = 1,
+ /obj/structure/flora/ausbushes/ywflowers = 1,
+ /obj/structure/flora/tree/palm = 1,
+ )
+ flora_spawn_chance = 25
+ mob_spawn_list = list(
+ /mob/living/simple_animal/butterfly = 1,
+ /mob/living/simple_animal/chicken/rabbit/normal = 1,
+ /mob/living/simple_animal/mouse = 1,
+ /mob/living/simple_animal/cow = 1,
+ /mob/living/simple_animal/deer = 1
+ )
+ mob_spawn_chance = 1
+
+/datum/biome/grass/dense
+ flora_spawn_chance = 70
+ mob_spawn_list = list(
+
+ /mob/living/simple_animal/butterfly = 4,
+ /mob/living/simple_animal/hostile/retaliate/poison/snake = 5,
+ /mob/living/simple_animal/hostile/poison/bees/toxin = 3,
+ )
+ mob_spawn_chance = 2
+ feature_spawn_chance = 0.1
+
+/datum/biome/beach
+ open_turf_types = list(/turf/open/floor/plating/asteroid/sand/lit = 1)
+ mob_spawn_list = list(/mob/living/simple_animal/crab = 7, /mob/living/simple_animal/hostile/asteroid/lobstrosity/beach = 5)
+ mob_spawn_chance = 1
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/palm = 1,
+ /obj/structure/flora/rock/beach = 3,
+ )
+ flora_spawn_chance = 3
+
+/datum/biome/beach/dense
+ open_turf_types = list(/turf/open/floor/plating/asteroid/sand/dense/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/asteroid = 6,
+ /obj/structure/flora/rock/beach = 1
+ )
+ flora_spawn_chance = 0.6
+
+/datum/biome/ocean
+ open_turf_types = list(/turf/open/water/beach = 1)
+ mob_spawn_list = list(
+ /mob/living/simple_animal/beachcarp/bass = 1,
+ /mob/living/simple_animal/beachcarp/trout = 1,
+ /mob/living/simple_animal/beachcarp/salmon = 1,
+ /mob/living/simple_animal/beachcarp/perch = 1,
+ )
+ mob_spawn_chance = 1.4
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/beach = 1,
+ /obj/structure/flora/rock/pile = 1
+ )
+ flora_spawn_chance = 1
+
+/datum/biome/ocean/deep
+ open_turf_types = list(/turf/open/water/beach/deep = 1)
+ mob_spawn_chance = 1.4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/beachcarp/bass = 5,
+ /mob/living/simple_animal/beachcarp/trout = 5,
+ /mob/living/simple_animal/beachcarp/salmon = 5,
+ /mob/living/simple_animal/beachcarp/perch = 5,
+ )
+
+/datum/biome/cave/beach
+ open_turf_types = list(/turf/open/floor/plating/asteroid/sand/dense = 1)
+ closed_turf_types = list(/turf/closed/mineral/random/beach = 1)
+ flora_spawn_chance = 4
+ flora_spawn_list = list(/obj/structure/flora/rock/beach = 1, /obj/structure/flora/rock/asteroid = 6)
+ mob_spawn_chance = 1
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/bear/cave = 5,
+ /mob/living/simple_animal/hostile/asteroid/lobstrosity/beach = 1,
+ )
+
+/datum/biome/cave/beach/cove
+ open_turf_types = list(/turf/open/floor/plating/asteroid/sand/dense = 1)
+ flora_spawn_list = list(/obj/structure/flora/tree/dead_pine = 1, /obj/structure/flora/rock/beach = 1)
+ flora_spawn_chance = 5
+
+/datum/biome/cave/beach/magical
+ open_turf_types = list(/turf/open/floor/grass/fairy/beach = 1)
+ flora_spawn_chance = 20
+ flora_spawn_list = list(
+ /obj/structure/flora/ausbushes/grassybush = 1,
+ /obj/structure/flora/ausbushes/fernybush = 1,
+ /obj/structure/flora/ausbushes/fullgrass = 1,
+ /obj/structure/flora/ausbushes/genericbush = 1,
+ /obj/structure/flora/ausbushes/grassybush = 1,
+ /obj/structure/flora/ausbushes/leafybush = 1,
+ /obj/structure/flora/ausbushes/palebush = 1,
+ /obj/structure/flora/ausbushes/pointybush = 1,
+ /obj/structure/flora/ausbushes/reedbush = 1,
+ /obj/structure/flora/ausbushes/sparsegrass = 1,
+ /obj/structure/flora/ausbushes/stalkybush = 1,
+ /obj/structure/flora/ausbushes/stalkybush = 1,
+ /obj/structure/flora/ausbushes/sunnybush = 1,
+ )
+ mob_spawn_chance = 5
+ mob_spawn_list = list(
+ /mob/living/simple_animal/butterfly = 1,
+ /mob/living/simple_animal/slime/pet = 1,
+ /mob/living/simple_animal/hostile/lightgeist = 1
+ )
diff --git a/code/datums/mapgen/biomes/jungle_biomes.dm b/code/datums/mapgen/biomes/jungle_biomes.dm
new file mode 100644
index 000000000000..eac3321e6bcd
--- /dev/null
+++ b/code/datums/mapgen/biomes/jungle_biomes.dm
@@ -0,0 +1,134 @@
+/datum/biome/jungle
+ open_turf_types = list(/turf/open/floor/plating/grass/jungle/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/grass/jungle = 1,
+ /obj/structure/flora/grass/jungle/b = 1,
+ /obj/structure/flora/tree/jungle = 3,
+ /obj/structure/flora/rock/jungle = 1,
+ /obj/structure/flora/junglebush = 1,
+ /obj/structure/flora/junglebush/b = 1,
+ /obj/structure/flora/junglebush/c = 1,
+ /obj/structure/flora/junglebush/large = 1,
+ /obj/structure/spacevine/dense = 5,
+ /obj/structure/spacevine/dense = 2,
+ )
+ flora_spawn_chance = 90
+ mob_spawn_chance = 0.3
+ mob_spawn_list = list(/mob/living/carbon/monkey = 5)
+
+/datum/biome/jungle/dense
+ flora_spawn_chance = 100
+ open_turf_types = list(/turf/open/floor/plating/grass/jungle/lit = 1, /turf/open/floor/plating/dirt/jungle/dark/lit = 9)
+ flora_spawn_list = list(
+ /obj/structure/flora/grass/jungle = 1,
+ /obj/structure/flora/grass/jungle/b = 1,
+ /obj/structure/flora/tree/jungle = 5,
+ /obj/structure/flora/rock/jungle = 1,
+ /obj/structure/flora/junglebush = 1,
+ /obj/structure/flora/junglebush/b = 1,
+ /obj/structure/flora/junglebush/c = 1,
+ /obj/structure/flora/junglebush/large = 1,
+ /obj/structure/spacevine/dense = 20,
+ )
+ mob_spawn_chance = 0.6
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/gorilla = 1, /mob/living/carbon/monkey = 3)
+
+/datum/biome/jungle/plains
+ open_turf_types = list(/turf/open/floor/plating/grass/jungle/lit = 1)
+ flora_spawn_chance = 50
+ mob_spawn_chance = 1
+ mob_spawn_list = list(/mob/living/carbon/monkey = 1)
+
+/datum/biome/mudlands
+ open_turf_types = list(/turf/open/floor/plating/dirt/jungle/dark/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/grass/jungle = 1,
+ /obj/structure/flora/grass/jungle/b = 1,
+ /obj/structure/flora/rock/jungle = 1,
+ /obj/structure/spacevine = 5,
+ )
+ flora_spawn_chance = 20
+ mob_spawn_chance = 0.05
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/poison/giant_spider/tarantula = 1)
+
+/datum/biome/jungle_wasteland
+ open_turf_types = list(/turf/open/floor/plating/dirt/jungle/wasteland/lit = 1)
+
+/datum/biome/jungle/water
+ open_turf_types = list(/turf/open/water/jungle/lit = 1)
+ mob_spawn_chance = 1
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/carp = 1)
+ flora_spawn_chance = 1
+ flora_spawn_list = list(/obj/structure/flora/rock = 1)
+
+/datum/biome/cave/jungle
+ open_turf_types = list(/turf/open/floor/plating/dirt/jungle = 10, /turf/open/floor/plating/dirt/jungle/dark = 10)
+ closed_turf_types = list(/turf/closed/mineral/random/jungle = 1)
+ flora_spawn_chance = 5
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/jungle = 1,
+ /obj/structure/flora/rock/pile = 1,
+ /obj/structure/flora/rock = 1,
+ /obj/structure/flora/ash/space = 1,
+ /obj/structure/flora/ash/leaf_shroom = 1,
+ /obj/structure/flora/ash/cap_shroom = 1,
+ /obj/structure/flora/ash/stem_shroom = 1,
+ /obj/structure/flora/ash/puce = 1
+ )
+ mob_spawn_chance = 1
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/asteroid/wolf/random = 1, /mob/living/simple_animal/hostile/retaliate/bat = 1, /mob/living/simple_animal/hostile/retaliate/poison/snake)
+ feature_spawn_chance = 1
+ feature_spawn_list = list(/obj/item/pickaxe/rusted = 1)
+
+/datum/biome/cave/jungle/dirt
+ open_turf_types = list(/turf/open/floor/plating/dirt/jungle/wasteland = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/junglebush = 1,
+ /obj/structure/flora/junglebush/b = 1,
+ /obj/structure/flora/junglebush/c = 1,
+ /obj/structure/flora/junglebush/large = 1,
+ /obj/structure/flora/rock/pile/largejungle = 1,
+ /obj/structure/flora/grass/jungle = 1,
+ /obj/structure/flora/grass/jungle/b = 1,
+ )
+
+/datum/biome/cave/lush
+ open_turf_types = list(/turf/open/floor/plating/grass/jungle = 1)
+ closed_turf_types = list(/turf/closed/mineral/random/jungle = 1)
+ flora_spawn_chance = 50
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/jungle/small = 1,
+ /obj/structure/flora/ausbushes/brflowers = 1,
+ /obj/structure/flora/ausbushes/fernybush = 1,
+ /obj/structure/flora/ausbushes/fullgrass = 1,
+ /obj/structure/flora/ausbushes/genericbush = 1,
+ /obj/structure/flora/ausbushes/grassybush = 1,
+ /obj/structure/flora/ausbushes/lavendergrass = 1,
+ /obj/structure/flora/ausbushes/lavendergrass = 1,
+ /obj/structure/flora/ausbushes/leafybush = 1,
+ /obj/structure/flora/ausbushes/palebush = 1,
+ /obj/structure/flora/ausbushes/pointybush = 1,
+ /obj/structure/flora/ausbushes/ppflowers = 1,
+ /obj/structure/flora/ausbushes/reedbush = 1,
+ /obj/structure/flora/ausbushes/sparsegrass = 1,
+ /obj/structure/flora/ausbushes/stalkybush = 1,
+ /obj/structure/flora/ausbushes/stalkybush = 1,
+ /obj/structure/flora/ausbushes/sunnybush = 1,
+ /obj/structure/flora/ausbushes/ywflowers = 1,
+ /obj/structure/spacevine/dense = 20,
+ /obj/structure/spacevine/dense = 20,
+ /obj/structure/flora/rock/jungle = 1,
+ /obj/structure/flora/ash/space/voidmelon = 1
+ )
+ mob_spawn_chance = 1
+ mob_spawn_list = list(/mob/living/simple_animal/hostile/poison/bees/toxin = 1, /mob/living/simple_animal/hostile/mushroom = 1, /mob/living/simple_animal/pet/dog/corgi/capybara)
+
+/datum/biome/cave/lush/bright
+ open_turf_types = list(/turf/open/floor/plating/grass/jungle/lit = 12, /turf/open/water/jungle/lit = 1)
+ flora_spawn_chance = 40
+ mob_spawn_chance = 1
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/lightgeist = 1
+ )
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(/obj/item/rod_of_asclepius = 1)
diff --git a/code/datums/mapgen/biomes/lava_biomes.dm b/code/datums/mapgen/biomes/lava_biomes.dm
new file mode 100644
index 000000000000..7f684309360c
--- /dev/null
+++ b/code/datums/mapgen/biomes/lava_biomes.dm
@@ -0,0 +1,159 @@
+/datum/biome/lavaland
+ open_turf_types = list(/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit = 1)
+ flora_spawn_chance = 1
+ flora_spawn_list = list(
+ /obj/structure/flora/ausbushes/ywflowers/hell = 10,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 40,
+ /obj/structure/flora/ash/fern = 5,
+ /obj/structure/flora/ash/fireblossom = 1,
+ /obj/structure/flora/ash/puce = 5,
+ )
+ feature_spawn_chance = 0.3
+ feature_spawn_list = list(/obj/structure/flora/rock/hell = 5, /obj/structure/elite_tumor = 1, /obj/structure/geyser/random = 1)
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50,
+ /obj/structure/spawner/lavaland/goliath = 3,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random = 40,
+ /obj/structure/spawner/lavaland = 3,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30,
+ /obj/structure/spawner/lavaland/legion = 3,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10
+ )
+
+/datum/biome/lavaland/forest
+ open_turf_types = list(/turf/open/floor/plating/asteroid/purple/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/dead/tall/grey = 1,
+ /obj/structure/flora/tree/dead/barren = 1,
+ /obj/structure/flora/ausbushes/fullgrass/hell = 10,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 5
+ )
+ flora_spawn_chance = 85
+
+/datum/biome/lavaland/forest/rocky
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/pile/lava = 3,
+ /obj/structure/flora/rock/lava = 2,
+ /obj/structure/flora/tree/dead/tall/grey = 10,
+ /obj/structure/flora/ausbushes/fullgrass/hell = 40,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 20,
+ /obj/structure/flora/ausbushes/hell = 2
+ )
+ flora_spawn_chance = 65
+
+/datum/biome/lavaland/plains
+ open_turf_types = list(/turf/open/floor/plating/grass/lava/purple = 30)
+
+ flora_spawn_list = list(
+ /obj/structure/flora/ausbushes/fullgrass/hell = 50,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 35,
+ /obj/structure/flora/ausbushes/ywflowers/hell = 1,
+ /obj/structure/flora/ausbushes/grassybush/hell = 4,
+ /obj/structure/flora/firebush = 1
+ )
+ flora_spawn_chance = 15
+
+/datum/biome/lavaland/plains/dense
+ flora_spawn_chance = 85
+ open_turf_types = list(/turf/open/floor/plating/grass/lava = 50)
+ feature_spawn_chance = 5
+ feature_spawn_list = list(
+ /obj/structure/flora/tree/dead/barren = 1,
+ /obj/structure/flora/tree/dead/tall/grey = 1,
+ )
+
+/datum/biome/lavaland/plains/dense/mixed
+ flora_spawn_chance = 50
+ open_turf_types = list(/turf/open/floor/plating/grass/lava = 50, /turf/open/floor/plating/grass/lava/purple = 45, /turf/open/floor/plating/moss = 1)
+
+/datum/biome/lavaland/outback
+ open_turf_types = list(/turf/open/floor/plating/grass/lava/orange = 20)
+
+ flora_spawn_list = list(
+ /obj/structure/flora/ausbushes/grassybush/hell = 10,
+ /obj/structure/flora/ausbushes/genericbush/hell = 10,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 3,
+ /obj/structure/flora/ausbushes/hell = 3,
+ /obj/structure/flora/tree/dead/hell = 3,
+ /obj/structure/flora/rock/lava = 2
+ )
+ flora_spawn_chance = 30
+
+/datum/biome/lavaland/lush
+ open_turf_types = list(/turf/open/floor/plating/grass/lava/purple = 20, /turf/open/floor/plating/asteroid/basalt/purple/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/fireblossom = 3,
+ /obj/structure/flora/tree/dead/hell = 1,
+ /obj/structure/flora/ausbushes/grassybush/hell = 5,
+ /obj/structure/flora/ausbushes/fullgrass/hell = 10,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 8,
+ /obj/structure/flora/ausbushes/hell = 5,
+ /obj/structure/flora/ausbushes/fernybush/hell = 5,
+ /obj/structure/flora/ausbushes/genericbush/hell = 5,
+ /obj/structure/flora/ausbushes/ywflowers/hell = 7,
+ /obj/structure/flora/firebush = 3
+ )
+ flora_spawn_chance = 30
+
+/datum/biome/lavaland/lava
+ open_turf_types = list(/turf/open/lava/smooth/lava_land_surface = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/lava = 1,
+ /obj/structure/flora/rock/pile/lava = 1
+ )
+ flora_spawn_chance = 2
+ feature_spawn_chance = 0
+
+/datum/biome/lavaland/lava/rocky
+ flora_spawn_chance = 4
+
+/datum/biome/cave/lavaland
+ open_turf_types = list(/turf/open/floor/plating/asteroid/basalt/lava_land_surface = 1)
+ closed_turf_types = list(/turf/closed/mineral/random/volcanic = 1)
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50,
+ /obj/structure/spawner/lavaland/goliath = 3,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random = 40,
+ /obj/structure/spawner/lavaland = 3,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30,
+ /obj/structure/spawner/lavaland/legion = 3,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10
+ )
+ flora_spawn_chance = 1
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/leaf_shroom = 1,
+ /obj/structure/flora/ash/cap_shroom = 2,
+ /obj/structure/flora/ash/stem_shroom = 2,
+ /obj/structure/flora/ash/cacti = 1,
+ /obj/structure/flora/ash/tall_shroom = 2,
+ /obj/structure/flora/ash/fern = 2,
+ /obj/structure/flora/ash/puce = 2
+ )
+
+/datum/biome/cave/lavaland/rocky
+ open_turf_types = list(/turf/open/floor/plating/asteroid/purple = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/pile/lava = 1,
+ /obj/structure/flora/rock/lava = 1
+ )
+ flora_spawn_chance = 5
+
+/datum/biome/cave/lavaland/mossy
+ open_turf_types = list(/turf/open/floor/plating/moss = 1)
+ flora_spawn_chance = 80
+ flora_spawn_list = list(
+ /obj/structure/flora/ausbushes/fullgrass/hell = 10,
+ /obj/structure/flora/ausbushes/sparsegrass/hell = 5,
+ /obj/structure/flora/ash/leaf_shroom = 1,
+ /obj/structure/flora/ash/cap_shroom = 2,
+ /obj/structure/flora/ash/stem_shroom = 2,
+ /obj/structure/flora/ash/cacti = 1,
+ /obj/structure/flora/ash/tall_shroom = 2
+ )
+
+/datum/biome/cave/lavaland/lava
+ open_turf_types = list(/turf/open/lava/smooth/lava_land_surface = 1)
+ feature_spawn_chance = 1
+ feature_spawn_list = list(/obj/structure/flora/rock/pile/lava = 1)
diff --git a/code/datums/mapgen/biomes/rock_biomes.dm b/code/datums/mapgen/biomes/rock_biomes.dm
new file mode 100644
index 000000000000..aef4b27c72b8
--- /dev/null
+++ b/code/datums/mapgen/biomes/rock_biomes.dm
@@ -0,0 +1,78 @@
+/datum/biome/rock
+ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/lit = 1)
+
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2)
+
+ flora_spawn_chance = 4
+ mob_spawn_chance = 3
+
+ flora_spawn_list = list(
+ /obj/structure/flora/rock = 3,
+ /obj/structure/flora/tree/cactus = 4,
+ /obj/structure/flora/ash/cacti = 1,
+ )
+
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/netherworld/asteroid = 30,
+ /mob/living/simple_animal/hostile/asteroid/fugu/asteroid = 30,
+ /mob/living/simple_animal/hostile/netherworld/migo/asteroid = 20, //mariuce
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet = 30,
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet = 50,
+ )
+
+/datum/biome/rock/icecap
+ open_turf_types = list(/turf/open/floor/plating/asteroid/snow/lit/rockplanet = 1, /turf/open/floor/plating/asteroid/snow/lit/rockplanet = 5)
+ flora_spawn_chance = 1
+ mob_spawn_chance = 2
+
+/datum/biome/rock/wetlands
+ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/wet/lit = 1)
+ flora_spawn_chance = 5
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/netherworld/asteroid = 30,
+ /mob/living/simple_animal/hostile/asteroid/fugu/asteroid = 30,
+ /mob/living/simple_animal/hostile/netherworld/migo/asteroid = 20, //mariuce
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet = 10,
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet = 30,
+ )
+
+
+/datum/biome/cave/rock
+ closed_turf_types = list(/turf/closed/mineral/random/asteroid/rockplanet = 1)
+ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/cracked = 1)
+ flora_spawn_chance = 4
+ flora_spawn_list = list(
+ /obj/structure/flora/rock = 4,
+ /obj/structure/flora/rock/pile = 4,
+ /obj/structure/flora/ash/fern = 2,
+ /obj/structure/flora/ash/puce = 1,
+ )
+ feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2)
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/netherworld/asteroid = 20,
+ /mob/living/simple_animal/hostile/asteroid/fugu/asteroid = 20,
+ /mob/living/simple_animal/hostile/netherworld/migo/asteroid = 20, //mariuce
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet = 30,
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 20,
+ )
+
+/datum/biome/cave/rock/wet
+ open_turf_types = list(/turf/open/floor/plating/asteroid/rockplanet/cracked = 1)
+ flora_spawn_chance = 5
+ flora_spawn_list = list(
+ /obj/structure/flora/rock = 4,
+ /obj/structure/flora/rock/pile = 4,
+ /obj/structure/flora/ash/fern = 4,
+ /obj/structure/flora/ash/puce = 2,
+ )
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/netherworld/asteroid = 30,
+ /mob/living/simple_animal/hostile/asteroid/fugu/asteroid = 30,
+ /mob/living/simple_animal/hostile/netherworld/migo/asteroid = 20, //mariuce
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet = 10,
+ /mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet = 30,
+ )
diff --git a/code/datums/mapgen/biomes/sand_biomes.dm b/code/datums/mapgen/biomes/sand_biomes.dm
new file mode 100644
index 000000000000..3955eab963be
--- /dev/null
+++ b/code/datums/mapgen/biomes/sand_biomes.dm
@@ -0,0 +1,129 @@
+/datum/biome/sand
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/lit = 1)
+ flora_spawn_chance = 3
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/leaf_shroom = 4 ,
+ /obj/structure/flora/ash/cap_shroom = 4 ,
+ /obj/structure/flora/ash/stem_shroom = 4 ,
+ )
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2)
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 25,
+ )
+
+/datum/biome/sand/wasteland
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/lit = 50, /turf/open/floor/plating/asteroid/whitesands/dried/lit = 40, /turf/closed/mineral/random/whitesands = 20, /turf/closed/wall/mineral/titanium/survival/pod = 1, /turf/closed/wall/rust = 1)
+ flora_spawn_chance = 20
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/leaf_shroom = 4,
+ /obj/structure/flora/ash/cap_shroom = 4,
+ /obj/structure/flora/ash/stem_shroom = 4,
+ /obj/effect/decal/remains/human = 4,
+ /obj/effect/spawner/lootdrop/maintenance = 40,
+ )
+
+/datum/biome/sand/grass
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/grass/lit = 1)
+ flora_spawn_chance = 5
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/cacti = 2,
+ /obj/structure/flora/ash/fern = 4,
+ /obj/structure/flora/tree/tall/whitesands = 4,
+ /obj/structure/flora/rock = 3,
+ /obj/structure/flora/rock/pile = 3,
+ )
+ mob_spawn_chance = 1
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 1,
+ )
+
+/datum/biome/sand/grass/dead
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit = 1)
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/leaf_shroom = 2,
+ /obj/structure/flora/ash/cap_shroom = 2,
+ /obj/structure/flora/ash/stem_shroom = 2,
+ /obj/structure/flora/ash/fern = 4,
+ /obj/structure/flora/tree/dead/barren = 4,
+ /obj/structure/flora/rock = 3,
+ /obj/structure/flora/rock/pile = 3,
+ )
+
+/datum/biome/sand/icecap
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/lit = 1, /turf/open/floor/plating/asteroid/snow/lit/whitesands = 5)
+ flora_spawn_chance = 4
+ mob_spawn_chance = 1
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/leaf_shroom = 2 ,
+ /obj/structure/flora/ash/cap_shroom = 2 ,
+ /obj/structure/flora/ash/stem_shroom = 2 ,
+ /obj/structure/flora/rock = 3,
+ /obj/structure/flora/rock/pile = 3,
+ )
+
+/datum/biome/sand/riverbed
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/dried/lit = 1)
+ flora_spawn_chance = 0
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 40,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 20,
+ /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random = 40,
+ )
+
+/datum/biome/sand/acid //plains
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/lit = 10, /turf/open/acid/whitesands = 1)
+
+/datum/biome/sand/acid/total
+ open_turf_types = list(/turf/open/acid/whitesands = 1)
+ flora_spawn_chance = 0
+ feature_spawn_chance = 0
+ mob_spawn_chance = 0
+
+/datum/biome/cave/sand
+ closed_turf_types = list(/turf/closed/mineral/random/whitesands = 1)
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands = 5, /turf/open/floor/plating/asteroid/whitesands/dried = 1)
+ flora_spawn_chance = 4
+ flora_spawn_list = list(
+ /obj/structure/flora/rock = 4,
+ /obj/structure/flora/rock/pile = 4,
+ /obj/structure/flora/ash/fern = 2,
+ /obj/structure/flora/ash/puce = 1,
+ )
+ feature_spawn_list = list(/obj/structure/geyser/random = 1, /obj/structure/elite_tumor = 2)
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ )
+
+/datum/biome/cave/sand/deep
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/dried = 1)
+ mob_spawn_chance = 4
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/goliath/beast/random = 50,
+ /obj/structure/spawner/lavaland/goliath = 6,
+ /mob/living/simple_animal/hostile/asteroid/basilisk/whitesands = 40,
+ /obj/structure/spawner/lavaland/whitesandsbasilisk = 6,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/random = 30,
+ /obj/structure/spawner/lavaland/legion = 3,
+ /obj/structure/spawner/lavaland/legion = 3,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ )
+
+/datum/biome/cave/sand/volcanic
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/dried = 1)
+ mob_spawn_chance = 2
+
+/datum/biome/cave/sand/volcanic/lava
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/dried = 7, /turf/open/lava = 1)
+
+/datum/biome/cave/sand/volcanic/acidic
+ open_turf_types = list(/turf/open/floor/plating/asteroid/whitesands/dried = 8, /turf/open/acid/whitesands = 1)
diff --git a/code/datums/mapgen/biomes/snow_biomes.dm b/code/datums/mapgen/biomes/snow_biomes.dm
new file mode 100644
index 000000000000..9f2624d70c70
--- /dev/null
+++ b/code/datums/mapgen/biomes/snow_biomes.dm
@@ -0,0 +1,190 @@
+
+/datum/biome/snow
+ open_turf_types = list(/turf/open/floor/plating/asteroid/snow/lit = 25)
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/pine = 2,
+ /obj/structure/flora/rock/icy = 2,
+ /obj/structure/flora/rock/pile/icy = 2,
+ /obj/structure/flora/grass/both = 6,
+ /obj/structure/flora/ash/chilly = 2,
+ )
+ flora_spawn_chance = 10
+ mob_spawn_chance = 1
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/wolf/random = 30,
+ /obj/structure/spawner/ice_moon = 3,
+ /obj/structure/spawner/ice_moon/polarbear = 3,
+ /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_demon/random = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp = 10,
+ /mob/living/simple_animal/hostile/asteroid/lobstrosity = 10,
+ )
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(
+ /obj/structure/spawner/ice_moon/demonic_portal = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1
+ )
+
+/datum/biome/snow/lush
+ open_turf_types = list(/turf/open/floor/plating/asteroid/snow/lit = 25)
+ flora_spawn_list = list(
+ /obj/structure/flora/grass/both = 1,
+ )
+ flora_spawn_chance = 30
+
+/datum/biome/snow/thawed
+ open_turf_types = list(/turf/open/floor/plating/asteroid/icerock/lit = 1)
+ flora_spawn_chance = 40
+ flora_spawn_list = list(
+ /obj/structure/flora/ausbushes/fullgrass = 1,
+ /obj/structure/flora/ausbushes/sparsegrass = 1,
+ /obj/structure/flora/ausbushes = 1,
+ /obj/structure/flora/ausbushes/ppflowers = 1,
+ /obj/structure/flora/ausbushes/lavendergrass = 1
+ )
+
+/datum/biome/snow/forest
+ flora_spawn_chance = 15
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/pine = 10,
+ /obj/structure/flora/tree/dead = 3,
+ /obj/structure/flora/grass/both = 4
+ )
+
+/datum/biome/snow/forest/dense
+ flora_spawn_chance = 25
+ flora_spawn_list = list(
+ /obj/structure/flora/tree/pine = 20,
+ /obj/structure/flora/grass/both = 6,
+ /obj/structure/flora/tree/dead = 3,
+ )
+
+/datum/biome/arctic
+ open_turf_types = list(/turf/open/floor/plating/asteroid/snow/lit = 1)
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(/obj/structure/statue/snow/snowman = 3, /obj/structure/statue/snow/snowlegion = 1)
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/wolf/random = 30,
+ /obj/structure/spawner/ice_moon = 3,
+ /obj/structure/spawner/ice_moon/polarbear = 3,
+ /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_demon/random = 5,
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp = 5,
+ /mob/living/simple_animal/hostile/asteroid/lobstrosity = 5,
+ )
+ mob_spawn_chance = 1
+
+/datum/biome/arctic/rocky
+ flora_spawn_chance = 5
+ flora_spawn_list = list(
+ /obj/structure/flora/rock/icy = 2,
+ /obj/structure/flora/rock/pile/icy = 2,
+ )
+
+/datum/biome/iceberg
+ open_turf_types = list(/turf/open/floor/plating/asteroid/iceberg/lit = 6, /turf/open/floor/plating/ice/iceberg/lit = 1, /turf/closed/mineral/ice = 10)
+ mob_spawn_chance = 2
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/wolf/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_demon/random = 5,
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp = 5,
+ /mob/living/simple_animal/hostile/asteroid/lobstrosity = 5,
+ )
+ feature_spawn_chance = 0.2
+ feature_spawn_list = list(
+ /obj/structure/spawner/ice_moon/demonic_portal = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1
+ )
+
+/datum/biome/iceberg/lake
+ open_turf_types = list(/turf/open/floor/plating/ice/lit = 1)
+
+/datum/biome/plasma
+ open_turf_types = list(/turf/open/lava/plasma/ice_moon = 5, /turf/open/floor/plating/asteroid/icerock/smooth = 1)
+
+/datum/biome/cave/snow
+ open_turf_types = list(/turf/open/floor/plating/asteroid/icerock = 1)
+ flora_spawn_chance = 6
+ flora_spawn_list = list(
+ /obj/structure/flora/grass/both = 5,
+ /obj/structure/flora/rock/pile/icy = 1,
+ /obj/structure/flora/rock/icy = 1,
+ /obj/structure/flora/ash/space = 1,
+ /obj/structure/flora/ash/leaf_shroom = 1,
+ /obj/structure/flora/ash/cap_shroom = 1,
+ /obj/structure/flora/ash/stem_shroom = 1,
+ /obj/structure/flora/ash/puce = 1
+ )
+ closed_turf_types = list(/turf/closed/mineral/random/snow = 1)
+ mob_spawn_chance = 2
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/wolf/random = 30,
+ /obj/structure/spawner/ice_moon = 3,
+ /obj/structure/spawner/ice_moon/polarbear = 3,
+ /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_demon/random = 5,
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp = 5,
+ /mob/living/simple_animal/hostile/asteroid/lobstrosity = 10,
+ )
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(
+ /obj/structure/spawner/ice_moon/demonic_portal = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1
+ )
+
+/datum/biome/cave/snow/thawed
+ open_turf_types = list(/turf/open/floor/plating/asteroid/icerock/cracked = 1)
+ closed_turf_types = list(/turf/closed/mineral/random/snow = 1)
+
+/datum/biome/cave/snow/ice
+ open_turf_types = list(/turf/open/floor/plating/asteroid/icerock = 20, /turf/open/floor/plating/ice = 3)
+ closed_turf_types = list(/turf/closed/mineral/random/snow = 1)
+
+/datum/biome/cave/volcanic
+ open_turf_types = list(/turf/open/floor/plating/asteroid/basalt = 1)
+ closed_turf_types = list(/turf/closed/mineral/random/snow = 1)
+ mob_spawn_chance = 2
+ mob_spawn_list = list(
+ /mob/living/simple_animal/hostile/asteroid/wolf/random = 30,
+ /obj/structure/spawner/ice_moon = 3,
+ /obj/structure/spawner/ice_moon/polarbear = 3,
+ /mob/living/simple_animal/hostile/asteroid/polarbear/random = 30,
+ /mob/living/simple_animal/hostile/asteroid/hivelord/legion/snow = 50,
+ /mob/living/simple_animal/hostile/asteroid/goldgrub = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_demon/random = 10,
+ /mob/living/simple_animal/hostile/asteroid/ice_whelp = 10,
+ /mob/living/simple_animal/hostile/asteroid/lobstrosity = 10,
+ )
+ flora_spawn_chance = 3
+ flora_spawn_list = list(
+ /obj/structure/flora/ash/leaf_shroom = 1,
+ /obj/structure/flora/ash/cap_shroom = 1,
+ /obj/structure/flora/ash/stem_shroom = 1,
+ )
+ feature_spawn_chance = 0.1
+ feature_spawn_list = list(
+ /obj/structure/spawner/ice_moon/demonic_portal = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/ice_whelp = 1,
+ /obj/structure/spawner/ice_moon/demonic_portal/snowlegion = 1,
+ )
+
+/datum/biome/cave/volcanic/lava
+ open_turf_types = list(/turf/open/lava/smooth = 10, /turf/open/floor/plating/asteroid/icerock/smooth = 1)
+
+/datum/biome/cave/volcanic/lava/total
+ open_turf_types = list(/turf/open/lava/smooth = 1)
+
+/datum/biome/cave/volcanic/lava/plasma
+ open_turf_types = list(/turf/open/lava/plasma = 7, /turf/open/floor/plating/asteroid/icerock/smooth = 1)
diff --git a/code/datums/mapgen/planets/_planet.dm b/code/datums/mapgen/planets/_planet.dm
new file mode 100644
index 000000000000..4d1b04095f5d
--- /dev/null
+++ b/code/datums/mapgen/planets/_planet.dm
@@ -0,0 +1,73 @@
+/datum/planet
+ var/list/biomes = list(
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/grass,
+ BIOME_LOW_HUMIDITY = /datum/biome/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/ocean,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/ocean/deep
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/grass,
+ BIOME_LOW_HUMIDITY = /datum/biome/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/ocean,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/ocean/deep
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/grass,
+ BIOME_LOW_HUMIDITY = /datum/biome/grass/dense,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/ocean,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/ocean/deep
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/beach/dense,
+ BIOME_LOW_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/beach
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_LOW_HUMIDITY = /datum/biome/grass/dense,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/ocean,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/ocean/deep
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/grass,
+ BIOME_LOW_HUMIDITY = /datum/biome/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/ocean,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/ocean/deep
+ ),
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach/cove,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach/magical,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach/magical,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach/cove
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach/magical,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach/cove,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach
+ )
+ )
diff --git a/code/datums/mapgen/planets/beach.dm b/code/datums/mapgen/planets/beach.dm
new file mode 100644
index 000000000000..7e5ec93ab699
--- /dev/null
+++ b/code/datums/mapgen/planets/beach.dm
@@ -0,0 +1,73 @@
+/datum/planet/beach
+ biomes = list(
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/ocean/deep,
+ BIOME_LOW_HUMIDITY = /datum/biome/ocean,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/grass
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/ocean/deep,
+ BIOME_LOW_HUMIDITY = /datum/biome/ocean,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/grass/dense,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/jungle/dense
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/ocean/deep,
+ BIOME_LOW_HUMIDITY = /datum/biome/ocean,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/grass/dense,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/grass
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/ocean/deep,
+ BIOME_LOW_HUMIDITY = /datum/biome/ocean,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/grass
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/ocean/deep,
+ BIOME_LOW_HUMIDITY = /datum/biome/ocean,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/grass,
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/ocean/deep,
+ BIOME_LOW_HUMIDITY = /datum/biome/ocean,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/beach/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/grass
+ ),
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach/cove,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach/magical,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach/magical,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach/cove
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach/magical,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/beach,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/beach/cove,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/beach
+ )
+ )
diff --git a/code/datums/mapgen/planets/jungle.dm b/code/datums/mapgen/planets/jungle.dm
new file mode 100644
index 000000000000..da64cac3a492
--- /dev/null
+++ b/code/datums/mapgen/planets/jungle.dm
@@ -0,0 +1,75 @@
+/datum/planet/jungle
+ biomes = list(
+ //NORMAL BIOMES
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle_wasteland,
+ BIOME_LOW_HUMIDITY = /datum/biome/jungle_wasteland,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/jungle/plains,
+ BIOME_HIGH_HUMIDITY = /datum/biome/jungle/plains,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/mudlands
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle_wasteland,
+ BIOME_LOW_HUMIDITY = /datum/biome/jungle/plains,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/jungle,
+ BIOME_HIGH_HUMIDITY = /datum/biome/mudlands,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/mudlands
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle,
+ BIOME_LOW_HUMIDITY = /datum/biome/jungle,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/mudlands,
+ BIOME_HIGH_HUMIDITY = /datum/biome/mudlands,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/jungle
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_LOW_HUMIDITY = /datum/biome/mudlands,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/jungle/water,
+ BIOME_HIGH_HUMIDITY = /datum/biome/jungle/water,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/mudlands
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle,
+ BIOME_LOW_HUMIDITY = /datum/biome/jungle,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/jungle/dense
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_LOW_HUMIDITY = /datum/biome/jungle/dense,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/mudlands,
+ BIOME_HIGH_HUMIDITY = /datum/biome/jungle/water,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/jungle/water
+ ),
+ //CAVE BIOMES
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/jungle
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/jungle/dirt
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/jungle
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/jungle,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/jungle/dirt,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/lush,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/lush/bright,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/lush/bright
+ )
+ )
diff --git a/code/datums/mapgen/planets/lava.dm b/code/datums/mapgen/planets/lava.dm
new file mode 100644
index 000000000000..b67e7703f06e
--- /dev/null
+++ b/code/datums/mapgen/planets/lava.dm
@@ -0,0 +1,75 @@
+/datum/planet/lava
+ biomes = list(
+ //NORMAL BIOMES
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/lavaland/forest,
+ BIOME_LOW_HUMIDITY = /datum/biome/lavaland/plains/dense/mixed,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/forest/rocky,
+ BIOME_HIGH_HUMIDITY = /datum/biome/lavaland/outback,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/lavaland/plains/dense
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/lavaland/plains,
+ BIOME_LOW_HUMIDITY = /datum/biome/lavaland/outback,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/plains/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/lavaland/plains/dense/mixed,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/lavaland/outback
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/lavaland,
+ BIOME_LOW_HUMIDITY = /datum/biome/lavaland/plains,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/forest,
+ BIOME_HIGH_HUMIDITY = /datum/biome/lavaland/lush,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/lavaland/lava
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/lavaland/plains/dense/mixed,
+ BIOME_LOW_HUMIDITY = /datum/biome/lavaland/forest,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/plains/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/lavaland,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/lavaland/lava
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/lavaland/outback,
+ BIOME_LOW_HUMIDITY = /datum/biome/lavaland,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/plains/dense/mixed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/lavaland,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/lavaland/lava
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/lavaland/forest/rocky,
+ BIOME_LOW_HUMIDITY = /datum/biome/lavaland/outback,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/lavaland/plains,
+ BIOME_HIGH_HUMIDITY = /datum/biome/lavaland,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/lavaland/lava
+ ),
+ //CAVE BIOMES
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/lavaland/rocky,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/lavaland/rocky,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/lavaland,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/lavaland,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/lavaland/mossy
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/lavaland/rocky,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/lavaland,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/lavaland/lava,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/lavaland/mossy,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/lavaland/lava
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/lavaland/rocky,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/lavaland,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/lavaland/mossy,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/lavaland/rocky,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/lavaland/lava
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/lavaland/rocky,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/lavaland/mossy,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/lavaland/mossy,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/lavaland/lava,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/lavaland/lava
+ )
+ )
diff --git a/code/datums/mapgen/planets/rock.dm b/code/datums/mapgen/planets/rock.dm
new file mode 100644
index 000000000000..8806ed62aa71
--- /dev/null
+++ b/code/datums/mapgen/planets/rock.dm
@@ -0,0 +1,75 @@
+/datum/planet/rock
+ biomes = list(
+ //NORMAL BIOMES
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/rock/icecap,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/rock/icecap
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/rock/icecap
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/rock/wetlands
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/rock/wetlands,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/rock/wetlands
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/rock/wetlands
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/rock
+ ),
+ //CAVE BIOMES
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_MEDIUM_HUMIDITY =/datum/biome/cave/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/rock
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/rock
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/rock
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/rock,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/rock
+ )
+ )
diff --git a/code/datums/mapgen/planets/sand.dm b/code/datums/mapgen/planets/sand.dm
new file mode 100644
index 000000000000..14df94bbcc86
--- /dev/null
+++ b/code/datums/mapgen/planets/sand.dm
@@ -0,0 +1,75 @@
+/datum/planet/sand //this is a placeholder until one of the people who made the planet originally makes a biome list, specifically a moth woman
+ biomes = list(
+ //NORMAL BIOMES
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/sand,
+ BIOME_LOW_HUMIDITY = /datum/biome/sand,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/sand/grass/dead,
+ BIOME_HIGH_HUMIDITY = /datum/biome/sand/icecap,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/sand/icecap
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/sand,
+ BIOME_LOW_HUMIDITY = /datum/biome/sand/riverbed,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/sand/wasteland,
+ BIOME_HIGH_HUMIDITY = /datum/biome/sand/wasteland,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/sand/icecap
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/sand,
+ BIOME_LOW_HUMIDITY = /datum/biome/sand,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/sand/riverbed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/sand,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/sand
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/sand,
+ BIOME_LOW_HUMIDITY = /datum/biome/sand/riverbed,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/sand/grass/dead,
+ BIOME_HIGH_HUMIDITY = /datum/biome/sand/grass,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/sand/grass
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY =/datum/biome/sand/acid,
+ BIOME_LOW_HUMIDITY = /datum/biome/sand/wasteland,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/sand/riverbed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/sand,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/sand/grass
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/sand/acid/total,
+ BIOME_LOW_HUMIDITY = /datum/biome/sand/acid,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/sand/riverbed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/sand/wasteland,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/sand
+ ),
+ //CAVE BIOMES
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/sand/volcanic/acidic,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/sand/deep,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/sand/deep,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/sand,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/sand
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/sand/volcanic/acidic,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/sand/volcanic,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/sand/deep,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/sand/deep,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/sand,
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/sand/volcanic/acidic,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/sand/volcanic,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/sand/deep,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/sand,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/sand
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/sand/volcanic/lava,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/sand/volcanic,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/sand/volcanic,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/sand/deep,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/sand,
+ )
+ )
diff --git a/code/datums/mapgen/planets/snow.dm b/code/datums/mapgen/planets/snow.dm
new file mode 100644
index 000000000000..78b16d2dbd36
--- /dev/null
+++ b/code/datums/mapgen/planets/snow.dm
@@ -0,0 +1,75 @@
+/datum/planet/snow
+ biomes = list(
+ //NORMAL BIOMES
+ BIOME_COLDEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/arctic/rocky,
+ BIOME_LOW_HUMIDITY = /datum/biome/snow,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/iceberg/lake,
+ BIOME_HIGH_HUMIDITY = /datum/biome/iceberg,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/iceberg
+ ),
+ BIOME_COLD = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/arctic,
+ BIOME_LOW_HUMIDITY = /datum/biome/arctic/rocky,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/snow/lush,
+ BIOME_HIGH_HUMIDITY = /datum/biome/snow,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/iceberg
+ ),
+ BIOME_WARM = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/snow/thawed,
+ BIOME_LOW_HUMIDITY = /datum/biome/snow/forest,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/snow,
+ BIOME_HIGH_HUMIDITY = /datum/biome/snow/lush,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/iceberg
+ ),
+ BIOME_TEMPERATE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/snow/lush,
+ BIOME_LOW_HUMIDITY = /datum/biome/snow/forest/dense,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/snow/forest/dense,
+ BIOME_HIGH_HUMIDITY = /datum/biome/snow/forest,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/snow/lush
+ ),
+ BIOME_HOT = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/snow,
+ BIOME_LOW_HUMIDITY = /datum/biome/snow/forest,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/snow/thawed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/snow/lush,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/snow
+ ),
+ BIOME_HOTTEST = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/snow/forest/dense,
+ BIOME_LOW_HUMIDITY = /datum/biome/snow/forest,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/snow/thawed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/snow/forest/dense,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/snow/thawed
+ ),
+ //CAVE BIOMES
+ BIOME_COLDEST_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/snow/ice
+ ),
+ BIOME_COLD_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/snow/ice,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/snow/ice
+ ),
+ BIOME_WARM_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/snow,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/snow/thawed,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/snow/thawed,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/snow
+ ),
+ BIOME_HOT_CAVE = list(
+ BIOME_LOWEST_HUMIDITY = /datum/biome/cave/snow/thawed,
+ BIOME_LOW_HUMIDITY = /datum/biome/cave/snow/thawed,
+ BIOME_MEDIUM_HUMIDITY = /datum/biome/cave/volcanic/lava/plasma,
+ BIOME_HIGH_HUMIDITY = /datum/biome/cave/volcanic/lava,
+ BIOME_HIGHEST_HUMIDITY = /datum/biome/cave/volcanic/lava/total
+ )
+ )
diff --git a/code/datums/ruins/beachplanet.dm b/code/datums/ruins/beachplanet.dm
new file mode 100644
index 000000000000..9eb17faf4a65
--- /dev/null
+++ b/code/datums/ruins/beachplanet.dm
@@ -0,0 +1,30 @@
+// Hey! Listen! Update \config\beachruinblacklist.txt with your new ruins!
+
+/datum/map_template/ruin/beachplanet
+ prefix = "_maps/RandomRuins/BeachRuins/"
+ allow_duplicates = FALSE
+ cost = 5
+
+/datum/map_template/ruin/beachplanet/fishinghut
+ name = "Fishing Hut"
+ id = "fishinghut"
+ description = "A small fishing hut floating on the ocean."
+ suffix = "beach_fishing_hut.dmm"
+
+/datum/map_template/ruin/beachplanet/pushit
+ name = "Elite Club"
+ id = "pushit"
+ description = "A heavily guarded dance club. For the high elite of some city, they wouldnt want you to get your hands on it."
+ suffix = "beach_push_it.dmm"
+
+/datum/map_template/ruin/beachplanet/ancient
+ name = "Ancient Danger"
+ id = "beach_ancient"
+ description = "As you draw near the ancient wall, a sense of foreboding overcomes you. You aren't sure why, but you feel this dusty structure may contain great dangers."
+ suffix = "beach_ancient_ruin.dmm"
+
+/datum/map_template/ruin/beachplanet/colony
+ name = "Abandoned Beachside Colony"
+ id = "beach_colony"
+ description = "A abandoned colony. It seems that this colony was abandoned, for a reason or another"
+ suffix = "beach_colony.dmm"
diff --git a/code/datums/ruins/rockplanet.dm b/code/datums/ruins/rockplanet.dm
index a6b564521a99..591ca50eddfa 100644
--- a/code/datums/ruins/rockplanet.dm
+++ b/code/datums/ruins/rockplanet.dm
@@ -5,13 +5,6 @@
allow_duplicates = FALSE
cost = 5
-
-/datum/map_template/ruin/rockplanet/soviets
- name = "Rock Soviets"
- id = "rocksoviets"
- description = "a nice little outpost."
- suffix = "rockplanet_soviet.dmm"
-
/datum/map_template/ruin/rockplanet/heirophant
name = "Ancient Heirophant"
id = "rockheiro"
@@ -24,24 +17,19 @@
description = "the last remnants of a clockcult base on rockplanet."
suffix = "rockplanet_clock.dmm"
-/datum/map_template/ruin/rockplanet/clowncrash
- name = "Crashed clown trading ship"
- id = "clowncrash"
- description = "some asshole decided to prank the pilot."
- suffix = "rockplanet_clowncrash.dmm"
-
/datum/map_template/ruin/rockplanet/cult
name = "Cult base"
id = "rockcult"
description = "Cultists seem to have gotten here too."
suffix = "rockplanet_cult.dmm"
-
+/* TODO: GREEBLE
/datum/map_template/ruin/rockplanet/dangerpod
name = "Dangerous pod"
id = "dangerpod"
description = "A pod holding a dangerous threat."
- suffix = "rockplanet_dangerpod.dmm"
+ suffix = "wasteplanet_dangerpod.dmm"
+*/
/* //TODO: MAKE THIS A MINOR RUIN
/datum/map_template/ruin/rockplanet/pioneer
@@ -50,41 +38,23 @@
description = "The pioneers used to ride these babies for miles!"
suffix = "rockplanet_pioneer.dmm"
*/
-/datum/map_template/ruin/rockplanet/pod
- name = "Derelict pod"
- id = "oldpod"
- description = "A large, old pod."
- suffix = "rockplanet_pod.dmm"
-/datum/map_template/ruin/rockplanet/tradepost
- name = "Tradepost"
- id = "oldpod"
- description = "A crashed tradepost."
- suffix = "rockplanet_tradepost.dmm"
+/* greeble
/datum/map_template/ruin/rockplanet/wizard
name = "rockplanet wizard den"
id = "rockwizard"
description = "Wizards have reached all the ways out here too."
suffix = "rockplanet_wizard.dmm"
+*/
+/*greeble
/datum/map_template/ruin/rockplanet/house
name = "baracaded house"
id = "house"
description = "Some sort of house, baracaded in. It must be baracaded for a reason.."
suffix = "rockplanet_house.dmm"
-
-/datum/map_template/ruin/rockplanet/moth
- name = "Storage Facility"
- id = "rockstorage"
- description = "Some sort of warehouse. It looks like somwhere down the line a ship full of moth plushes blew up."
- suffix = "rockplanet_moth.dmm"
-
-/datum/map_template/ruin/rockplanet/daniel
- name = "Oh Hi Daniel"
- id = "daniel"
- description = "Mistakes were made.."
- suffix = "rockplanet_daniel.dmm"
+*/
/datum/map_template/ruin/rockplanet/mining_expedition
name = "Mining Expedition"
@@ -92,62 +62,27 @@
description = "A mining operation gone wrong."
suffix = "rockplanet_miningexpedition.dmm"
-/datum/map_template/ruin/rockplanet/fortress
- name = "Fortress of Solitide"
- id = "solitude"
- description = "A fortress, although one you are probably more familiar with."
- suffix = "rockplanet_fortress_of_solitide.dmm"
-
-/datum/map_template/ruin/rockplanet/oreprocess
- name = "Ore Processing Facility"
- id = "oreprocess"
- description = "A fortress, although one you are probably more familiar with.."
- suffix = "rockplanet_ore_proccessing_facility.dmm"
-
-/datum/map_template/ruin/rockplanet/weaponstest
- name = "Weapons testing facility"
- id = "guntested"
- description = "A abandoned Nanotrasen weapons facility, presumably the place where the X-01 was manufactured."
- suffix = "rockplanet_lab.dmm"
-
-/datum/map_template/ruin/rockplanet/radiation
- name = "Honorable deeds storage"
- id = "rockplanet_radiation"
- description = "A dumping ground for nuclear waste."
- suffix = "rockplanet_unhonorable.dmm"
/datum/map_template/ruin/rockplanet/boxsci
- name = "Honorable deeds storage"
- id = "Abandoned science wing"
+ name = "Abandoned science wing"
+ id = "abandonedscience"
description = "A chunk of a station that broke off.."
suffix = "rockplanet_boxsci.dmm"
-/datum/map_template/ruin/rockplanet/cult_templar
- id = "cult_templar"
- suffix = "rockplanet_chaosmarine.dmm"
- name = "Bloody Lair"
- description = "Some old base. Besides the rust, it looks almost perfectly intact. But why was it abandoned?"
-
-/datum/map_template/ruin/rockplanet/rd_god
- id = "rd_god"
- suffix = "rockplanet_rd_god.dmm"
- name = "Science experiment"
- description = "Research Director? The experiment to become god has fai-"
-
-/datum/map_template/ruin/rockplanet/pandora
- id = "pandora_arena"
- suffix = "rockplanet_pandora.dmm"
- name = "Pandora Arena"
- description = "Some... thing has settled here."
-
-/datum/map_template/ruin/rockplanet/crash_kitchen
- name = "Crashed Kitchen"
- description = "A crashed part of some unlucky ship."
- id = "crash_kitchen"
- suffix = "rockplanet_crash_kitchen.dmm"
-
/datum/map_template/ruin/rockplanet/crash_cult
name = "Crashed Cult Ship"
description = "A crashed part of some unlucky ship. Has been occupied by a cult."
id = "crash_cult"
suffix = "rockplanet_crash_cult.dmm"
+
+/datum/map_template/ruin/rockplanet/saloon
+ name = "Abandoned saloon"
+ description = "For whatever reason, someone decided to make a colony with a indie style."
+ id = "rockplanet_saloon"
+ suffix = "rockplanet_saloon.dmm"
+
+/datum/map_template/ruin/rockplanet/harmfactory
+ name = "Harm factory"
+ description = "A factory made for HARM and AGONY."
+ id = "rockplanet_harmfactory"
+ suffix = "rockplanet_harmfactory.dmm"
diff --git a/code/datums/ruins/wasteplanet.dm b/code/datums/ruins/wasteplanet.dm
new file mode 100644
index 000000000000..50afdf5ded0b
--- /dev/null
+++ b/code/datums/ruins/wasteplanet.dm
@@ -0,0 +1,62 @@
+// Hey! Listen! Update \config\wasteruinblacklist.txt with your new ruins!
+
+/datum/map_template/ruin/wasteplanet
+ prefix = "_maps/RandomRuins/WasteRuins/"
+ allow_duplicates = FALSE
+ cost = 5
+
+/datum/map_template/ruin/wasteplanet/fortress
+ name = "Fortress of Solitide"
+ id = "solitude"
+ description = "A fortress, although one you are probably more familiar with."
+ suffix = "wasteplanet_fortress_of_solitide.dmm"
+
+/datum/map_template/ruin/wasteplanet/weaponstest
+ name = "Weapons testing facility"
+ id = "guntested"
+ description = "A abandoned Nanotrasen weapons facility, presumably the place where the X-01 was manufactured."
+ suffix = "wasteplanet_lab.dmm"
+
+/datum/map_template/ruin/wasteplanet/oreprocess
+ name = "Ore Processing Facility"
+ id = "oreprocess"
+ description = "A fortress, although one you are probably more familiar with.."
+ suffix = "wasteplanet_ore_proccessing_facility.dmm"
+
+/datum/map_template/ruin/wasteplanet/pandora
+ id = "pandora_arena"
+ suffix = "wasteplanet_pandora.dmm"
+ name = "Pandora Arena"
+ description = "Some... thing has settled here."
+
+/* Greeble
+/datum/map_template/ruin/wasteplanet/pod
+ name = "Derelict pod"
+ id = "oldpod"
+ description = "A large, old pod."
+ suffix = "wasteplanet_pod.dmm"
+*/
+
+/datum/map_template/ruin/wasteplanet/crash_kitchen
+ name = "Crashed Kitchen"
+ description = "A crashed part of some unlucky ship."
+ id = "crash_kitchen"
+ suffix = "wasteplanet_crash_kitchen.dmm"
+
+/datum/map_template/ruin/wasteplanet/radiation
+ name = "Honorable deeds storage"
+ id = "wasteplanet_radiation"
+ description = "A dumping ground for nuclear waste."
+ suffix = "wasteplanet_unhonorable.dmm"
+
+/datum/map_template/ruin/wasteplanet/tradepost
+ name = "Tradepost"
+ id = "oldpod"
+ description = "An abandoned tradepost."
+ suffix = "wasteplanet_tradepost.dmm"
+
+/datum/map_template/ruin/wasteplanet/tarpit
+ name = "Tar pit"
+ id = "tarpit"
+ description = "A facility once constructed over a asphalt deposit."
+ suffix = "wasteplanet_tarpit.dmm"
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index e751e1f2be2f..24f9a777361e 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -741,3 +741,26 @@
/datum/status_effect/metab_frozen/on_remove()
. = ..()
REMOVE_TRAIT(owner, TRAIT_NOMETABOLISM, "[STATUS_EFFECT_TRAIT]_[id]")
+
+/datum/status_effect/stagger
+ id = "stagger"
+ status_type = STATUS_EFFECT_REFRESH
+ duration = 30 SECONDS
+ tick_interval = 1 SECONDS
+ alert_type = null
+
+/datum/status_effect/stagger/on_apply()
+ owner.next_move_modifier *= 1.5
+ if(ishostile(owner))
+ var/mob/living/simple_animal/hostile/simple_owner = owner
+ simple_owner.ranged_cooldown_time *= 2.5
+ return TRUE
+
+/datum/status_effect/stagger/on_remove()
+ . = ..()
+ if(QDELETED(owner))
+ return
+ owner.next_move_modifier /= 1.5
+ if(ishostile(owner))
+ var/mob/living/simple_animal/hostile/simple_owner = owner
+ simple_owner.ranged_cooldown_time /= 2.5
diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm
index 51f701e07b5f..142bda8a9572 100644
--- a/code/datums/weather/weather.dm
+++ b/code/datums/weather/weather.dm
@@ -145,7 +145,7 @@
var/area/A = V
if(!(my_controller.mapzone.is_in_bounds(A)))
continue
- if(protect_indoors && !A.outdoors)
+ if(protect_indoors && !A.allow_weather)
outside_areas |= A
continue
if(A.underground && !affects_underground)
diff --git a/code/datums/weather/weather_controller.dm b/code/datums/weather/weather_controller.dm
index 3c491eb70b3d..ad4d5005c049 100644
--- a/code/datums/weather/weather_controller.dm
+++ b/code/datums/weather/weather_controller.dm
@@ -98,7 +98,18 @@
)
/datum/weather_controller/chlorine
- possible_weathers = list(/datum/weather/acid_rain = 100)
+ possible_weathers = list(
+ /datum/weather/acid_rain = 30,
+ /datum/weather/nuclear_fallout = 40,
+ /datum/weather/nuclear_fallout/normal = 10,
+ )
/datum/weather_controller/shrouded
possible_weathers = list(/datum/weather/shroud_storm = 100)
+
+/datum/weather_controller/rockplanet
+ possible_weathers = list(
+ /datum/weather/sandstorm/rockplanet/harmless = 80,
+ /datum/weather/sandstorm/rockplanet = 20,
+ /datum/weather/snowfall = 5,
+ )
diff --git a/code/datums/weather/weather_types/acid_rain.dm b/code/datums/weather/weather_types/acid_rain.dm
index 0e64ce7337e9..2dc82b2ad97a 100644
--- a/code/datums/weather/weather_types/acid_rain.dm
+++ b/code/datums/weather/weather_types/acid_rain.dm
@@ -5,6 +5,7 @@
telegraph_duration = 400
telegraph_message = "Thunder rumbles far above. You hear droplets drumming against the canopy. Seek shelter."
+ telegraph_overlay = "acid_rain_low"
weather_message = "Acidic rain pours down around you! Get inside!"
weather_overlay = "acid_rain"
diff --git a/code/datums/weather/weather_types/nuclear_fallout.dm b/code/datums/weather/weather_types/nuclear_fallout.dm
new file mode 100644
index 000000000000..1bf442382064
--- /dev/null
+++ b/code/datums/weather/weather_types/nuclear_fallout.dm
@@ -0,0 +1,38 @@
+/datum/weather/nuclear_fallout //ported from NSV, at least some part of the RBMK can live on.
+ name = "nuclear fallout"
+ desc = "Irradiated dust falls down everywhere."
+
+ telegraph_duration = 20 SECONDS
+ telegraph_message = "The air suddenly becomes dusty.."
+ telegraph_overlay = "fallout"
+
+ weather_message = "You feel a wave of hot ash fall down on you."
+ weather_overlay = "snowfall_heavy"
+ weather_duration_lower = 600
+ weather_duration_upper = 1500
+
+ area_type = /area
+ protect_indoors = TRUE
+
+ weather_color = "green"
+ telegraph_sound = null
+ weather_sound = 'sound/weather/fallout/falloutwind.ogg'
+ end_duration = 100
+
+ end_message = "The ash stops falling."
+ immunity_type = "rad"
+
+/datum/weather/nuclear_fallout/weather_act(mob/living/akimov)
+ akimov.rad_act(100)
+ to_chat(akimov, "You taste metal.")
+
+/datum/weather/nuclear_fallout/normal
+ name = "dust storm"
+ desc = "The extreme dust creates a harsh wind, harmless."
+
+ weather_message = "You feel a wave of dusty air blow through you."
+ weather_overlay = "dust"
+
+ end_message = "The dust stops blowing."
+
+ aesthetic = TRUE
diff --git a/code/datums/weather/weather_types/sandstorm.dm b/code/datums/weather/weather_types/sandstorm.dm
index b2d30a56d78a..4e09da948fe7 100644
--- a/code/datums/weather/weather_types/sandstorm.dm
+++ b/code/datums/weather/weather_types/sandstorm.dm
@@ -23,10 +23,10 @@
barometer_predictable = TRUE
affects_underground = FALSE
- sound_active_outside = /datum/looping_sound/weather/wind/indoors
- sound_active_inside = /datum/looping_sound/weather/wind
- sound_weak_outside = /datum/looping_sound/weather/wind/indoors
- sound_weak_inside = /datum/looping_sound/weather/wind
+ sound_active_outside = /datum/looping_sound/active_outside_ashstorm
+ sound_active_inside = /datum/looping_sound/active_inside_ashstorm
+ sound_weak_outside = /datum/looping_sound/weak_outside_ashstorm
+ sound_weak_inside = /datum/looping_sound/weak_inside_ashstorm
opacity_in_main_stage = TRUE
@@ -40,3 +40,47 @@
carbon.adjustOxyLoss(1.5)
if(prob(10))
carbon.emote("cough")
+
+/datum/weather/sandstorm/rockplanet //for rock games ! !
+ name = "severe sandstorm"
+ desc = "My battery is low and it's getting dark."
+
+ telegraph_message = "You see a dust cloud rising over the horizon, coming in fast!"
+ telegraph_overlay = "dust_med"
+ telegraph_sound = 'sound/effects/siren.ogg'
+
+ weather_message = "Rough sand and wind batter you! Get inside!"
+ weather_overlay = "dust_high"
+
+ end_message = "The shrieking wind whips away the last of the sand and falls to its usual murmur. It should be safe to go outside now."
+ end_overlay = "dust_low"
+
+/datum/weather/sandstorm/rockplanet/weather_act(mob/living/living_mob)
+ if(iscarbon(living_mob))
+ var/mob/living/carbon/carbon = living_mob
+ carbon.adjustBruteLoss(6)
+ to_chat(carbon, "You are battered by the coarse sand!")
+ if(HAS_TRAIT(carbon, TRAIT_NOBREATH))
+ return
+ if(carbon.is_mouth_covered())
+ return
+ carbon.adjustOxyLoss(3.5)
+ if(prob(10))
+ carbon.emote("cough")
+
+/datum/weather/sandstorm/rockplanet/harmless
+ name = "Sandfall"
+ desc = "A passing sandstorm blankets the area in sand."
+
+ telegraph_message = "The wind begins to intensify, blowing sand up from the ground."
+ telegraph_overlay = "dust_low"
+ telegraph_sound = null
+
+ weather_message = "Gentle sand wafts down around you like grotesque snow."
+ weather_overlay = "dust_med"
+
+ end_message = "The sandfall slows, stops. Another layer of sand on the mesa beneath your feet."
+ end_overlay = "dust_low"
+
+ aesthetic = TRUE
+ opacity_in_main_stage = FALSE
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 31f72e828363..131e2c0fc5fd 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -29,8 +29,10 @@
/// If a room is too big it doesn't have beauty.
var/beauty_threshold = 150
- /// For space, the asteroid, lavaland, etc. Used with blueprints or with weather to determine if we are adding a new area (vs editing a station room)
+ /// For space, the asteroid, lavaland, etc. Used with blueprints to determine if we are adding a new area (vs editing a station room)
var/outdoors = FALSE
+ ///Do we allow weather?
+ var/allow_weather = FALSE
/// Size of the area in open turfs, only calculated for indoors areas.
var/areasize = 0
diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
index daf0010f0cbe..c39fcb9a4ad6 100644
--- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
+++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm
@@ -110,6 +110,12 @@
} \
/obj/effect/turf_decal/spline/fancy/corner/##color_name { \
icon_state = "spline_fancy_corner" \
+ } \
+ /obj/effect/turf_decal/road/line/##color_name { \
+ color = ##tile_color \
+ } \
+ /obj/effect/turf_decal/road/line/edge/##color_name { \
+ color = ##tile_color \
}
//opaque
@@ -724,3 +730,26 @@ TURF_DECAL_COLOR_HELPER(transparent/inteqbrown, "#4b2a18", 140)
alpha = 230
icon = 'icons/obj/solgov_floor.dmi'
icon_state = "center"
+
+/obj/effect/turf_decal/road
+ name = "roal decal"
+ icon_state = "road"
+ alpha = 180
+
+/obj/effect/turf_decal/road/edge
+ icon_state = "road_edge"
+
+/obj/effect/turf_decal/road/stripes
+ icon_state = "road_stripes"
+
+/obj/effect/turf_decal/road/stop
+ icon_state = "road_stop"
+
+/obj/effect/turf_decal/road/slow
+ icon_state = "road_slow"
+
+/obj/effect/turf_decal/road/line
+ icon_state = "road_line"
+
+/obj/effect/turf_decal/road/line/edge
+ icon_state = "road_line_edge"
diff --git a/code/game/objects/items/decal_painter.dm b/code/game/objects/items/decal_painter.dm
index 79dd0b695e7a..51e925f878bf 100644
--- a/code/game/objects/items/decal_painter.dm
+++ b/code/game/objects/items/decal_painter.dm
@@ -163,7 +163,8 @@
"siding_thinplating_corner","siding_wideplating_line","siding_wideplating_end","siding_wideplating_corner","siding_wood_line",
"siding_wood_corner","siding_wood_end","trimline","trimline_corner","trimline_end","trimline_box","trimline_arrow_cw","trimline_arrow_ccw","trimline_fill",
"trimline_corner_fill","trimline_end_fill","trimline_box_fill","trimline_arrow_cw_fill","trimline_arrow_ccw_fill",
- "trimline_shrink_cw","trimline_shrink_ccw","trimline_warn", "trimline_warn_fill"
+ "trimline_shrink_cw","trimline_shrink_ccw","trimline_warn", "trimline_warn_fill",
+ "road","road_edge", "road_stripes", "road_stop", "road_slow", "road_line", "road_line_edge"
)
var/list/color_disallowed = list(
diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm
index bfdab8215a2c..e81e22133066 100644
--- a/code/game/objects/structures/flora.dm
+++ b/code/game/objects/structures/flora.dm
@@ -22,6 +22,10 @@
layer = FLY_LAYER
var/log_amount = 10
+/obj/structure/flora/tree/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/largetransparency)
+
/obj/structure/flora/tree/attackby(obj/item/W, mob/user, params)
if(log_amount && (!(flags_1 & NODECONSTRUCT_1)))
if(W.get_sharpness() && W.force > 0)
@@ -102,6 +106,22 @@
desc = "A wonderous decorated Christmas tree. It has a seemly endless supply of presents!"
unlimited = TRUE
+/obj/structure/flora/tree/tall
+ icon = 'icons/obj/flora/tall_trees.dmi'
+ desc = "A remarkably tall tree."
+ icon_state = "pine_1"
+
+/obj/structure/flora/tree/dead/barren/Initialize()
+ . = ..()
+ icon_state = "pine_[rand(1, 2)]"
+
+/obj/structure/flora/tree/tall/whitesands
+ color = "#846996"
+
+/obj/structure/flora/tree/dead/barren/Initialize()
+ . = ..()
+ color = pick( "#846996", "#7b4e99", "#924fab")
+
/obj/structure/flora/tree/dead
icon = 'icons/obj/flora/deadtrees.dmi'
desc = "A dead tree. How it died, you know not."
@@ -678,3 +698,199 @@
description = "It's like a root is digging into my heart.\n"
mood_change = -6
timeout = 5 MINUTES
+
+/obj/structure/flora/firebush
+ name = "flaming bush"
+ desc = "A bush being consumed by flames. Maybe it'll rise from its ashes like a phoenix?"
+ icon = 'icons/obj/flora/hellflora.dmi'
+ icon_state = "hell_bush"
+ density = FALSE
+ light_color = "#e08300"
+ light_power = 2
+ light_range = 3
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/ausbushes/fullgrass/hell
+ name = "thick hellish grass"
+ desc = "A thick patch of grass tinted red."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_range = 2
+ light_power = 3
+ resistance_flags = LAVA_PROOF
+ gender = PLURAL
+
+/obj/structure/flora/ausbushes/fullgrass/hell/Initialize()
+ . = ..()
+ icon_state = "fullgrass_[rand(1, 3)]"
+ light_color = pick("#e87800", "#780606")
+
+/obj/structure/flora/ausbushes/sparsegrass/hell
+ name = "sparse hellish grass"
+ desc = "A sparse patch of grass tinted red."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_range = 2
+ light_power = 3
+ resistance_flags = LAVA_PROOF
+ gender = PLURAL
+
+/obj/structure/flora/ausbushes/sparsegrass/hell/Initialize()
+ . = ..()
+ icon_state = "sparsegrass_[rand(1, 3)]"
+ light_color = pick("#e87800", "#780606")
+
+/obj/structure/flora/ausbushes/grassybush/hell
+ name = "crimson bush"
+ desc = "A crimson bush, native to lava planets."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_color = "#c70404"
+ light_range = 2
+ light_power = 3
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/ausbushes/hell
+ name = "smouldering bush"
+ desc = "Some kind of orange plant that appears to be slowly burning."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_range = 2
+ light_power = 1
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/ausbushes/hell/Initialize()
+ . = ..()
+ if(icon_state == "firstbush_1")
+ icon_state = "firstbush_[rand(1, 4)]"
+ light_color = pick("#e87800", "#780606")
+
+/obj/structure/flora/ausbushes/fernybush/hell
+ name = "hellish fern"
+ desc = "Some kind of orange fern."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_range = 2
+ light_power = 1
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/ausbushes/fernybush/hell/Initialize()
+ . = ..()
+ icon_state = "fernybush_[rand(1, 3)]"
+ light_color = pick("#e87800", "#780606")
+
+/obj/structure/flora/ausbushes/genericbush/hell
+ name = "hellish bush"
+ desc = "A small crimson bush."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_range = 2
+ light_power = 2
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/ausbushes/genericbush/hell/Initialize()
+ . = ..()
+ icon_state = "genericbush_[rand(1, 4)]"
+ light_color = pick("#e87800", "#780606")
+
+/obj/structure/flora/ausbushes/ywflowers/hell
+ name = "lavablossom"
+ desc = "Some red and orange flowers. They appear to be faintly glowing."
+ icon = 'icons/obj/flora/hellflora.dmi'
+ light_color = "#aba507"
+ light_power = 3
+ light_range = 2
+ resistance_flags = LAVA_PROOF
+ gender = PLURAL
+
+/obj/structure/flora/rock/lava
+ name = "lavatic rock"
+ desc = "A volcanic rock. Lava is gushing from it. "
+ icon = 'icons/obj/flora/lavarocks.dmi'
+ icon_state = "basalt"
+ light_color = "#ab4907"
+ light_power = 3
+ light_range = 2
+
+/obj/structure/flora/rock/pile/lava
+ name = "rock shards"
+ desc = "Jagged shards of volcanic rock protuding from the ground."
+ icon = 'icons/obj/flora/lavarocks.dmi'
+ icon_state = "lavarocks"
+ gender = PLURAL
+
+/obj/structure/flora/rock/asteroid
+ name = "pebbles"
+ desc = "Some small pebbles, sheared off a larger rock."
+ icon_state = "asteroid0"
+ base_icon_state = "asteroid"
+ density = FALSE
+ gender = PLURAL
+
+/obj/structure/flora/rock/asteroid/Initialize()
+ . = ..()
+ icon_state = "[base_icon_state][rand(0,9)]"
+
+/obj/structure/flora/tree/dead/hell
+ name = "crimson tree"
+ desc = "A crimson tree with lava oozing from it, providing a slight glow."
+ icon = 'icons/obj/flora/lavatrees.dmi'
+ pixel_x = -16
+ light_color = LIGHT_COLOR_BLOOD_MAGIC
+ light_range = 2
+ light_power = 0.85
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/tree/dead_pine
+ name = "dead pine"
+ desc = "A dead pine tree, its leaves stripped away."
+ icon = 'icons/obj/flora/bigtrees.dmi'
+ icon_state = "med_pine_dead"
+ pixel_x = -16
+
+/obj/structure/flora/tree/dead/tall
+ name = "dead tall tree"
+ desc = "The last vestiges of an once majestic tree."
+ icon = 'icons/obj/flora/tall_trees.dmi'
+ icon_state = "tree_1"
+ base_icon_state = "tree"
+ pixel_x = -16
+ resistance_flags = LAVA_PROOF
+
+/obj/structure/flora/tree/dead/tall/Initialize()
+ . = ..()
+ icon_state = "[base_icon_state]_[rand(1,3)]"
+
+/obj/structure/flora/tree/dead/tall/grey
+ name = "ashen tree"
+ desc = "A tree carbonized by the heat of the planet."
+ icon = 'icons/obj/flora/tall_trees_dead.dmi'
+
+
+/obj/structure/flora/tree/cactus
+ name = "saguaro cactus"
+ desc = "A cacti species originating from the Sol system. Initially set up on Mars to help with terraforming, it can now be found on pretty much every planet with a similar enviroment, for one reason or another."
+ icon = 'icons/obj/flora/bigtrees.dmi'
+ icon_state = "cactus"
+ density = TRUE
+
+/obj/structure/flora/tree/cactus/Initialize()
+ . = ..()
+ icon_state = "cactus[rand(1, 4)]"
+
+/obj/structure/flora/rock/hell
+ name = "rock"
+ desc = "A volcanic rock, one of the few familiar things on this planet."
+ icon_state = "basalt"
+ icon = 'icons/obj/flora/rocks.dmi'
+
+/obj/structure/flora/rock/beach
+ name = "sea stack"
+ desc = "A column of rock, formed by wave erosion."
+ icon_state = "basalt"
+ icon = 'icons/obj/flora/rocks.dmi'
+
+/obj/structure/flora/tree/dead/barren
+ name = "barren tree"
+ desc = "A tree turned purple from mutations to adapt to its environment. It seems to have done a great job!"
+ color = "#846996"
+ icon = 'icons/obj/flora/barren_tree.dmi'
+
+/obj/structure/flora/tree/dead/barren/Initialize()
+ . = ..()
+ color = pick( "#846996", "#7b4e99", "#924fab")
+ icon_state = "barren_large"
diff --git a/code/game/objects/structures/tribal_torch.dm b/code/game/objects/structures/tribal_torch.dm
index 3d095d654027..abec3409e470 100644
--- a/code/game/objects/structures/tribal_torch.dm
+++ b/code/game/objects/structures/tribal_torch.dm
@@ -47,3 +47,7 @@
/obj/structure/destructible/tribal_torch/fire_act(exposed_temperature, exposed_volume)
StartBurning()
+
+/obj/structure/destructible/tribal_torch/lit/Initialize()
+ . = ..()
+ StartBurning()
diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm
index 911fc53acaf3..31b6add531f0 100644
--- a/code/game/turfs/closed/minerals.dm
+++ b/code/game/turfs/closed/minerals.dm
@@ -14,7 +14,7 @@
layer = EDGED_TURF_LAYER
initial_temperature = TCMB
base_icon_state = "smoothrocks"
- var/smooth_icon = 'icons/turf/smoothrocks.dmi'
+ var/smooth_icon = 'icons/turf/walls/smoothrocks.dmi'
var/environment_type = "asteroid"
var/turf/open/floor/plating/turf_type = /turf/open/floor/plating/asteroid/airless
var/obj/item/stack/ore/mineralType = null
@@ -23,12 +23,15 @@
var/scan_state = "" //Holder for the image we display when we're pinged by a mining scanner
var/defer_change = 0
var/has_borders = TRUE
+ /// these vars set how much the pixels translate. This is meant for turfs that are bigger than 32x32
+ var/x_offset = -4
+ var/y_offset = -4
/turf/closed/mineral/Initialize(mapload, inherited_virtual_z)
. = ..()
if(has_borders)
var/matrix/M = new
- M.Translate(-4, -4)
+ M.Translate(x_offset, y_offset)
transform = M
icon = smooth_icon
@@ -231,34 +234,41 @@
initial_gas_mix = "o2=22;n2=82;TEMP=293.15"
/turf/closed/mineral/random/snow
- name = "snowy mountainside"
- icon = 'icons/turf/mining.dmi'
- smooth_icon = 'icons/turf/walls/mountain_wall.dmi'
- icon_state = "mountainrock"
- base_icon_state = "mountain_wall"
+ name = "rocky wall"
+ icon = 'icons/turf/walls/rockwall_icemoon.dmi'
+ smooth_icon = 'icons/turf/walls/rockwall_icemoon.dmi'
+ icon_state = "rockwall_icemoon-0"
+ base_icon_state = "rockwall_icemoon"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS)
- defer_change = TRUE
environment_type = "snow_cavern"
- turf_type = /turf/open/floor/plating/asteroid/snow/icemoon
- baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/icerock
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ defer_change = TRUE
+ mineralChance = 20 //as most caves is snowy, might as well bump up the chance
-/turf/closed/mineral/random/snow/Change_Ore(ore_type, random = 0)
- . = ..()
- if(mineralType)
- smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
- icon = 'icons/turf/walls/icerock_wall.dmi'
- icon_state = "icerock_wall-0"
- base_icon_state = "icerock_wall"
- smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
-
-/turf/closed/mineral/random/snow
mineralSpawnChanceList = list(
/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10, /obj/item/stack/ore/titanium = 11,
/obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40,
/turf/closed/mineral/gibtonite/ice/icemoon = 4, /obj/item/stack/ore/bluespace_crystal = 1)
+/turf/closed/mineral/ice
+ name = "icey wall"
+ icon = 'icons/turf/walls/icewall.dmi'
+ smooth_icon = 'icons/turf/walls/icewall.dmi'
+ icon_state = "icewall-0"
+ base_icon_state = "icewall"
+ defer_change = TRUE
+ environment_type = "snow_cavern"
+ turf_type = /turf/open/floor/plating/asteroid/iceberg/lit
+ baseturfs = /turf/open/floor/plating/asteroid/iceberg/lit
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ opacity = FALSE
+ light_range = 2
+ light_power = 1
+
+
/turf/closed/mineral/random/snow/underground
baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon
// abundant ore
@@ -425,10 +435,10 @@
base_icon_state = "mountain_wall"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS)
- baseturfs = /turf/open/floor/plating/asteroid/snow
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
initial_gas_mix = FROZEN_ATMOS
environment_type = "snow"
- turf_type = /turf/open/floor/plating/asteroid/snow
+ turf_type = /turf/open/floor/plating/asteroid/icerock
defer_change = TRUE
/turf/closed/mineral/snowmountain/icemoon
@@ -443,13 +453,13 @@
icon_state = "icerock"
base_icon_state = "icerock_wall"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
- baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
environment_type = "snow_cavern"
- turf_type = /turf/open/floor/plating/asteroid/snow/ice
+ turf_type = /turf/open/floor/plating/asteroid/icerock
/turf/closed/mineral/snowmountain/cavern/icemoon
- baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
- turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
+ turf_type = /turf/open/floor/plating/asteroid/icerock
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
//yoo RED ROCK RED ROCK
@@ -484,7 +494,7 @@
/turf/closed/mineral/gibtonite/proc/explosive_reaction(mob/user = null, triggered_by_explosion = 0)
if(stage == GIBTONITE_UNSTRUCK)
- activated_overlay = mutable_appearance('icons/turf/smoothrocks.dmi', "rock_Gibtonite_active", ON_EDGED_TURF_LAYER)
+ activated_overlay = mutable_appearance('icons/turf/walls/smoothrocks.dmi', "rock_Gibtonite_active", ON_EDGED_TURF_LAYER)
add_overlay(activated_overlay)
name = "gibtonite deposit"
desc = "An active gibtonite reserve. Run!"
@@ -560,9 +570,10 @@
/turf/closed/mineral/gibtonite/ice
environment_type = "snow_cavern"
- icon_state = "icerock_Gibtonite"
- smooth_icon = 'icons/turf/walls/icerock_wall.dmi'
- base_icon_state = "icerock_wall"
+ icon = 'icons/turf/walls/rockwall_icemoon.dmi'
+ smooth_icon = 'icons/turf/walls/rockwall_icemoon.dmi'
+ icon_state = "rockwall_icemoon-0"
+ base_icon_state = "rockwall_icemoon"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
turf_type = /turf/open/floor/plating/asteroid/snow/ice
baseturfs = /turf/open/floor/plating/asteroid/snow/ice
@@ -570,9 +581,10 @@
defer_change = TRUE
/turf/closed/mineral/gibtonite/ice/icemoon
- turf_type = /turf/open/floor/plating/asteroid/snow/ice/icemoon
- baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ turf_type = /turf/open/floor/plating/asteroid/icerock
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ defer_change = TRUE
/turf/closed/mineral/strong
name = "Very strong rock"
@@ -728,3 +740,54 @@
initial_gas_mix = WHITESANDS_ATMOS
defer_change = TRUE
has_borders = FALSE
+
+/turf/closed/mineral/random/jungle
+ name = "mountain wall"
+ icon = 'icons/turf/walls/jungle_wall.dmi'
+ smooth_icon = 'icons/turf/walls/jungle_wall.dmi'
+ icon_state = "jungle_wall-0"
+ base_icon_state = "jungle_wall"
+ smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
+ canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS)
+ turf_type = /turf/open/floor/plating/dirt/jungle
+ baseturfs = /turf/open/floor/plating/dirt/jungle
+ mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10,
+ /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, /obj/item/stack/ore/titanium = 11,
+ /obj/item/stack/ore/bluespace_crystal = 1)
+
+/turf/closed/mineral/random/beach
+ baseturfs = /turf/open/floor/plating/asteroid/sand/dense
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+
+/turf/closed/mineral/random/asteroid/rockplanet
+ name = "iron rock"
+ icon = 'icons/turf/mining.dmi'
+ icon_state = "redrock"
+ smooth_icon = 'icons/turf/walls/red_wall.dmi'
+ base_icon_state = "red_wall"
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ baseturfs = /turf/open/floor/plating/asteroid/rockplanet
+ turf_type = /turf/open/floor/plating/asteroid/rockplanet
+ mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10,
+ /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, /obj/item/stack/ore/titanium = 11,
+ /turf/closed/mineral/gibtonite/rockplanet = 4, /obj/item/stack/ore/bluespace_crystal = 1)
+
+/turf/closed/mineral/gibtonite/rockplanet
+ name = "iron rock"
+ icon = 'icons/turf/mining.dmi'
+ icon_state = "redrock"
+ smooth_icon = 'icons/turf/walls/red_wall.dmi'
+ base_icon_state = "red_wall"
+
+/turf/closed/mineral/random/asteroid/wasteplanet
+ name = "cracked rock"
+ icon = 'icons/turf/walls/wasteplanet.dmi'
+ icon_state = "wasteplanet-255"
+ smooth_icon = 'icons/turf/walls/wasteplanet.dmi'
+ base_icon_state = "wasteplanet"
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 7, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 5,
+ /obj/item/stack/ore/silver = 7, /obj/item/stack/ore/plasma = 15, /obj/item/stack/ore/iron = 55, /obj/item/stack/ore/titanium = 6,
+ /obj/item/stack/ore/bluespace_crystal = 1)
+ mineralChance = 30
diff --git a/code/game/turfs/open/acid.dm b/code/game/turfs/open/acid.dm
new file mode 100644
index 000000000000..f00da187be47
--- /dev/null
+++ b/code/game/turfs/open/acid.dm
@@ -0,0 +1,161 @@
+/turf/open/acid
+ name = "acid lake"
+ icon_state = "acid"
+ gender = PLURAL
+ baseturfs = /turf/open/acid
+ slowdown = 2
+
+ light_range = 2
+ light_power = 0.75
+ light_color = LIGHT_COLOR_SLIME_LAMP
+ bullet_bounce_sound = 'sound/items/welder2.ogg'
+
+ footstep = FOOTSTEP_LAVA
+ barefootstep = FOOTSTEP_LAVA
+ clawfootstep = FOOTSTEP_LAVA
+ heavyfootstep = FOOTSTEP_LAVA
+
+/turf/open/acid/CanAllowThrough(atom/movable/AM, turf/target)
+ if(ishostile(AM))
+ return FALSE
+ return ..()
+
+/turf/open/acid/ex_act(severity, target)
+ contents_explosion(severity, target)
+
+/turf/open/acid/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent)
+ return
+
+/turf/open/acid/Melt()
+ to_be_destroyed = FALSE
+ return src
+
+/turf/open/acid/acid_act(acidpwr, acid_volume)
+ return
+
+/turf/open/acid/MakeDry(wet_setting = TURF_WET_WATER)
+ return
+
+/turf/open/acid/airless
+ initial_gas_mix = AIRLESS_ATMOS
+
+/turf/open/acid/Entered(atom/movable/AM)
+ . = ..()
+ if(melt_stuff(AM))
+ START_PROCESSING(SSobj, src)
+
+/turf/open/acid/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
+ if(melt_stuff(AM))
+ START_PROCESSING(SSobj, src)
+
+/turf/open/acid/process()
+ if(!melt_stuff())
+ STOP_PROCESSING(SSobj, src)
+
+/turf/open/acid/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
+ switch(the_rcd.mode)
+ if(RCD_FLOORWALL)
+ return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 3)
+ return FALSE
+
+/turf/open/acid/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
+ switch(passed_mode)
+ if(RCD_FLOORWALL)
+ to_chat(user, "You build a floor.")
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
+ return TRUE
+ return FALSE
+
+/turf/open/acid/singularity_act()
+ return
+
+/turf/open/acid/singularity_pull(S, current_size)
+ return
+
+/turf/open/acid/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
+ underlay_appearance.icon = 'icons/turf/floors.dmi'
+ underlay_appearance.icon_state = "basalt"
+ return TRUE
+
+/turf/open/acid/attackby(obj/item/C, mob/user, params)
+ ..()
+ if(istype(C, /obj/item/stack/rods))
+ var/obj/item/stack/rods/R = C
+ var/obj/structure/lattice/H = locate(/obj/structure/lattice, src)
+ if(H)
+ to_chat(user, "There is already a lattice here!")
+ return
+ if(R.use(2))
+ to_chat(user, "You construct a catwalk.")
+ playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
+ new /obj/structure/lattice/catwalk(locate(x, y, z))
+ else
+ to_chat(user, "You need one rod to build a lattice.")
+ return
+
+/turf/open/acid/proc/is_safe_to_cross()
+ //if anything matching this typecache is found in the lava, we don't burn things
+ var/static/list/acid_safeties_typecache = typecacheof(list(/obj/structure/catwalk, /obj/structure/stone_tile, /obj/structure/lattice/))
+ var/list/found_safeties = typecache_filter_list(contents, acid_safeties_typecache)
+ for(var/obj/structure/stone_tile/stone_tile in found_safeties)
+ if(stone_tile.fallen)
+ LAZYREMOVE(found_safeties, stone_tile)
+ return LAZYLEN(found_safeties)
+
+
+/turf/open/acid/proc/melt_stuff(AM)
+ if(is_safe_to_cross())
+ return FALSE
+ . = FALSE
+ var/thing_to_check = src
+ if (AM)
+ thing_to_check = list(AM)
+ for(var/thing in thing_to_check)
+ if(isobj(thing))
+ var/obj/O = thing
+ if((O.resistance_flags & (ACID_PROOF|INDESTRUCTIBLE)) || O.throwing)
+ continue
+ . = TRUE
+ if((O.acid_level))
+ continue
+ if(O.resistance_flags & UNACIDABLE)
+ O.resistance_flags &= ~UNACIDABLE
+ if(O.armor.acid == 100) //acid proof armor will probably be acid proof
+ continue
+ O.acid_act(10, 20)
+
+ else if (isliving(thing))
+ . = TRUE
+ var/mob/living/L = thing
+ if(L.movement_type & FLYING)
+ continue //YOU'RE FLYING OVER IT
+ var/buckle_check = L.buckling
+ if(!buckle_check)
+ buckle_check = L.buckled
+ if(isobj(buckle_check))
+ var/obj/O = buckle_check
+ if(O.resistance_flags & LAVA_PROOF)
+ continue
+ else if(isliving(buckle_check))
+ var/mob/living/live = buckle_check
+ if("acid" in live.weather_immunities)
+ continue
+
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ var/obj/item/clothing/S = C.get_item_by_slot(ITEM_SLOT_OCLOTHING)
+ var/obj/item/clothing/H = C.get_item_by_slot(ITEM_SLOT_HEAD)
+
+ if(S && H && S.armor.acid == 100 && H.armor.acid == 100)
+ return
+
+ if("acid" in L.weather_immunities)
+ continue
+
+ L.adjustFireLoss(20)
+ if(L) //mobs turning into object corpses could get deleted here.
+ L.acid_act(50, 100)
+
+/turf/open/acid/whitesands
+ planetary_atmos = TRUE
+ initial_gas_mix = WHITESANDS_ATMOS
diff --git a/code/game/turfs/open/floor/conc_floor.dm b/code/game/turfs/open/floor/conc_floor.dm
index 448d069661f6..229cfabb61e9 100644
--- a/code/game/turfs/open/floor/conc_floor.dm
+++ b/code/game/turfs/open/floor/conc_floor.dm
@@ -5,7 +5,7 @@
broken_states = list("concdam_1", "concdam_2", "concdam_3", "concdam_4")
floor_tile = null
tiled_dirt = FALSE
- footstep = FOOTSTEP_FLOOR
+ footstep = FOOTSTEP_CONCRETE
barefootstep = FOOTSTEP_HARD_BAREFOOT
clawfootstep = FOOTSTEP_HARD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
@@ -269,3 +269,12 @@
/turf/open/floor/concrete/reinforced/acid_act(acidpwr, acid_volume)
acidpwr = min(acidpwr, 50)
return ..()
+
+/turf/open/floor/concrete/pavement
+ name = "pavement"
+ desc = "The hot, coarse, and somewhat pavement. Vehicles driven on this are generally quiter than on traditional concrete, and is prefered for roadways."
+ icon_state = "pavement"
+ broken_states = null
+ shape_types = list(
+ /turf/open/floor/concrete/pavement,
+ )
diff --git a/code/game/turfs/open/floor/fancy_floor.dm b/code/game/turfs/open/floor/fancy_floor.dm
index 897376b2e9a7..7686d70612ab 100644
--- a/code/game/turfs/open/floor/fancy_floor.dm
+++ b/code/game/turfs/open/floor/fancy_floor.dm
@@ -137,6 +137,10 @@
/turf/open/floor/grass/fairy/spawniconchange()
icon_state = "fairygrass[rand(0,3)]"
+/turf/open/floor/grass/fairy/beach
+ baseturfs = /turf/open/floor/plating/beach/sand
+ planetary_atmos = TRUE
+
/turf/open/floor/grass/snow
gender = PLURAL
name = "snow"
diff --git a/code/game/turfs/open/floor/plating/asteroid.dm b/code/game/turfs/open/floor/plating/asteroid.dm
index c4f74e94decb..31ad23a8eaac 100644
--- a/code/game/turfs/open/floor/plating/asteroid.dm
+++ b/code/game/turfs/open/floor/plating/asteroid.dm
@@ -13,15 +13,17 @@
barefootstep = FOOTSTEP_SAND
clawfootstep = FOOTSTEP_SAND
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
- /// Environment type for the turf
- var/environment_type = "asteroid"
+ attachment_holes = FALSE
+ /// the icon name to be used: for example, asteroid1 - asteroid12 in the icon file
+ base_icon_state = "asteroid"
/// Base turf type to be created by the tunnel
- var/turf_type = /turf/open/floor/plating/asteroid
+ var/turf_type = /turf/open/floor/plating/asteroid // is this unused?
/// Probability floor has a different icon state
var/floor_variance = 20
- attachment_holes = FALSE
+ /// The max amount of unique icons, plus one
+ var/max_icon_states = 12
/// Itemstack to drop when dug by a shovel
- var/obj/item/stack/digResult = /obj/item/stack/ore/glass/basalt
+ var/obj/item/stack/digResult = /obj/item/stack/ore/glass
/// Whether the turf has been dug or not
var/dug
@@ -29,16 +31,17 @@
var/proper_name = name
. = ..()
name = proper_name
+
if(prob(floor_variance))
- icon_state = "[environment_type][rand(0,12)]"
+ icon_state = "[base_icon_state][rand(0,max_icon_states)]"
/// Drops itemstack when dug and changes icon
/turf/open/floor/plating/asteroid/proc/getDug()
new digResult(src, 5)
if(postdig_icon_change)
if(!postdig_icon)
- icon_plating = "[environment_type]_dug"
- icon_state = "[environment_type]_dug"
+ icon_plating = "[base_icon_state]_dug"
+ icon_state = "[base_icon_state]_dug"
dug = TRUE
/// If the user can dig the turf
@@ -46,7 +49,7 @@
if(!dug)
return TRUE
if(user)
- to_chat(user, "Looks like someone has dug here already!")
+ to_chat(user, "You can't dig here!")
/turf/open/floor/plating/asteroid/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
return
@@ -89,56 +92,10 @@
. = SEND_SIGNAL(src, COMSIG_ATOM_EX_ACT, severity, target)
contents_explosion(severity, target)
-/turf/open/floor/plating/lavaland_baseturf
- baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
-
-/turf/open/floor/plating/asteroid/basalt
- name = "volcanic floor"
- baseturfs = /turf/open/floor/plating/asteroid/basalt
- icon = 'icons/turf/floors.dmi'
- icon_state = "basalt"
- icon_plating = "basalt"
- environment_type = "basalt"
- floor_variance = 15
- digResult = /obj/item/stack/ore/glass/basalt
-
-/turf/open/floor/plating/asteroid/basalt/lava //lava underneath
- baseturfs = /turf/open/lava/smooth
-
-/turf/open/floor/plating/asteroid/basalt/airless
- initial_gas_mix = AIRLESS_ATMOS
-
-/turf/open/floor/plating/asteroid/basalt/Initialize(mapload, inherited_virtual_z)
- . = ..()
- set_basalt_light(src)
-
/turf/open/floor/plating/asteroid/getDug()
set_light(0)
return ..()
-/proc/set_basalt_light(turf/open/floor/B)
- switch(B.icon_state)
- if("basalt1", "basalt2", "basalt3")
- B.set_light(2, 0.6, LIGHT_COLOR_LAVA) //more light
- if("basalt5", "basalt9")
- B.set_light(1.4, 0.6, LIGHT_COLOR_LAVA) //barely anything!
-
-///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
-
-/turf/open/floor/plating/asteroid/basalt/lava_land_surface
- initial_gas_mix = LAVALAND_DEFAULT_ATMOS
- planetary_atmos = TRUE
- baseturfs = /turf/open/lava/smooth/lava_land_surface
-
-/turf/open/floor/plating/asteroid/basalt/lava_land_surface/icecropolis
- initial_gas_mix = ICEMOON_DEFAULT_ATMOS
- baseturfs = /turf/open/indestructible/necropolis/icecropolis
-
-/turf/open/floor/plating/asteroid/basalt/lava_land_surface/icecropolis/inside
- initial_gas_mix = "o2=22;n2=82;TEMP=293.15"
- planetary_atmos = FALSE
- baseturfs = /turf/open/indestructible/necropolis/air
-
/turf/open/floor/plating/asteroid/lowpressure
initial_gas_mix = OPENTURF_LOW_PRESSURE
baseturfs = /turf/open/floor/plating/asteroid/lowpressure
@@ -149,73 +106,3 @@
baseturfs = /turf/open/floor/plating/asteroid/airless
turf_type = /turf/open/floor/plating/asteroid/airless
-/turf/open/floor/plating/asteroid/snow
- gender = PLURAL
- name = "snow"
- desc = "Looks cold."
- icon = 'icons/turf/snow.dmi'
- baseturfs = /turf/open/floor/plating/asteroid/snow
- icon_state = "snow"
- icon_plating = "snow"
- initial_gas_mix = FROZEN_ATMOS
- slowdown = 2
- environment_type = "snow"
- flags_1 = NONE
- planetary_atmos = TRUE
- broken_states = list("snow_dug")
- burnt_states = list("snow_dug")
- bullet_sizzle = TRUE
- bullet_bounce_sound = null
- digResult = /obj/item/stack/sheet/mineral/snow
-
-/turf/open/floor/plating/asteroid/snow/burn_tile()
- if(!burnt)
- visible_message("[src] melts away!.")
- slowdown = 0
- burnt = TRUE
- icon_state = "snow_dug"
- return TRUE
- return FALSE
-
-/turf/open/floor/plating/asteroid/snow/icemoon
- baseturfs = /turf/open/openspace/icemoon
- initial_gas_mix = ICEMOON_DEFAULT_ATMOS
- slowdown = 0
-
-/turf/open/lava/plasma/ice_moon
- initial_gas_mix = ICEMOON_DEFAULT_ATMOS
- baseturfs = /turf/open/lava/plasma/ice_moon
- planetary_atmos = TRUE
-
-/turf/open/floor/plating/asteroid/snow/ice
- name = "icy snow"
- desc = "Looks colder."
- baseturfs = /turf/open/floor/plating/asteroid/snow/ice
- initial_gas_mix = "o2=0;n2=82;plasma=24;TEMP=120"
- floor_variance = 0
- icon_state = "snow-ice"
- icon_plating = "snow-ice"
- environment_type = "snow_cavern"
- footstep = FOOTSTEP_FLOOR
- barefootstep = FOOTSTEP_HARD_BAREFOOT
- clawfootstep = FOOTSTEP_HARD_CLAW
- heavyfootstep = FOOTSTEP_GENERIC_HEAVY
-
-/turf/open/floor/plating/asteroid/snow/ice/icemoon
- baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
- initial_gas_mix = ICEMOON_DEFAULT_ATMOS
- planetary_atmos = TRUE
- slowdown = 0
-
-/turf/open/floor/plating/asteroid/snow/ice/burn_tile()
- return FALSE
-
-/turf/open/floor/plating/asteroid/snow/airless
- initial_gas_mix = AIRLESS_ATMOS
-
-/turf/open/floor/plating/asteroid/snow/temperatre
- initial_gas_mix = "o2=22;n2=82;TEMP=255.37"
-
-/turf/open/floor/plating/asteroid/snow/atmosphere
- initial_gas_mix = FROZEN_ATMOS
- planetary_atmos = FALSE
diff --git a/code/game/turfs/open/floor/plating/beach.dm b/code/game/turfs/open/floor/plating/beach.dm
new file mode 100644
index 000000000000..88bb3bbcad1b
--- /dev/null
+++ b/code/game/turfs/open/floor/plating/beach.dm
@@ -0,0 +1,29 @@
+/turf/open/floor/plating/asteroid/sand
+ name = "sand"
+ icon = 'icons/misc/beach.dmi'
+ icon_state = "sand"
+ base_icon_state = "sand"
+ baseturfs = /turf/open/floor/plating/asteroid/sand
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS //custom atmos? lots of oxygen, hot?
+ digResult = /obj/item/stack/ore/glass
+ planetary_atmos = TRUE
+ digResult = /obj/item/stack/ore/glass/beach
+
+/turf/open/floor/plating/asteroid/sand/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ icon_state = "[base_icon_state]"
+
+/turf/open/floor/plating/asteroid/sand/lit
+ light_range = 2
+ light_power = 0.80
+ light_color = LIGHT_COLOR_TUNGSTEN
+
+/turf/open/floor/plating/asteroid/sand/dense
+ icon_state = "light_sand"
+ planetary_atmos = TRUE
+ base_icon_state = "light_sand"
+
+/turf/open/floor/plating/asteroid/sand/dense/lit
+ light_range = 2
+ light_power = 0.80
+ light_color = LIGHT_COLOR_TUNGSTEN
diff --git a/code/game/turfs/open/floor/plating/icemoon.dm b/code/game/turfs/open/floor/plating/icemoon.dm
new file mode 100644
index 000000000000..1b67a5404ea7
--- /dev/null
+++ b/code/game/turfs/open/floor/plating/icemoon.dm
@@ -0,0 +1,221 @@
+/turf/open/floor/plating/asteroid/snow
+ gender = PLURAL
+ name = "snow"
+ desc = "Looks cold."
+ icon = 'icons/turf/snow.dmi'
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
+ icon_state = "snow"
+ icon_plating = "snow"
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ slowdown = 1.5
+ base_icon_state = "snow"
+ flags_1 = NONE
+ planetary_atmos = TRUE
+ footstep = FOOTSTEP_SNOW
+ barefootstep = FOOTSTEP_SNOW
+ clawfootstep = FOOTSTEP_SNOW
+ bullet_sizzle = TRUE
+ bullet_bounce_sound = null
+ digResult = /obj/item/stack/sheet/mineral/snow
+ // footprint vars
+ var/entered_dirs
+ var/exited_dirs
+
+/turf/open/floor/plating/asteroid/snow/Entered(atom/movable/AM)
+ . = ..()
+ if(!iscarbon(AM) || (AM.movement_type & (FLYING|VENTCRAWLING|FLOATING|PHASING)))
+ return
+ if(!(entered_dirs & AM.dir))
+ entered_dirs |= AM.dir
+ update_icon()
+
+/turf/open/floor/plating/asteroid/snow/Exited(atom/movable/AM)
+ . = ..()
+ if(!iscarbon(AM) || (AM.movement_type & (FLYING|VENTCRAWLING|FLOATING|PHASING)))
+ return
+ if(!(exited_dirs & AM.dir))
+ exited_dirs |= AM.dir
+ update_icon()
+
+// adapted version of footprints' update_icon code
+/turf/open/floor/plating/asteroid/snow/update_overlays()
+ . = ..()
+ for(var/Ddir in GLOB.cardinals)
+ if(entered_dirs & Ddir)
+ var/image/print = GLOB.bloody_footprints_cache["entered-conc-[Ddir]"]
+ if(!print)
+ print = image('icons/effects/footprints.dmi', "ice1", layer = TURF_DECAL_LAYER, dir = Ddir)
+ GLOB.bloody_footprints_cache["entered-conc-[Ddir]"] = print
+ . += print
+ if(exited_dirs & Ddir)
+ var/image/print = GLOB.bloody_footprints_cache["exited-conc-[Ddir]"]
+ if(!print)
+ print = image('icons/effects/footprints.dmi', "ice2", layer = TURF_DECAL_LAYER, dir = Ddir)
+ GLOB.bloody_footprints_cache["exited-conc-[Ddir]"] = print
+ . += print
+
+// pretty much ripped wholesale from footprints' version of this proc
+/turf/open/floor/plating/asteroid/snow/setDir(newdir)
+ if(dir == newdir)
+ return ..()
+
+ var/ang_change = dir2angle(newdir) - dir2angle(dir)
+ var/old_entered_dirs = entered_dirs
+ var/old_exited_dirs = exited_dirs
+ entered_dirs = 0
+ exited_dirs = 0
+
+ for(var/Ddir in GLOB.cardinals)
+ var/NDir = angle2dir_cardinal(dir2angle(Ddir) + ang_change)
+ if(old_entered_dirs & Ddir)
+ entered_dirs |= NDir
+ if(old_exited_dirs & Ddir)
+ exited_dirs |= NDir
+
+ update_icon()
+ return ..()
+
+/turf/open/floor/plating/asteroid/snow/getDug()
+ . = ..()
+ ScrapeAway()
+
+/turf/open/floor/plating/asteroid/snow/burn_tile()
+ ScrapeAway()
+ return TRUE
+
+/turf/open/floor/plating/asteroid/snow/ex_act(severity, target)
+ . = ..()
+ ScrapeAway()
+
+/turf/open/floor/plating/asteroid/snow/lit
+ light_range = 2
+ light_power = 1
+ baseturfs = /turf/open/floor/plating/asteroid/icerock/lit
+
+/turf/open/floor/plating/asteroid/snow/lit/whitesands
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands/lit
+ initial_gas_mix = WHITESANDS_ATMOS
+
+/turf/open/floor/plating/asteroid/snow/lit/rockplanet
+ baseturfs = /turf/open/floor/plating/asteroid/rockplanet/lit
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+
+/turf/open/floor/plating/asteroid/snow/airless
+ initial_gas_mix = AIRLESS_ATMOS
+
+/turf/open/floor/plating/asteroid/snow/temperatre
+ initial_gas_mix = "o2=22;n2=82;TEMP=255.37"
+
+/turf/open/floor/plating/asteroid/snow/atmosphere
+ initial_gas_mix = FROZEN_ATMOS
+ planetary_atmos = FALSE
+
+/turf/open/floor/plating/asteroid/snow/under
+ icon_state = "snow_dug"
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/asteroid/snow/under/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/floor/plating/asteroid/icerock
+ gender = PLURAL
+ name = "icy rock"
+ desc = "The coarse rock that covers the surface."
+ icon = 'icons/turf/snow.dmi'
+ baseturfs = /turf/open/floor/plating/asteroid/icerock
+ icon_state = "icemoon_ground_coarse1"
+ icon_plating = "icemoon_ground_coarse1"
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ base_icon_state = "icemoon_ground_coarse"
+ flags_1 = NONE
+ footstep = FOOTSTEP_ICE
+ barefootstep = FOOTSTEP_ICE
+ clawfootstep = FOOTSTEP_ICE
+ planetary_atmos = TRUE
+ broken_states = list("icemoon_ground_cracked")
+ burnt_states = list("icemoon_ground_smooth")
+ bullet_sizzle = TRUE
+ bullet_bounce_sound = null
+ digResult = /obj/item/stack/sheet/mineral/snow
+ floor_variance = 100
+ max_icon_states = 7
+ dug = TRUE
+
+/turf/open/floor/plating/asteroid/icerock/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/floor/plating/asteroid/icerock/cracked
+ floor_variance = 0
+ icon_state = "icemoon_ground_cracked"
+ base_icon_state = "icemoon_ground_cracked"
+
+/turf/open/floor/plating/asteroid/icerock/smooth
+ floor_variance = 0
+ icon_state = "icemoon_ground_smooth"
+ base_icon_state = "icemoon_ground_smooth"
+
+/turf/open/floor/plating/asteroid/iceberg
+ gender = PLURAL
+ name = "cracked ice floor"
+ desc = "A sheet of solid ice. It seems too cracked to be slippery anymore."
+ icon = 'icons/turf/snow.dmi'
+ baseturfs = /turf/open/floor/plating/asteroid/iceberg
+ icon_state = "iceberg"
+ icon_plating = "iceberg"
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ base_icon_state = "iceberg"
+ flags_1 = NONE
+ footstep = FOOTSTEP_ICE
+ barefootstep = FOOTSTEP_ICE
+ clawfootstep = FOOTSTEP_ICE
+ planetary_atmos = TRUE
+ broken_states = list("iceberg")
+ burnt_states = list("iceberg")
+ bullet_sizzle = TRUE
+ bullet_bounce_sound = null
+ digResult = /obj/item/stack/sheet/mineral/snow
+ floor_variance = 100
+ max_icon_states = 7
+ dug = TRUE
+
+/turf/open/floor/plating/asteroid/iceberg/lit
+ light_range = 2
+ light_power = 1
+
+
+/turf/open/floor/plating/asteroid/snow/icemoon
+ baseturfs = /turf/open/openspace/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ slowdown = 0
+
+/turf/open/lava/plasma/ice_moon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ baseturfs = /turf/open/lava/plasma/ice_moon
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/asteroid/snow/ice
+ name = "icy snow"
+ desc = "Looks colder."
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice
+ initial_gas_mix = "o2=0;n2=82;plasma=24;TEMP=120"
+ floor_variance = 0
+ icon_state = "snow-ice"
+ icon_plating = "snow-ice"
+ base_icon_state = "snow_cavern"
+ footstep = FOOTSTEP_FLOOR
+ barefootstep = FOOTSTEP_HARD_BAREFOOT
+ clawfootstep = FOOTSTEP_HARD_CLAW
+ heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+ max_icon_states = 7
+
+/turf/open/floor/plating/asteroid/snow/ice/icemoon
+ baseturfs = /turf/open/floor/plating/asteroid/snow/ice/icemoon
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ slowdown = 0
+
+/turf/open/floor/plating/asteroid/snow/ice/burn_tile()
+ return FALSE
+
diff --git a/code/game/turfs/open/floor/plating/lavaland.dm b/code/game/turfs/open/floor/plating/lavaland.dm
new file mode 100644
index 000000000000..42579678d320
--- /dev/null
+++ b/code/game/turfs/open/floor/plating/lavaland.dm
@@ -0,0 +1,98 @@
+/turf/open/floor/plating/asteroid/basalt
+ name = "volcanic floor"
+ baseturfs = /turf/open/floor/plating/asteroid/basalt
+ icon = 'icons/turf/floors.dmi'
+ icon_state = "basalt"
+ icon_plating = "basalt"
+ base_icon_state = "basalt"
+ floor_variance = 15
+ digResult = /obj/item/stack/ore/glass/basalt
+
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = LIGHT_COLOR_FIRE
+
+/turf/open/floor/plating/asteroid/basalt/lava //lava underneath
+ baseturfs = /turf/open/lava/smooth
+
+/turf/open/floor/plating/asteroid/basalt/airless
+ initial_gas_mix = AIRLESS_ATMOS
+
+/turf/open/floor/plating/asteroid/basalt/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ set_basalt_light(src)
+
+/proc/set_basalt_light(turf/open/floor/B)
+ switch(B.icon_state)
+ if("basalt1", "basalt2", "basalt3")
+ B.set_light(2, 0.6, LIGHT_COLOR_LAVA) //more light
+ if("basalt5", "basalt9")
+ B.set_light(1.4, 0.6, LIGHT_COLOR_LAVA) //barely anything!
+
+///////Surface. The surface is warm, but survivable without a suit. Internals are required. The floors break to chasms, which drop you into the underground.
+
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface
+ initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ baseturfs = /turf/open/lava/smooth/lava_land_surface
+
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface/icecropolis
+ initial_gas_mix = ICEMOON_DEFAULT_ATMOS
+ baseturfs = /turf/open/indestructible/necropolis/icecropolis
+
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface/icecropolis/inside
+ initial_gas_mix = "o2=22;n2=82;TEMP=293.15"
+ planetary_atmos = FALSE
+ baseturfs = /turf/open/indestructible/necropolis/air
+
+/turf/open/floor/plating/asteroid/basalt/purple
+ icon = 'icons/turf/lavaland_purple.dmi'
+ baseturfs = /turf/open/floor/plating/asteroid/basalt/purple
+ turf_type = /turf/open/floor/plating/asteroid/basalt/purple
+ initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/asteroid/basalt/purple/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = LIGHT_COLOR_FIRE
+
+/turf/open/floor/plating/asteroid/purple
+ name = "ashen sand"
+ desc = "Sand, tinted by the chemicals in the atmosphere to an uncanny shade of purple."
+ icon = 'icons/turf/lavaland_purple.dmi'
+ baseturfs = /turf/open/floor/plating/asteroid/purple
+ turf_type = /turf/open/floor/plating/asteroid/basalt/purple
+ initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/asteroid/purple/lit
+ light_range = 2
+ light_power = 0.3
+ light_color = LIGHT_COLOR_FIRE
+
+/turf/open/floor/plating/grass/lava
+ name = "ungodly grass"
+ desc = "Common grass, tinged to unnatural colours by chemicals in the atmosphere."
+ baseturfs = /turf/open/floor/plating/grass/lava
+ initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+ icon_state = "grass-255"
+ base_icon_state = "grass"
+ planetary_atmos = TRUE
+ icon = 'icons/turf/floors/lava_grass_red.dmi'
+ smooth_icon = 'icons/turf/floors/lava_grass_red.dmi'
+ light_range = 2
+ light_power = 0.6
+ light_color = LIGHT_COLOR_FIRE
+ gender = PLURAL
+
+/turf/open/floor/plating/grass/lava/orange
+ icon = 'icons/turf/floors/lava_grass_orange.dmi'
+ smooth_icon = 'icons/turf/floors/lava_grass_orange.dmi'
+ baseturfs = /turf/open/floor/plating/grass/lava/orange
+
+/turf/open/floor/plating/grass/lava/purple
+ baseturfs = /turf/open/floor/plating/grass/lava/purple
+ icon = 'icons/turf/floors/lava_grass_purple.dmi'
+ smooth_icon = 'icons/turf/floors/lava_grass_purple.dmi'
diff --git a/code/game/turfs/open/floor/plating/misc_plating.dm b/code/game/turfs/open/floor/plating/misc_plating.dm
index 2cc72c83a96e..5095f82d7df5 100644
--- a/code/game/turfs/open/floor/plating/misc_plating.dm
+++ b/code/game/turfs/open/floor/plating/misc_plating.dm
@@ -198,8 +198,8 @@
/turf/open/floor/plating/ice
name = "ice sheet"
desc = "A sheet of solid ice. Looks slippery."
- icon = 'icons/turf/floors/ice_turf.dmi'
- icon_state = "ice_turf-0"
+ icon = 'icons/turf/snow.dmi'
+ icon_state = "ice"
initial_gas_mix = FROZEN_ATMOS
initial_temperature = 180
planetary_atmos = TRUE
@@ -207,9 +207,9 @@
slowdown = 1
attachment_holes = FALSE
bullet_sizzle = TRUE
- footstep = FOOTSTEP_FLOOR
- barefootstep = FOOTSTEP_HARD_BAREFOOT
- clawfootstep = FOOTSTEP_HARD_CLAW
+ footstep = FOOTSTEP_ICE
+ barefootstep = FOOTSTEP_ICE
+ clawfootstep = FOOTSTEP_ICE
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
/turf/open/floor/plating/ice/Initialize(mapload, inherited_virtual_z)
@@ -221,11 +221,17 @@
/turf/open/floor/plating/ice/smooth
icon_state = "ice_turf-255"
+ icon = 'icons/turf/floors/ice_turf.dmi'
base_icon_state = "ice_turf"
smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER
smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_ICE)
canSmoothWith = list(SMOOTH_GROUP_FLOOR_ICE)
+/turf/open/floor/plating/ice/lit
+ light_range = 2
+ light_power = 1
+ light_color = LIGHT_COLOR_LIGHT_CYAN
+
/turf/open/floor/plating/ice/colder
initial_temperature = 140
@@ -238,6 +244,19 @@
/turf/open/floor/plating/ice/burn_tile()
return
+/turf/open/floor/plating/ice/iceberg
+ name = "cracked ice floor"
+ desc = "A sheet of solid ice. It looks cracked, yet still slippery."
+ icon_state = "ice1"
+
+/turf/open/floor/plating/ice/iceberg/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ icon_state = "ice[rand(1,8)]"
+
+/turf/open/floor/plating/ice/iceberg/lit
+ light_range = 2
+ light_power = 1
+
/turf/open/floor/plating/ice/icemoon
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
@@ -314,3 +333,34 @@
clawfootstep = FOOTSTEP_SAND
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
tiled_dirt = FALSE
+
+/turf/open/floor/plating/grass/beach
+ baseturfs = /turf/open/floor/plating/beach/sand
+ planetary_atmos = TRUE
+
+/turf/open/floor/plating/grass/beach/lit
+ light_range = 2
+ light_power = 0.80
+
+
+
+/turf/open/floor/plating/moss
+ name = "overgrown moss"
+ desc = "Overgrown moss, sprawling all over the rock below."
+ baseturfs = /turf/open/floor/plating/moss
+ initial_gas_mix = LAVALAND_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ icon_state = "moss"
+ icon = 'icons/turf/lava_moss.dmi'
+ base_icon_state = "moss"
+ bullet_bounce_sound = null
+ footstep = FOOTSTEP_GRASS
+ barefootstep = FOOTSTEP_GRASS
+ clawfootstep = FOOTSTEP_GRASS
+ heavyfootstep = FOOTSTEP_GENERIC_HEAVY
+ layer = HIGH_TURF_LAYER
+ gender = PLURAL
+ light_power = 1
+ light_range = 2
+ pixel_x = -9
+ pixel_y = -9
diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm
index 638c20b9b719..d1577e516b6d 100644
--- a/code/game/turfs/open/floor/plating/planet.dm
+++ b/code/game/turfs/open/floor/plating/planet.dm
@@ -12,9 +12,6 @@
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
tiled_dirt = FALSE
baseturfs = /turf/open/floor/plating/dirt
- light_range = 2
- light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
/turf/open/floor/plating/dirt/dark
icon_state = "greenerdirt"
@@ -27,14 +24,21 @@
slowdown = 0.5
baseturfs = /turf/open/floor/plating/dirt/jungle
initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+
+/turf/open/floor/plating/dirt/jungle/lit
+ baseturfs = /turf/open/floor/plating/dirt/jungle/lit
light_range = 2
- light_power = 0.6
+ light_power = 1
light_color = COLOR_VERY_LIGHT_GRAY
/turf/open/floor/plating/dirt/jungle/dark
icon_state = "greenerdirt"
baseturfs = /turf/open/floor/plating/dirt/jungle/dark
+/turf/open/floor/plating/dirt/jungle/dark/lit
+ light_range = 2
+ light_power = 1
+
/turf/open/floor/plating/dirt/jungle/wasteland //Like a more fun version of living in Arizona.
name = "cracked earth"
desc = "Looks a bit dry."
@@ -44,6 +48,12 @@
baseturfs = /turf/open/floor/plating/dirt/jungle/wasteland
var/floor_variance = 15
+/turf/open/floor/plating/dirt/jungle/wasteland/lit
+ baseturfs = /turf/open/floor/plating/dirt/jungle/wasteland/lit
+ light_range = 2
+ light_power = 1
+
+
/turf/open/floor/plating/dirt/jungle/wasteland/Initialize(mapload, inherited_virtual_z)
.=..()
if(prob(floor_variance))
@@ -56,15 +66,35 @@
icon_state = "junglegrass"
base_icon_state = "junglegrass"
baseturfs = /turf/open/floor/plating/dirt/jungle
- light_range = 2
- light_power = 0.6
- light_color = COLOR_VERY_LIGHT_GRAY
smooth_icon = 'icons/turf/floors/junglegrass.dmi'
baseturfs = /turf/open/floor/plating/grass/jungle
-/turf/closed/mineral/random/jungle
- turf_type = /turf/open/floor/plating/dirt/jungle
- baseturfs = /turf/open/floor/plating/dirt/jungle
- mineralSpawnChanceList = list(/obj/item/stack/ore/uranium = 5, /obj/item/stack/ore/diamond = 1, /obj/item/stack/ore/gold = 10,
- /obj/item/stack/ore/silver = 12, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 40, /obj/item/stack/ore/titanium = 11,
- /obj/item/stack/ore/bluespace_crystal = 1)
+/turf/open/floor/plating/grass/jungle/lit
+ baseturfs = /turf/open/floor/plating/dirt/jungle/lit
+ light_range = 2
+ light_power = 1
+
+/turf/open/water/jungle/lit
+ light_range = 2
+ light_power = 0.8
+ light_color = LIGHT_COLOR_BLUEGREEN
+
+/turf/open/floor/plating/dirt/old
+ icon_state = "oldsmoothdirt"
+
+/turf/open/floor/plating/dirt/old/lit
+ light_power = 1
+ light_range = 2
+
+/turf/open/floor/plating/dirt/old/dark
+ icon_state = "oldsmoothdarkdirt"
+
+/turf/open/floor/plating/dirt/old/dark/lit
+ light_power = 1
+ light_range = 2
+
+
+/turf/open/floor/plating/dirt/dry/lit
+ light_power = 1
+ light_range = 2
+
diff --git a/code/game/turfs/open/floor/plating/rockplanet.dm b/code/game/turfs/open/floor/plating/rockplanet.dm
new file mode 100644
index 000000000000..1bd9f537c9af
--- /dev/null
+++ b/code/game/turfs/open/floor/plating/rockplanet.dm
@@ -0,0 +1,48 @@
+/turf/open/floor/plating/asteroid/rockplanet
+ name = "iron sand"
+ icon_state = "dry_soft"
+ base_icon_state = "dry_soft"
+ floor_variance = 100
+ max_icon_states = 7
+ initial_gas_mix = ROCKPLANET_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/rockplanet
+ turf_type = /turf/open/floor/plating/asteroid/rockplanet
+ digResult = /obj/item/stack/ore/glass/rockplanet
+
+/turf/open/floor/plating/asteroid/rockplanet/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_VERY_LIGHT_GRAY
+
+/turf/open/floor/plating/asteroid/rockplanet/cracked
+ name = "iron cracked sand"
+ icon_state = "dry_cracked0"
+ base_icon_state = "dry_cracked"
+ baseturfs = /turf/open/floor/plating/asteroid/rockplanet
+ turf_type = /turf/open/floor/plating/asteroid/rockplanet
+
+/turf/open/floor/plating/asteroid/rockplanet/cracked/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_VERY_LIGHT_GRAY
+ baseturfs = /turf/open/floor/plating/asteroid/rockplanet/lit
+ turf_type = /turf/open/floor/plating/asteroid/rockplanet/lit
+
+/turf/open/floor/plating/asteroid/rockplanet/wet
+ icon_state = "wet_soft0"
+ base_icon_state = "wet_soft"
+
+/turf/open/floor/plating/asteroid/rockplanet/wet/lit
+ light_range = 2
+ light_power = 0.6
+
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked
+ name = "iron cracked sand"
+ icon_state = "wet_cracked0"
+ base_icon_state = "wet_cracked"
+
+/turf/open/floor/plating/asteroid/rockplanet/wet/cracked/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_VERY_LIGHT_GRAY
diff --git a/code/game/turfs/open/floor/plating/wasteplanet.dm b/code/game/turfs/open/floor/plating/wasteplanet.dm
new file mode 100644
index 000000000000..0e6a2b0b692f
--- /dev/null
+++ b/code/game/turfs/open/floor/plating/wasteplanet.dm
@@ -0,0 +1,17 @@
+/turf/open/floor/plating/wasteplanet
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+
+/turf/open/floor/plating/rust/wasteplanet
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+
+
+/turf/open/floor/plating/asteroid/wasteplanet
+ name = "dry rock"
+ icon_state = "wasteplanet0"
+ base_icon_state = "wasteplanet"
+ turf_type = /turf/open/floor/plating/asteroid/wasteplanet
+ floor_variance = 45
+ initial_gas_mix = OPENTURF_DEFAULT_ATMOS
+ planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/wasteplanet
+ digResult = /obj/item/stack/ore/glass/wasteplanet
diff --git a/code/game/turfs/open/floor/plating/whitesands.dm b/code/game/turfs/open/floor/plating/whitesands.dm
index 32e75e8879f3..43cc65be4b79 100644
--- a/code/game/turfs/open/floor/plating/whitesands.dm
+++ b/code/game/turfs/open/floor/plating/whitesands.dm
@@ -5,32 +5,78 @@
icon_state = "sand"
icon_plating = "sand"
planetary_atmos = TRUE
- environment_type = WHITESANDS_SAND_ENV
+ base_icon_state = WHITESANDS_SAND_ENV
initial_gas_mix = WHITESANDS_ATMOS //Fallback, and used to tell the AACs that this is the exterior
digResult = /obj/item/stack/ore/glass/whitesands
+
+/turf/open/floor/plating/asteroid/whitesands/lit
light_range = 2
light_power = 0.6
light_color = COLOR_VERY_LIGHT_GRAY
-
-/// Drops itemstack when dug and changes icon
-/turf/open/floor/plating/asteroid/getDug()
- new digResult(src, 5)
- if(postdig_icon_change)
- if(!postdig_icon)
- icon_plating = "[initial(src.icon_state)]_dug"
- icon_state = "[initial(src.icon_state)]_dug"
- dug = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands/lit
/turf/open/floor/plating/asteroid/whitesands/dried
name = "dried sand"
baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
icon_state = "dried_up"
icon_plating = "dried_up"
- environment_type = WHITESANDS_DRIED_ENV
+ base_icon_state = WHITESANDS_DRIED_ENV
digResult = /obj/item/stack/ore/glass/whitesands
/turf/open/floor/plating/asteroid/whitesands/remove_air(amount)
return return_air()
+/turf/open/floor/plating/asteroid/whitesands/dried/lit
+ light_range = 2
+ light_power = 0.6
+ light_color = COLOR_VERY_LIGHT_GRAY
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried/lit
+
/turf/open/floor/plating/grass/whitesands
initial_gas_mix = WHITESANDS_ATMOS
+
+/turf/open/floor/plating/asteroid/basalt/whitesands
+ initial_gas_mix = WHITESANDS_ATMOS
+ planetary_atmos = TRUE
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands/dried
+ icon_state = "whitesands_basalt0"
+ icon_plating = "whitesands_basalt0"
+ dug = TRUE
+
+/turf/open/floor/plating/asteroid/basalt/whitesands/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ icon_state = "whitesands_basalt[rand(0,1)]"
+
+/turf/open/floor/plating/asteroid/whitesands/grass
+ name = "purple grass"
+ desc = "The few known flora on Whitesands are in a purplish color."
+ icon = 'icons/turf/floors/lava_grass_purple.dmi' //PLACEHOLDER ICON, YELL AT LOCAL MOTH WOMAN
+ icon_state = "grass0"
+ base_icon_state = "grass"
+ baseturfs = /turf/open/floor/plating/asteroid/whitesands
+ turf_type = /turf/open/floor/plating/asteroid/whitesands/grass
+ initial_gas_mix = WHITESANDS_ATMOS
+ planetary_atmos = TRUE
+ smoothing_flags = SMOOTH_BITMASK
+ smoothing_groups = list(SMOOTH_GROUP_TURF_OPEN, SMOOTH_GROUP_FLOOR_GRASS)
+ canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_FLOOR_GRASS)
+
+/turf/open/floor/plating/asteroid/whitesands/grass/Initialize(mapload, inherited_virtual_z)
+ . = ..()
+ if(smoothing_flags)
+ var/matrix/translation = new
+ translation.Translate(-9, -9)
+ transform = translation
+
+/turf/open/floor/plating/asteroid/whitesands/grass/lit
+ light_power = 1
+ light_range = 2
+
+/turf/open/floor/plating/asteroid/whitesands/grass/dead
+ name = "dead grass"
+ desc = "The few known flora on Whitesands also don't tend to live for very long, especially after the war."
+ color = "#ddffb3" //the green makes a grey color, dead as hell
+
+/turf/open/floor/plating/asteroid/whitesands/grass/dead/lit
+ light_power = 1
+ light_range = 2
diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm
index 02447bf31de8..ed1d3e2ea18a 100644
--- a/code/game/turfs/open/water.dm
+++ b/code/game/turfs/open/water.dm
@@ -4,8 +4,7 @@
desc = "Shallow water."
icon = 'icons/turf/floors.dmi'
icon_state = "riverwater_motion"
- baseturfs = /turf/open/chasm/lavaland
- initial_gas_mix = OPENTURF_LOW_PRESSURE
+ baseturfs = /turf/open/water
planetary_atmos = TRUE
slowdown = 1
bullet_sizzle = TRUE
@@ -16,8 +15,59 @@
clawfootstep = FOOTSTEP_WATER
heavyfootstep = FOOTSTEP_WATER
+ var/datum/reagent/reagent_to_extract = /datum/reagent/water
+ var/extracted_reagent_visible_name = "water"
+
+/turf/open/water/attackby(obj/item/tool, mob/user, params)
+ if(!reagent_to_extract)
+ return ..()
+ var/obj/item/reagent_containers/glass/container = tool
+ if(!container)
+ return ..()
+ if(container.reagents.total_volume >= container.volume)
+ to_chat(user, "[container] is full.")
+ return
+ container.reagents.add_reagent(reagent_to_extract, rand(5, 10))
+ user.visible_message("[user] scoops [extracted_reagent_visible_name] from the [src] with \the [container].", "You scoop out [extracted_reagent_visible_name] from the [src] using \the [container].")
+ return TRUE
+
+/turf/open/water/can_have_cabling()
+ return FALSE
+
+/turf/open/water/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
+ switch(the_rcd.mode)
+ if(RCD_FLOORWALL)
+ return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 3)
+ return FALSE
+
+/turf/open/water/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
+ switch(passed_mode)
+ if(RCD_FLOORWALL)
+ to_chat(user, "You build a floor.")
+ PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
+ return TRUE
+ return FALSE
+
/turf/open/water/jungle
- initial_gas_mix = OPENTURF_DEFAULT_ATMOS
light_range = 2
light_power = 0.6
light_color = COLOR_VERY_LIGHT_GRAY
+
+/turf/open/water/beach
+ color = COLOR_CYAN
+ light_range = 2
+ light_power = 0.80
+ light_color = LIGHT_COLOR_BLUE
+
+/turf/open/water/beach/deep
+ color = "#0099ff"
+ light_color = LIGHT_COLOR_DARK_BLUE
+
+/turf/open/water/tar
+ name = "tar pit"
+ desc = "Shallow tar. Will slow you down significantly. You could use a beaker to scoop some out..."
+ color = "#222424"
+ light_range = 0
+ slowdown = 2
+ reagent_to_extract = /datum/reagent/asphalt
+ extracted_reagent_visible_name = "tar"
diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm
index 6d652a6ef8b5..6570e39faa7b 100644
--- a/code/modules/awaymissions/mission_code/snowdin.dm
+++ b/code/modules/awaymissions/mission_code/snowdin.dm
@@ -161,6 +161,7 @@
return
C.reagents.add_reagent(/datum/reagent/toxin/plasma, rand(5, 10))
user.visible_message("[user] scoops some plasma from the [src] with \the [C].", "You scoop out some plasma from the [src] using \the [C].")
+ return TRUE
/turf/open/lava/plasma/burn_stuff(AM)
. = 0
@@ -605,11 +606,19 @@
/obj/structure/flora/rock/icy
name = "icy rock"
- color = rgb(204,233,235)
+ icon_state = "icemoonrock1"
+
+/obj/structure/flora/rock/icy/Initialize()
+ . = ..()
+ icon_state = "icemoonrock[rand(1,3)]"
/obj/structure/flora/rock/pile/icy
name = "icey rocks"
- color = rgb(204,233,235)
+ icon_state = "icemoonrock4"
+
+/obj/structure/flora/rock/pile/icy/Initialize()
+ . = ..()
+ icon_state = "icemoonrock4"
//decals//--
/obj/effect/turf_decal/snowdin_station_sign
diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm
index 4441e280beda..fb8534172064 100644
--- a/code/modules/cargo/expressconsole.dm
+++ b/code/modules/cargo/expressconsole.dm
@@ -109,7 +109,7 @@
// not a big fan of get_containing_shuttle
var/obj/docking_port/mobile/D = SSshuttle.get_containing_shuttle(src)
var/datum/overmap/ship/controlled/ship = D.current_ship
- var/outpost_docked = istype(ship.docked_to, /datum/overmap/outpost)
+ var/outpost_docked = istype(ship.docked_to, /datum/overmap/dynamic/outpost)
data["onShip"] = !isnull(ship)
data["numMissions"] = ship ? LAZYLEN(ship.missions) : 0
@@ -148,7 +148,7 @@
for(var/datum/mission/M as anything in ship.missions)
data["shipMissions"] += list(M.get_tgui_info())
if(outpost_docked)
- var/datum/overmap/outpost/out = ship.docked_to
+ var/datum/overmap/dynamic/outpost/out = ship.docked_to
for(var/datum/mission/M as anything in out.missions)
data["outpostMissions"] += list(M.get_tgui_info())
@@ -195,7 +195,7 @@
var/datum/supply_pack/pack = SSshuttle.supply_packs[text2path(params["id"])]
if( \
!pack || !charge_account?.has_money(pack.cost) || !istype(current_area) || \
- !istype(current_area.mobile_port.current_ship.docked_to, /datum/overmap/outpost) \
+ !istype(current_area.mobile_port.current_ship.docked_to, /datum/overmap/dynamic/outpost) \
)
return
@@ -239,7 +239,7 @@
var/datum/mission/mission = locate(params["ref"])
var/obj/docking_port/mobile/D = SSshuttle.get_containing_shuttle(src)
var/datum/overmap/ship/controlled/ship = D.current_ship
- var/datum/overmap/outpost/outpost = ship.docked_to
+ var/datum/overmap/dynamic/outpost/outpost = ship.docked_to
if(!istype(outpost) || mission.source_outpost != outpost) // important to check these to prevent href fuckery
return
if(!mission.accepted)
diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm
index 6e30e6c16f57..7a8b76c7e73a 100644
--- a/code/modules/events/spacevine.dm
+++ b/code/modules/events/spacevine.dm
@@ -305,6 +305,11 @@
text += " vine."
. += text
+
+/obj/structure/spacevine/fire_act(exposed_temperature, exposed_volume)
+ . = ..()
+ qdel(src)
+
/obj/structure/spacevine/Destroy()
for(var/datum/spacevine_mutation/SM in mutations)
SM.on_death(src)
diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm
index 5e4fd696840d..52db94edb5d6 100644
--- a/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/code/modules/mining/equipment/kinetic_crusher.dm
@@ -811,3 +811,16 @@
. = ..()
if(wielded)
. += "[icon_state]_lit"
+
+/obj/item/crusher_trophy/lobster_claw
+ name = "lobster claw"
+ icon_state = "lobster_claw"
+ desc = "A lobster claw."
+ denied_type = /obj/item/crusher_trophy/lobster_claw
+ bonus_value = 1
+
+/obj/item/crusher_trophy/lobster_claw/effect_desc()
+ return "mark detonation to briefly stagger the target for [bonus_value] seconds"
+
+/obj/item/crusher_trophy/lobster_claw/on_mark_detonation(mob/living/target, mob/living/user)
+ target.apply_status_effect(/datum/status_effect/stagger, bonus_value SECONDS)
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 92f2d9294351..18903d3f68f2 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -103,6 +103,13 @@
w_class = WEIGHT_CLASS_TINY
mine_experience = 0 //its sand
+/obj/item/stack/ore/glass/basalt
+ name = "volcanic ash"
+ icon_state = "volcanic_sand"
+ item_state = "volcanic_sand"
+ singular_name = "volcanic ash pile"
+ grind_results = list(/datum/reagent/toxin/lava_microbe = 1, /datum/reagent/ash = 8.5, /datum/reagent/silicon = 8.5)
+
/obj/item/stack/ore/glass/whitesands
name = "white sand pile"
icon = 'icons/obj/mining.dmi'
@@ -110,7 +117,27 @@
item_state = "whitesands"
singular_name = "white sand pile"
grind_results = list(/datum/reagent/consumable/sodiumchloride = 10, /datum/reagent/silicon = 10)
- mine_experience = 0 // it's very pretty sand, but still sand
+
+/obj/item/stack/ore/glass/rockplanet
+ name = "iron sand pile"
+ icon_state = "rockplanet_sand"
+ item_state = "rockplanet_sand"
+ singular_name = "iron sand pile"
+ grind_results = list(/datum/reagent/silicon = 10)
+
+/obj/item/stack/ore/glass/wasteplanet
+ name = "rocky dust"
+ icon_state = "wasteplanet_sand"
+ item_state = "wasteplanet_sand"
+ singular_name = "rocky dust"
+ grind_results = list(/datum/reagent/silicon = 10)
+
+/obj/item/stack/ore/glass/beach
+ name = "beige sand pile"
+ icon_state = "beach_sand"
+ item_state = "beach_sand"
+ singular_name = "beige sand pile"
+ grind_results = list(/datum/reagent/silicon = 10)
GLOBAL_LIST_INIT(sand_recipes, list(\
new /datum/stack_recipe("sandstone", /obj/item/stack/sheet/mineral/sandstone, 1, 1, 50),\
@@ -139,14 +166,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
return
qdel(src)
-/obj/item/stack/ore/glass/basalt
- name = "volcanic ash"
- icon_state = "volcanic_sand"
- item_state = "volcanic_sand"
- singular_name = "volcanic ash pile"
- grind_results = list(/datum/reagent/toxin/lava_microbe = 1, /datum/reagent/ash = 8.5, /datum/reagent/silicon = 8.5)
- mine_experience = 0
-
/obj/item/stack/ore/plasma
name = "plasma ore"
icon_state = "Plasma ore"
diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm
index 304617c79f74..734ffac08595 100644
--- a/code/modules/mob/living/living_defines.dm
+++ b/code/modules/mob/living/living_defines.dm
@@ -4,6 +4,7 @@
see_in_dark = 2
hud_possible = list(HEALTH_HUD,STATUS_HUD,ANTAG_HUD,NANITE_HUD,DIAG_NANITE_FULL_HUD)
pressure_resistance = 10
+ flags_1 = SHOW_BEHIND_LARGE_ICONS_1
hud_type = /datum/hud/living
diff --git a/code/modules/mob/living/simple_animal/friendly/beachcarp.dm b/code/modules/mob/living/simple_animal/friendly/beachcarp.dm
new file mode 100644
index 000000000000..762540a2ae4c
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/beachcarp.dm
@@ -0,0 +1,65 @@
+/mob/living/simple_animal/beachcarp //im unsure if this is a good idea, ask mark or tmt
+ name = "carp"
+ desc = "A passive, fang-bearing creature that resembles a fish."
+ icon = 'icons/mob/fish.dmi'
+ icon_state = "base"
+ icon_living = "base"
+ icon_dead = "base_dead"
+ icon_gib = "carp_gib"
+ speak_emote = list("glubs")
+ emote_hear = list("glubs.")
+ emote_see = list("glubs.")
+ speak_chance = 1
+ faction = list("mining")
+ turns_per_move = 5
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/carpmeat = 2)
+ response_help_continuous = "pets"
+ response_help_simple = "pet"
+ response_disarm_continuous = "gently pushes aside"
+ response_disarm_simple = "gently push aside"
+ response_harm_continuous = "punches"
+ response_harm_simple = "punch"
+ stop_automated_movement = 1
+ friendly_verb_continuous = "nibbles"
+ friendly_verb_simple = "nibble"
+ turns_per_move = 2
+
+
+/mob/living/simple_animal/beachcarp/Life()
+ ..()
+ //CARP movement
+ if(!ckey && !stat)
+ if(isturf(loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc.
+ turns_since_move++
+ if(turns_since_move >= turns_per_move)
+ var/east_vs_west = pick(4,8)
+ if(Process_Spacemove(east_vs_west))
+ var/turf/step = get_step(src,east_vs_west)
+ if (istype(step, /turf/open/water)) //Only allow fish to move onto water tiles
+ Move(step, east_vs_west)
+ turns_since_move = 0
+ regenerate_icons()
+
+/mob/living/simple_animal/beachcarp/bass
+ name = "bass"
+ desc = "A largemouthed green bass."
+ icon_state = "bass-swim"
+ icon_dead = "bass-dead"
+
+/mob/living/simple_animal/beachcarp/trout
+ name = "trout"
+ desc = "A wild steelhead trout."
+ icon_state = "trout-swim"
+ icon_dead = "trout-dead"
+
+/mob/living/simple_animal/beachcarp/salmon
+ name = "salmon"
+ desc = "A large blue salmon."
+ icon_state = "salmon-swim"
+ icon_dead = "salmon-dead"
+
+/mob/living/simple_animal/beachcarp/perch
+ name = "perch"
+ desc = "A small yellow perch."
+ icon_state = "perch-swim"
+ icon_dead = "perch-dead"
diff --git a/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm b/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
new file mode 100644
index 000000000000..78432c92a4d5
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/abandoned_minebot.dm
@@ -0,0 +1,54 @@
+//CUSTOM MOB
+/mob/living/simple_animal/hostile/abandoned_minebot
+ name = "\improper Abandoned minebot"
+ desc = "The instructions printed on the side are faded, and the only thing that remains is mechanical bloodlust."
+ gender = NEUTER
+ icon = 'icons/mob/aibots.dmi'
+ icon_state = "mining_drone"
+ icon_living = "mining_drone"
+ status_flags = CANSTUN|CANKNOCKDOWN|CANPUSH
+ mouse_opacity = MOUSE_OPACITY_ICON
+ a_intent = INTENT_HARM
+ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ minbodytemp = 0
+ move_to_delay = 10
+ health = 70
+ maxHealth = 70
+ melee_damage_lower = 15
+ melee_damage_upper = 15
+ obj_damage = 10
+ environment_smash = ENVIRONMENT_SMASH_NONE
+ check_friendly_fire = TRUE
+ stop_automated_movement_when_pulled = TRUE
+ attack_verb_continuous = "drills"
+ attack_verb_simple = "drill"
+ attack_sound = 'sound/weapons/circsawhit.ogg'
+ projectilesound = 'sound/weapons/kenetic_accel.ogg'
+ custom_price = 800
+ speak_emote = list("states")
+ del_on_death = TRUE
+ light_system = MOVABLE_LIGHT
+ light_range = 6
+ light_on = FALSE
+ ranged = TRUE
+ retreat_distance = 2
+ minimum_distance = 1
+ icon_state = "mining_drone_offense"
+ faction = list("mining", "turret")
+ loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/effect/spawner/lootdrop/minebot)
+ projectiletype = /obj/projectile/kinetic/miner/weak
+
+
+/obj/projectile/kinetic/miner/weak
+ damage = 15
+
+/obj/effect/spawner/lootdrop/minebot
+ loot = list(/obj/item/borg/upgrade/modkit/minebot_passthrough = 15,
+ /obj/item/borg/upgrade/modkit/chassis_mod = 15,
+ /obj/item/borg/upgrade/modkit/tracer = 15,
+ /obj/item/borg/upgrade/modkit/cooldown = 6,
+ /obj/item/borg/upgrade/modkit/damage = 6,
+ /obj/item/borg/upgrade/modkit/range = 6,
+ /obj/item/borg/upgrade/modkit/aoe/mobs = 6,
+ /obj/item/borg/upgrade/modkit/aoe/turfs = 6,
+ /obj/item/borg/upgrade/modkit/trigger_guard = 6)
diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm
index b75fe9f6bb6e..467e306187c6 100644
--- a/code/modules/mob/living/simple_animal/hostile/bear.dm
+++ b/code/modules/mob/living/simple_animal/hostile/bear.dm
@@ -100,6 +100,17 @@
armored = TRUE
gold_core_spawnable = HOSTILE_SPAWN
+/mob/living/simple_animal/hostile/bear/cave
+ name = "brown bear"
+ desc = "A ferocious brown bear, ready to maul."
+ icon_state = "brownbear"
+ icon_living = "brownbear"
+ icon_dead = "brownbear_dead"
+ icon_gib = "brownbear_gib"
+ maxHealth = 70
+ health = 70
+ faction = list("mining")
+
/obj/item/bear_armor
name = "pile of bear armor"
desc = "A scattered pile of various shaped armor pieces fitted for a bear, some duct tape, and a nail filer. Crude instructions \
diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm
index fd109706d7ac..b276f8429042 100644
--- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm
+++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm
@@ -73,10 +73,7 @@
var/mob/living/L = target
if(prob(80))
var/atom/throw_target = get_edge_target_turf(L, dir)
- L.throw_at(throw_target, rand(1,2), 7, src)
- else
- L.Paralyze(20)
- visible_message("[src] knocks [L] down!")
+ L.throw_at(throw_target, rand(1,2), 7, src, gentle = TRUE)
/mob/living/simple_animal/hostile/gorilla/CanAttack(atom/the_target)
var/list/parts = target_bodyparts(target)
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index e7c6dbbee4eb..34f386e70e2a 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -79,6 +79,9 @@
retreat_distance = 5
minimum_distance = 5
+/mob/living/simple_animal/hostile/hivebot/range/rockplanet
+ faction = list("mining", "hivebot")
+
/mob/living/simple_animal/hostile/hivebot/rapid
icon_state = "ranged"
icon_living = "ranged"
@@ -88,6 +91,9 @@
retreat_distance = 5
minimum_distance = 5
+/mob/living/simple_animal/hostile/hivebot/rapid/rockplanet
+ faction = list("mining", "hivebot")
+
/mob/living/simple_animal/hostile/hivebot/strong
name = "strong hivebot"
icon_state = "strong"
@@ -98,6 +104,9 @@
maxHealth = 80
ranged = TRUE
+/mob/living/simple_animal/hostile/hivebot/strong/rockplanet
+ faction = list("mining", "hivebot")
+
/mob/living/simple_animal/hostile/hivebot/mechanic
name = "hivebot mechanic"
icon_state = "strong"
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index 989cb4add452..5154b5d63594 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -598,6 +598,8 @@
if(!can_charge_target(target))
return FALSE
Shake(15, 15, 1 SECONDS)
+ var/obj/effect/temp_visual/decoy/new_decoy = new /obj/effect/temp_visual/decoy(loc,src)
+ animate(new_decoy, alpha = 0, color = "#5a5858", transform = matrix()*2, time = 3)
target.visible_message("[src] prepares to pounce!")
addtimer(CALLBACK(src, .proc/handle_charge_target, target), 1.5 SECONDS, TIMER_STOPPABLE)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
index 1b4f72fe10d7..b56ce3d8091b 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm
@@ -545,416 +545,3 @@ Difficulty: Hard
/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/try_bloodattack()
return
-
-
-//Behold, his ultimate form
-/mob/living/simple_animal/hostile/megafauna/marg
- name = "His Excellence"
- desc = "Your end is at hand."
- maxHealth = 9999
- health = 9999
- damage_coeff = list(BRUTE = 0.5, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 1)//unstopping
- attack_verb_continuous = "reverts the pr of"
- attack_verb_simple = "revert the pr of"
- deathmessage = "Qdel's himself out of frustration!"
- icon_state = "margmob"
- icon_living = "margmob"
- pixel_x = -8
- pixel_y = 1
- friendly_verb_continuous = "margs"
- friendly_verb_simple = "marg"
- response_help_continuous = "pets"
- response_help_simple = "pet"
- icon = 'icons/obj/marg.dmi'
- armour_penetration = 100
- melee_damage_lower = 100
- melee_damage_upper = 100
- melee_damage_type = CLONE//he's deleting your source code
- attack_sound = 'sound/magic/demon_attack1.ogg'
- health_doll_icon = "bubblegum"
- icon = 'icons/obj/marg.dmi'
- speak_emote = list("margs")
- speed = 1
- move_to_delay = 1
- retreat_distance = 5
- minimum_distance = 5
- rapid_melee = 8 // every 1/4 second
- melee_queue_distance = 20 // as far as possible really, need this because of blood warp
- ranged = TRUE
- del_on_death = TRUE
- crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher)
- loot = list(/obj/structure/closet/crate/necropolis/bubblegum)
- blood_volume = BLOOD_VOLUME_MAXIMUM //BLEED FOR ME
- var/charging = FALSE
- var/enrage_till = 0
- var/enrage_time = 70
- var/revving_charge = FALSE
- gps_name = "Glitchy Signal"
- achievement_type = /datum/award/achievement/boss/bubblegum_kill
- crusher_achievement_type = /datum/award/achievement/boss/bubblegum_crusher
- score_achievement_type = /datum/award/score/bubblegum_score
- deathsound = 'sound/magic/enter_blood.ogg'
- attack_action_types = list(
- /datum/action/innate/megafauna_attack/triple_charge,
- /datum/action/innate/megafauna_attack/hallucination_charge,
- /datum/action/innate/megafauna_attack/hallucination_surround,
- /datum/action/innate/megafauna_attack/blood_warp)
- small_sprite_type = /datum/action/small_sprite/megafauna/bubblegum
-
-/mob/living/simple_animal/hostile/megafauna/marg/OpenFire()
- if(charging)
- return
-
- anger_modifier = clamp(((maxHealth - health)/60),0,20)
- enrage_time = initial(enrage_time) * clamp(anger_modifier / 20, 0.5, 1)
- ranged_cooldown = world.time + 50
-
- if(client)
- switch(chosen_attack)
- if(1)
- triple_charge()
- if(2)
- hallucination_charge()
- if(3)
- surround_with_hallucinations()
- if(4)
- blood_warp()
- return
-
- if(!try_bloodattack() || prob(25 + anger_modifier))
- blood_warp()
-
- if(!BUBBLEGUM_SMASH)
- triple_charge()
- else
- if(prob(50 + anger_modifier))
- hallucination_charge()
- else
- surround_with_hallucinations()
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/triple_charge()
- charge(delay = 6)
- charge(delay = 4)
- charge(delay = 2)
- SetRecoveryTime(15)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/hallucination_charge()
- if(!BUBBLEGUM_SMASH || prob(33))
- hallucination_charge_around(times = 6, delay = 8)
- SetRecoveryTime(10)
- else
- hallucination_charge_around(times = 4, delay = 9)
- hallucination_charge_around(times = 4, delay = 8)
- hallucination_charge_around(times = 4, delay = 7)
- triple_charge()
- SetRecoveryTime(20)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/surround_with_hallucinations()
- for(var/i = 1 to 5)
- INVOKE_ASYNC(src, .proc/hallucination_charge_around, 2, 8, 2, 0, 4)
- if(ismob(target))
- charge(delay = 6)
- else
- SLEEP_CHECK_DEATH(6)
- SetRecoveryTime(20)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/charge(atom/chargeat = target, delay = 3, chargepast = 2)
- if(!chargeat)
- return
- var/chargeturf = get_turf(chargeat)
- if(!chargeturf)
- return
- var/dir = get_dir(src, chargeturf)
- var/turf/T = get_ranged_target_turf(chargeturf, dir, chargepast)
- if(!T)
- return
- new /obj/effect/temp_visual/dragon_swoop/bubblegum(T)
- charging = TRUE
- revving_charge = TRUE
- DestroySurroundings()
- walk(src, 0)
- setDir(dir)
- var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
- animate(D, alpha = 0, color = "#22ff00", transform = matrix()*2, time = 3)
- SLEEP_CHECK_DEATH(delay)
- revving_charge = FALSE
- var/movespeed = 0.7
- walk_towards(src, T, movespeed)
- SLEEP_CHECK_DEATH(get_dist(src, T) * movespeed)
- walk(src, 0) // cancel the movement
- try_bloodattack()
- charging = FALSE
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/get_mobs_on_blood()
- var/list/targets = ListTargets()
- . = list()
- for(var/mob/living/L in targets)
- var/list/bloodpool = get_pools(get_turf(L), 0)
- if(bloodpool.len && (!faction_check_mob(L) || L.stat == DEAD))
- . += L
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/try_bloodattack()
- var/list/targets = get_mobs_on_blood()
- if(targets.len)
- INVOKE_ASYNC(src, .proc/bloodattack, targets, prob(50))
- return TRUE
- return FALSE
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/bloodattack(list/targets, handedness)
- var/mob/living/target_one = pick_n_take(targets)
- var/turf/target_one_turf = get_turf(target_one)
- var/mob/living/target_two
- if(targets.len)
- target_two = pick_n_take(targets)
- var/turf/target_two_turf = get_turf(target_two)
- if(target_two.stat != CONSCIOUS || prob(10))
- bloodgrab(target_two_turf, handedness)
- else
- bloodsmack(target_two_turf, handedness)
-
- if(target_one)
- var/list/pools = get_pools(get_turf(target_one), 0)
- if(pools.len)
- target_one_turf = get_turf(target_one)
- if(target_one_turf)
- if(target_one.stat != CONSCIOUS || prob(10))
- bloodgrab(target_one_turf, !handedness)
- else
- bloodsmack(target_one_turf, !handedness)
-
- if(!target_two && target_one)
- var/list/poolstwo = get_pools(get_turf(target_one), 0)
- if(poolstwo.len)
- target_one_turf = get_turf(target_one)
- if(target_one_turf)
- if(target_one.stat != CONSCIOUS || prob(10))
- bloodgrab(target_one_turf, handedness)
- else
- bloodsmack(target_one_turf, handedness)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/bloodsmack(turf/T, handedness)
- if(handedness)
- new /obj/effect/temp_visual/bubblegum_hands/rightsmack(T)
- else
- new /obj/effect/temp_visual/bubblegum_hands/leftsmack(T)
- SLEEP_CHECK_DEATH(4)
- for(var/mob/living/L in T)
- if(!faction_check_mob(L))
- to_chat(L, "[src] reverts you!")
- playsound(T, attack_sound, 100, TRUE, -1)
- var/limb_to_hit = L.get_bodypart(pick(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_R_ARM, BODY_ZONE_L_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_LEG))
- L.apply_damage(10, BRUTE, limb_to_hit, L.run_armor_check(limb_to_hit, "melee", armour_penetration, silent = TRUE))
- SLEEP_CHECK_DEATH(3)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/bloodgrab(turf/T, handedness)
- if(handedness)
- new /obj/effect/temp_visual/bubblegum_hands/rightpaw(T)
- new /obj/effect/temp_visual/bubblegum_hands/rightthumb(T)
- else
- new /obj/effect/temp_visual/bubblegum_hands/leftpaw(T)
- new /obj/effect/temp_visual/bubblegum_hands/leftthumb(T)
- SLEEP_CHECK_DEATH(6)
- for(var/mob/living/L in T)
- if(!faction_check_mob(L))
- if(L.stat != CONSCIOUS)
- to_chat(L, "[src] glitches you through the floor!")
- playsound(T, 'sound/magic/enter_blood.ogg', 100, TRUE, -1)
- var/turf/targetturf = get_step(src, dir)
- L.forceMove(targetturf)
- playsound(targetturf, 'sound/magic/exit_blood.ogg', 100, TRUE, -1)
- addtimer(CALLBACK(src, .proc/devour, L), 2)
- SLEEP_CHECK_DEATH(1)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/blood_warp()
- if(Adjacent(target))
- return FALSE
- var/list/can_jaunt = get_pools(get_turf(src), 1)
- if(!can_jaunt.len)
- return FALSE
-
- var/list/pools = get_pools(get_turf(target), 5)
- var/list/pools_to_remove = get_pools(get_turf(target), 4)
- pools -= pools_to_remove
- if(!pools.len)
- return FALSE
-
- var/obj/effect/temp_visual/decoy/DA = new /obj/effect/temp_visual/decoy(loc,src)
- DA.color = "#22ff00"
- var/oldtransform = DA.transform
- DA.transform = matrix()*2
- animate(DA, alpha = 255, color = initial(DA.color), transform = oldtransform, time = 3)
- SLEEP_CHECK_DEATH(3)
- qdel(DA)
-
- var/obj/effect/decal/cleanable/blood/found_bloodpool
- pools = get_pools(get_turf(target), 5)
- pools_to_remove = get_pools(get_turf(target), 4)
- pools -= pools_to_remove
- if(pools.len)
- shuffle_inplace(pools)
- found_bloodpool = pick(pools)
- if(found_bloodpool)
- visible_message("[src] t-poses and glitches sideways through the floor...")
- playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, TRUE, -1)
- forceMove(get_turf(found_bloodpool))
- playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, TRUE, -1)
- visible_message("And teleports back out!")
- blood_enrage()
- return TRUE
- return FALSE
-
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/be_aggressive()
- if(BUBBLEGUM_IS_ENRAGED)
- return TRUE
- return isliving(target) && HAS_TRAIT(target, TRAIT_INCAPACITATED)
-
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/get_retreat_distance()
- return (be_aggressive() ? null : initial(retreat_distance))
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/get_minimum_distance()
- return (be_aggressive() ? 1 : initial(minimum_distance))
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/update_approach()
- retreat_distance = get_retreat_distance()
- minimum_distance = get_minimum_distance()
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/blood_enrage()
- if(!BUBBLEGUM_CAN_ENRAGE)
- return FALSE
- enrage_till = world.time + enrage_time
- update_approach()
- change_move_delay(3.75)
- var/newcolor = rgb(149, 10, 10)
- add_atom_colour(newcolor, TEMPORARY_COLOUR_PRIORITY)
- var/datum/callback/cb = CALLBACK(src, .proc/blood_enrage_end)
- addtimer(cb, enrage_time)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/blood_enrage_end(newcolor = rgb(149, 10, 10))
- update_approach()
- change_move_delay()
- remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, newcolor)
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/change_move_delay(newmove = initial(move_to_delay))
- move_to_delay = newmove
- set_varspeed(move_to_delay)
- handle_automated_action() // need to recheck movement otherwise move_to_delay won't update until the next checking aka will be wrong speed for a bit
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/get_pools(turf/T, range)
- . = list()
- for(var/obj/effect/decal/cleanable/nearby in view(T, range))
- if(nearby.can_bloodcrawl_in())
- . += nearby
-
-/obj/effect/decal/cleanable/blood/bubblegum
- bloodiness = 0
-
-/obj/effect/decal/cleanable/blood/bubblegum/can_bloodcrawl_in()
- return TRUE
-
-/mob/living/simple_animal/hostile/megafauna/marg/proc/hallucination_charge_around(times = 4, delay = 6, chargepast = 0, useoriginal = 1, radius)
- var/startingangle = rand(1, 360)
- if(!target)
- return
- var/turf/chargeat = get_turf(target)
- var/srcplaced = FALSE
- if(!radius)
- radius = times
- for(var/i = 1 to times)
- var/ang = (startingangle + 360/times * i)
- if(!chargeat)
- return
- var/turf/place = locate(chargeat.x + cos(ang) * radius, chargeat.y + sin(ang) * radius, chargeat.z)
- if(!place)
- continue
- if(!nest || nest && nest.parent && get_dist(nest.parent, place) <= nest_range)
- if(!srcplaced && useoriginal)
- forceMove(place)
- srcplaced = TRUE
- continue
- var/mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination/B = new /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination(src.loc)
- B.forceMove(place)
- INVOKE_ASYNC(B, .proc/charge, chargeat, delay, chargepast)
- if(useoriginal)
- charge(chargeat, delay, chargepast)
-
-/mob/living/simple_animal/hostile/megafauna/marg/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE)
- . = ..()
- if(. > 0 && prob(25))
- var/obj/effect/decal/cleanable/blood/gibs/bubblegum/B = new /obj/effect/decal/cleanable/blood/gibs/bubblegum(loc)
- if(prob(40))
- step(B, pick(GLOB.cardinals))
- else
- B.setDir(pick(GLOB.cardinals))
-
-/mob/living/simple_animal/hostile/megafauna/marg/do_attack_animation(atom/A, visual_effect_icon)
- if(!charging)
- ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/AttackingTarget()
- if(!charging)
- . = ..()
- if(.)
- recovery_time = world.time + 20 // can only attack melee once every 2 seconds but rapid_melee gives higher priority
-
-/mob/living/simple_animal/hostile/megafauna/marg/bullet_act(obj/projectile/P)
- if(BUBBLEGUM_IS_ENRAGED)
- visible_message("[src] deflects the projectile; [p_they()] can't be hit with puny projectiles while filled with divine fury!", "You deflect the projectile!")
- playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 300, TRUE)
- return BULLET_ACT_BLOCK
- return ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/ex_act(severity, target)
- if(severity >= EXPLODE_LIGHT)
- return
- severity = EXPLODE_LIGHT // puny mortals
- return ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/CanAllowThrough(atom/movable/mover, turf/target)
- . = ..()
- if(istype(mover, /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination))
- return TRUE
-
-/mob/living/simple_animal/hostile/megafauna/marg/Goto(target, delay, minimum_distance)
- if(!charging)
- ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/MoveToTarget(list/possible_targets)
- if(!charging)
- ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/Move()
- update_approach()
- if(revving_charge)
- return FALSE
- if(charging)
- new /obj/effect/temp_visual/decoy/fading(loc,src)
- DestroySurroundings()
- ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/Moved(atom/OldLoc, Dir, Forced = FALSE)
- if(Dir)
- new /obj/effect/decal/cleanable/blood/bubblegum(src.loc)
- if(charging)
- DestroySurroundings()
- playsound(src, 'sound/effects/meteorimpact.ogg', 200, TRUE, 2, TRUE)
- return ..()
-
-/mob/living/simple_animal/hostile/megafauna/marg/Bump(atom/A)
- if(charging)
- if(isturf(A) || isobj(A) && A.density)
- if(isobj(A))
- SSexplosions.medobj += A
- else
- SSexplosions.medturf += A
- DestroySurroundings()
- if(isliving(A))
- var/mob/living/L = A
- L.visible_message("[src] glitches through [L]!", "[src] speedmerges you with the floor!")
- src.forceMove(get_turf(L))
- L.apply_damage(istype(src, /mob/living/simple_animal/hostile/megafauna/bubblegum/hallucination) ? 50 : 50, CLONE)
- playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, TRUE)
- shake_camera(L, 4, 3)
- shake_camera(src, 2, 3)
- ..()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
index f273a3698b06..ae7773eba93c 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/goliath_broodmother.dm
@@ -247,3 +247,12 @@
/obj/item/crusher_trophy/broodmother_tongue/on_mark_detonation(mob/living/target, mob/living/user)
if(rand(1, 100) <= bonus_value && target.stat != DEAD)
new /obj/effect/temp_visual/goliath_tentacle/broodmother/patch(get_turf(target), user)
+
+/mob/living/simple_animal/hostile/asteroid/elite/broodmother_child/rockplanet
+ name = "baby gruboid"
+ desc = "A young gruboid recently born. As a defense mechanism, they violently explode if killed."
+ icon_state = "gruboid_baby"
+ icon_living = "gruboid_baby"
+ icon_aggro = "gruboid_baby"
+ icon_dead = "gruboid_baby_dead"
+ icon_gib = "syndicate_gib"
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
index 050095bd29e9..a7842e3e3777 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm
@@ -432,3 +432,19 @@
if(istype(target,/mob/living/simple_animal/hostile/asteroid))
return FALSE
return ..()
+
+/mob/living/simple_animal/hostile/asteroid/goliath/beast/rockplanet
+ name = "gruboid"
+ desc = "A massive beast that uses long tentacles to ensnare its prey, threatening them is not advised under any conditions."
+ icon_state = "gruboid2"
+ icon_living = "gruboid2"
+ icon_aggro = "gruboid"
+ pre_attack_icon = "gruboid"
+ icon_dead = "gruboid_dead"
+ icon_gib = "syndicate_gib"
+ tentacle_type = /obj/effect/temp_visual/goliath_tentacle/rockplanet
+
+/obj/effect/temp_visual/goliath_tentacle/rockplanet
+ icon_state = "Gruboid_tentacle_wiggle"
+ wiggle = "Gruboid_tentacle_spawn"
+ retract = "Gruboid_tentacle_retract"
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm
new file mode 100644
index 000000000000..606cf856d4d3
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/lobstrosity.dm
@@ -0,0 +1,43 @@
+/**
+ * Lobstrosities, the poster boy of charging AI mobs. Drops crab meat and bones.
+ * Outside of charging, it's intended behavior is that it is generally slow moving, but makes up for that with a knockdown attack to score additional hits.
+ */
+/mob/living/simple_animal/hostile/asteroid/lobstrosity
+ name = "arctic lobstrosity"
+ desc = "A marvel of evolution gone wrong, the frosty ice produces underground lakes where these ill tempered seafood gather. Beware its charge."
+ icon = 'icons/mob/icemoon/icemoon_monsters.dmi'
+ icon_state = "arctic_lobstrosity"
+ icon_living = "arctic_lobstrosity"
+ icon_dead = "arctic_lobstrosity_dead"
+ mob_biotypes = MOB_ORGANIC|MOB_BEAST
+ mouse_opacity = MOUSE_OPACITY_ICON
+ friendly_verb_continuous = "chitters at"
+ friendly_verb_simple = "chits at"
+ speak_emote = list("chitters")
+ speed = 3
+ move_to_delay = 10
+ maxHealth = 150
+ health = 150
+ obj_damage = 15
+ melee_damage_lower = 15
+ melee_damage_upper = 19
+ attack_verb_continuous = "snips"
+ attack_verb_simple = "snip"
+ attack_sound = 'sound/weapons/bite.ogg'
+ //attack_vis_effect = ATTACK_EFFECT_BITE //the closest we have to a crustacean pinching attack effect rn.
+ weather_immunities = list("snow")
+ vision_range = 5
+ aggro_vision_range = 7
+ charger = TRUE
+ charge_distance = 4
+ butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/rawcrab = 2, /obj/item/stack/sheet/bone = 2)
+ robust_searching = TRUE
+ footstep_type = FOOTSTEP_MOB_CLAW
+ crusher_loot = /obj/item/crusher_trophy/lobster_claw
+
+/mob/living/simple_animal/hostile/asteroid/lobstrosity/beach
+ name = "tropical lobstrosity"
+ desc = "A marvel of evolution gone wrong, on the tropical beaches, it's diet of crabs makes it have a red hued shell. Beware its charge."
+ icon_state = "lobstrosity"
+ icon_living = "lobstrosity"
+ icon_dead = "lobstrosity_dead"
diff --git a/code/modules/overmap/missions.dm b/code/modules/overmap/missions.dm
index 98146f3ac4ad..bd6354681294 100644
--- a/code/modules/overmap/missions.dm
+++ b/code/modules/overmap/missions.dm
@@ -13,7 +13,7 @@
var/dur_mod_range = 0.1
/// The outpost that issued this mission. Passed in New().
- var/datum/overmap/outpost/source_outpost
+ var/datum/overmap/dynamic/outpost/source_outpost
/// The ship that accepted this mission. Passed in accept().
var/datum/overmap/ship/controlled/servant
diff --git a/code/modules/overmap/objects/dynamic_datum.dm b/code/modules/overmap/objects/dynamic_datum.dm
index ace5177accd4..1a2d5486086a 100644
--- a/code/modules/overmap/objects/dynamic_datum.dm
+++ b/code/modules/overmap/objects/dynamic_datum.dm
@@ -23,11 +23,31 @@
var/static/list/probabilities
///The planet that will be forced to load
var/force_encounter
+ ///List of ruins to potentially generate
+ var/list/ruin_list
/// list of ruins and their target turf, indexed by name
var/list/ruin_turfs
+ ///The mapgenerator itself
+ var/datum/map_generator/mapgen
+ ///The area it will generate in
+ var/area/target_area
+ ///The turf the virtual z will be covered with. Appears to only be used by cave generators
+ var/turf/surface = /turf/open/space
+ ///The weather the virtual z will have. If null, the planet will have no weather.
+ var/datum/weather_controller/weather_controller_type
+ ///A planet template that contains a list of biomes to use
+ var/datum/planet/planet_template
+
+ ///The Y bounds of the virtual z level
+ var/vlevel_height = QUADRANT_MAP_SIZE
+ ///The X bounds of the virtual z level
+ var/vlevel_width = QUADRANT_MAP_SIZE
/datum/overmap/dynamic/Initialize(position, load_now=TRUE, ...)
. = ..()
+
+ vlevel_height = CONFIG_GET(number/overmap_encounter_size)
+ vlevel_width = CONFIG_GET(number/overmap_encounter_size)
choose_level_type(load_now)
/datum/overmap/dynamic/Destroy()
@@ -89,7 +109,7 @@
/**
* Chooses a type of level for the dynamic level to use.
*/
-/datum/overmap/dynamic/proc/choose_level_type(load_now = TRUE)
+/datum/overmap/dynamic/proc/choose_level_type(load_now = TRUE) //TODO: This is a awful way of hanlding random planets. If maybe it picked from a list of datums that then would be applied on the dynamic datum, it would be a LOT better.
var/chosen
if(!probabilities)
probabilities = list(DYNAMIC_WORLD_LAVA = min(length(SSmapping.lava_ruins_templates), 20),
@@ -97,8 +117,10 @@
DYNAMIC_WORLD_JUNGLE = min(length(SSmapping.jungle_ruins_templates), 20),
DYNAMIC_WORLD_SAND = min(length(SSmapping.sand_ruins_templates), 20),
DYNAMIC_WORLD_SPACERUIN = min(length(SSmapping.space_ruins_templates), 20),
+ DYNAMIC_WORLD_WASTEPLANET = min(length(SSmapping.waste_ruins_templates), 20),
DYNAMIC_WORLD_ROCKPLANET = min(length(SSmapping.rock_ruins_templates), 20),
- //DYNAMIC_WORLD_REEBE = 1, //very rare because of major lack of skil //TODO, make removing no teleport not break things, then it can be reenabled
+ DYNAMIC_WORLD_BEACHPLANET = min(length(SSmapping.beach_ruins_templates), 20),
+ //DYNAMIC_WORLD_REEBE = 0, //unspawnable because of major lack of skill. //you fucking probablitiy zero does not equal one you dumbass
DYNAMIC_WORLD_ASTEROID = 30)
if(force_encounter)
@@ -107,58 +129,141 @@
chosen = pickweight(probabilities)
switch(chosen)
if(DYNAMIC_WORLD_LAVA)
- Rename("strange lava planet")
+ Rename("lava planet")
token.desc = "A very weak energy signal originating from a planet with lots of seismic and volcanic activity."
planet = DYNAMIC_WORLD_LAVA
token.icon_state = "globe"
token.color = COLOR_ORANGE
planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.lava_ruins_templates
+ mapgen = /datum/map_generator/planet_generator/lava
+ target_area = /area/overmap_encounter/planetoid/lava
+ surface = /turf/open/floor/plating/asteroid/basalt/lava_land_surface
+ planet_template = /datum/planet/lava
+ weather_controller_type = /datum/weather_controller/lavaland
if(DYNAMIC_WORLD_ICE)
- Rename("strange ice planet")
+ Rename("frozen planet")
token.desc = "A very weak energy signal originating from a planet with traces of water and extremely low temperatures."
planet = DYNAMIC_WORLD_ICE
token.icon_state = "globe"
token.color = COLOR_BLUE_LIGHT
planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.ice_ruins_templates
+ mapgen = /datum/map_generator/planet_generator/snow
+ target_area = /area/overmap_encounter/planetoid/ice
+ surface = /turf/open/floor/plating/asteroid/snow/icemoon
+ planet_template = /datum/planet/snow
+ weather_controller_type = /datum/weather_controller/snow_planet
if(DYNAMIC_WORLD_JUNGLE)
- Rename("strange jungle planet")
+ Rename("jungle planet")
token.desc = "A very weak energy signal originating from a planet teeming with life."
planet = DYNAMIC_WORLD_JUNGLE
token.icon_state = "globe"
token.color = COLOR_LIME
planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.jungle_ruins_templates
+ mapgen = /datum/map_generator/planet_generator
+ target_area = /area/overmap_encounter/planetoid/jungle
+ surface = /turf/open/floor/plating/dirt/jungle
+ planet_template = /datum/planet/jungle
+ weather_controller_type = /datum/weather_controller/lush
if(DYNAMIC_WORLD_SAND)
- Rename("strange sand planet")
+ Rename("sand planet")
token.desc = "A very weak energy signal originating from a planet with many traces of silica."
planet = DYNAMIC_WORLD_SAND
token.icon_state = "globe"
token.color = COLOR_GRAY
planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.sand_ruins_templates
+ mapgen = /datum/map_generator/planet_generator/sand
+ target_area = /area/overmap_encounter/planetoid/sand
+ surface = /turf/open/floor/plating/asteroid/whitesands
+ planet_template = /datum/planet/sand //TODO, MAKE NEW PLANET TEMPLATE
+ weather_controller_type = /datum/weather_controller/desert
+ if(DYNAMIC_WORLD_WASTEPLANET)
+ Rename("waste disposal planet")
+ token.desc = "A very weak energy signal originating from a planet marked as waste disposal."
+ planet = DYNAMIC_WORLD_WASTEPLANET
+ token.icon_state = "globe"
+ token.color = "#a9883e"
+ planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.waste_ruins_templates
+ mapgen = /datum/map_generator/cave_generator/wasteplanet
+ target_area = /area/overmap_encounter/planetoid/wasteplanet
+ surface = /turf/open/floor/plating/asteroid/wasteplanet
+ weather_controller_type = /datum/weather_controller/chlorine //let's go??
+ //planet_template = /datum/planet/lava //TODO, MAKE NEW PLANET TEMPLATE
if(DYNAMIC_WORLD_ROCKPLANET)
- Rename("strange rock planet")
- token.desc = "A very weak energy signal originating from a abandoned industrial planet."
+ Rename("rock planet")
+ token.desc = "A very weak energy signal originating from a iron rich and rocky planet."
planet = DYNAMIC_WORLD_ROCKPLANET
token.icon_state = "globe"
- token.color = COLOR_BROWN
+ token.color = "#bd1313"
planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.rock_ruins_templates
+ mapgen = /datum/map_generator/planet_generator/lava //TODO, MAKE NEW PLANETGEN
+ target_area = /area/overmap_encounter/planetoid/rockplanet
+ surface = /turf/open/floor/plating/asteroid
+ weather_controller_type = /datum/weather_controller/rockplanet
+ planet_template = /datum/planet/rock
+ if(DYNAMIC_WORLD_BEACHPLANET)
+ Rename("beach planet")
+ token.desc = "A very weak energy signal originating from a warm, oxygen rich planet."
+ planet = DYNAMIC_WORLD_BEACHPLANET
+ token.icon_state = "globe"
+ token.color = "#c6b597"
+ planet_name = gen_planet_name()
+
+ ruin_list = SSmapping.beach_ruins_templates
+ mapgen = /datum/map_generator/planet_generator/beach
+ target_area = /area/overmap_encounter/planetoid/beachplanet
+ surface = /turf/open/floor/plating/asteroid/sand/lit
+ planet_template = /datum/planet/beach
+ weather_controller_type = /datum/weather_controller/lush
if(DYNAMIC_WORLD_REEBE)
Rename("???")
token.desc = "Some sort of strange portal. Theres no identification of what this is."
planet = DYNAMIC_WORLD_REEBE
token.icon_state = "wormhole"
token.color = COLOR_YELLOW
+ planet_name = "Reebe"
+
+ ruin_list = SSmapping.yellow_ruins_templates
+ mapgen = /datum/map_generator/cave_generator/reebe
+ target_area = /area/overmap_encounter/planetoid/reebe
+ surface = /turf/open/chasm/reebe_void
if(DYNAMIC_WORLD_ASTEROID)
Rename("large asteroid")
token.desc = "A large asteroid with significant traces of minerals."
planet = DYNAMIC_WORLD_ASTEROID
token.icon_state = "asteroid"
token.color = COLOR_GRAY
+
+ ruin_list = null // asteroid ruins when
+ surface = null
+ mapgen = /datum/map_generator/cave_generator/asteroid
+ weather_controller_type = null
if(DYNAMIC_WORLD_SPACERUIN)
Rename("weak energy signal")
token.desc = "A very weak energy signal emenating from space."
planet = DYNAMIC_WORLD_SPACERUIN
token.icon_state = "strange_event"
token.color = null
+ ruin_list = SSmapping.space_ruins_templates
+ surface = /turf/open/space
+ mapgen = null
+ weather_controller_type = null
+
+ if(vlevel_height >= 255 && vlevel_width >= 255) //little easter egg
+ planet_name = "LV-[pick(rand(11111,99999))]"
+ token.icon_state = "sector"
+ Rename(planet_name)
// - SERVER ISSUE: LOADING ALL PLANETS AT ROUND START KILLS PERFORMANCE BEYOND WHAT IS REASONABLE. OPTIMIZE SSMOBS IF YOU WANT THIS BACK
// #ifdef FULL_INIT //Initialising planets roundstart isn't NECESSARY, but is very nice in production. Takes a long time to load, though.
@@ -190,7 +295,7 @@
if(mapzone)
return TRUE
log_shuttle("[src] [REF(src)] LEVEL_INIT")
- var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(planet, TRUE, ruin_type = template)
+ var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(src, TRUE, ruin_type = template)
if(!length(dynamic_encounter_values))
return FALSE
mapzone = dynamic_encounter_values[1]
@@ -207,6 +312,7 @@
sound_environment = SOUND_ENVIRONMENT_STONEROOM
ambientsounds = RUINS
outdoors = TRUE
+ allow_weather = TRUE
/area/overmap_encounter/planetoid
name = "\improper Unknown Planetoid"
@@ -214,6 +320,12 @@
has_gravity = STANDARD_GRAVITY
always_unpowered = TRUE
+/area/overmap_encounter/planetoid/cave
+ name = "\improper Planetoid Cavern"
+ sound_environment = SOUND_ENVIRONMENT_CAVE
+ ambientsounds = SPOOKY
+ allow_weather = FALSE
+
/area/overmap_encounter/planetoid/lava
name = "\improper Volcanic Planetoid"
ambientsounds = MINING
@@ -235,13 +347,23 @@
/area/overmap_encounter/planetoid/rockplanet
name = "\improper Rocky Planetoid"
- sound_environment = SOUND_ENVIRONMENT_HANGAR
- ambientsounds = MAINTENANCE
+ sound_environment = SOUND_ENVIRONMENT_QUARRY
+ ambientsounds = AWAY_MISSION
+
+/area/overmap_encounter/planetoid/beachplanet
+ name = "\improper Beach Planetoid"
+ sound_environment = SOUND_ENVIRONMENT_FOREST
+ ambientsounds = BEACH
/area/overmap_encounter/planetoid/rockplanet/explored//for use in ruins
area_flags = UNIQUE_AREA
area_flags = VALID_TERRITORY | UNIQUE_AREA
+/area/overmap_encounter/planetoid/wasteplanet
+ name = "\improper Waste Planetoid"
+ sound_environment = SOUND_ENVIRONMENT_HANGAR
+ ambientsounds = MAINTENANCE
+
/area/overmap_encounter/planetoid/reebe
name = "\improper Yellow Space"
sound_environment = SOUND_ENVIRONMENT_MOUNTAINS
diff --git a/code/modules/overmap/objects/outpost.dm b/code/modules/overmap/objects/outpost.dm
index d2736cd1395a..cfb9226de682 100644
--- a/code/modules/overmap/objects/outpost.dm
+++ b/code/modules/overmap/objects/outpost.dm
@@ -1,35 +1,28 @@
-/datum/overmap/outpost
+/datum/overmap/dynamic/outpost
name = "outpost"
char_rep = "T"
token_icon_state = "station"
- var/datum/map_zone/mapzone
- var/list/obj/docking_port/stationary/reserve_docks
+ preserve_level = TRUE
/// List of missions that can be accepted at this outpost.
var/list/datum/mission/missions
var/max_missions = 15
-/datum/overmap/outpost/Initialize(...)
+/datum/overmap/dynamic/outpost/Initialize(...)
. = ..()
Rename(gen_outpost_name())
fill_missions()
addtimer(CALLBACK(src, .proc/fill_missions), 10 MINUTES, TIMER_STOPPABLE|TIMER_LOOP|TIMER_DELETE_ME)
-/datum/overmap/outpost/Destroy()
- for(var/obj/docking_port/stationary/dock as anything in reserve_docks)
- reserve_docks -= dock
- qdel(dock, TRUE)
- if(mapzone)
- mapzone.clear_reservation()
- QDEL_NULL(mapzone)
- return ..()
-
-/datum/overmap/dynamic/get_jump_to_turf()
+/datum/overmap/dynamic/outpost/get_jump_to_turf()
if(reserve_docks)
return get_turf(pick(reserve_docks))
-/datum/overmap/outpost/pre_docked(datum/overmap/ship/controlled/dock_requester)
+/datum/overmap/dynamic/outpost/choose_level_type()
+ return
+
+/datum/overmap/dynamic/outpost/pre_docked(datum/overmap/ship/controlled/dock_requester)
if(!load_drydock())
return FALSE
var/dock_to_use = null
@@ -43,18 +36,18 @@
adjust_dock_to_shuttle(dock_to_use, dock_requester.shuttle_port)
return new /datum/docking_ticket(dock_to_use, src, dock_requester)
-/datum/overmap/outpost/post_docked(datum/overmap/ship/controlled/dock_requester)
+/datum/overmap/dynamic/outpost/post_docked(datum/overmap/ship/controlled/dock_requester)
for(var/mob/M as anything in GLOB.player_list)
if(dock_requester.shuttle_port.is_in_shuttle_bounds(M))
M.play_screen_text("[name]
[station_time_timestamp_fancy("hh:mm")]")
return
// this should be reworked sometime
-/datum/overmap/outpost/proc/load_drydock()
+/datum/overmap/dynamic/outpost/proc/load_drydock()
if(mapzone)
return TRUE
log_shuttle("[src] [REF(src)] OUTPOST LEVEL_INIT")
- var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(null, FALSE, null)
+ var/list/dynamic_encounter_values = SSovermap.spawn_dynamic_encounter(src, FALSE, null)
if(!length(dynamic_encounter_values))
return FALSE
mapzone = dynamic_encounter_values[1]
@@ -62,7 +55,7 @@
return TRUE
// Shamelessly cribbed from how Elite: Dangerous does station names.
-/datum/overmap/outpost/proc/gen_outpost_name()
+/datum/overmap/dynamic/outpost/proc/gen_outpost_name()
var/person_name
if(prob(40))
person_name = pick(GLOB.last_names)
@@ -79,7 +72,7 @@
return "[person_name] [pick(GLOB.station_suffixes)]"
-/datum/overmap/outpost/proc/fill_missions()
+/datum/overmap/dynamic/outpost/proc/fill_missions()
while(LAZYLEN(missions) < max_missions)
var/mission_type = get_weighted_mission_type()
var/datum/mission/M = new mission_type(src)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 5a77edd173ce..8589f5e62f0d 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -2644,6 +2644,13 @@
concrete_type = /datum/reagent/concrete/hexacrete
units_per_aggregate = 2
+/datum/reagent/cement/roadmix
+ name = "Road mixture"
+ description = "A mix of cement and asphalt. Looks less tasty than normal cement."
+ color = "#5c6361"
+ potency = 3
+ concrete_type = /datum/reagent/concrete/pavement
+
/datum/reagent/concrete
name = "Concrete"
description = "A mix of cement and aggregate, commonly used as a bulk building material."
@@ -2696,6 +2703,12 @@
wall_type = /turf/closed/wall/concrete/reinforced
floor_type = /turf/open/floor/concrete/reinforced
+/datum/reagent/concrete/pavement
+ name = "Pavement"
+ description = "Road surface, blacktop, asphalt concrete, whatever you call it, it's the most common material used in constructing runways for ships and roadways for vehicles."
+ color = "#3f4543"
+ floor_type = /turf/open/floor/concrete/pavement
+
/datum/reagent/calcium
name = "Calcium"
description = "A dull gray metal important to bones."
@@ -2716,6 +2729,19 @@
reagent_state = SOLID
color = "#c2c2c2"
+/datum/reagent/asphalt
+ name = "Asphalt"
+ description = "A dark, viscous liquid. Often found in oil deposits, although sometimes it can seep to the surface."
+ color = "#111212"
+ taste_description = "petroleum"
+
+/datum/reagent/asphalt/on_mob_life(mob/living/carbon/M)
+ . = ..()
+ if(prob(min(current_cycle/2, 5)))
+ M.adjustToxLoss(2*REM)
+ if(prob(min(current_cycle/4, 10)))
+ M.adjustOrganLoss(ORGAN_SLOT_STOMACH,3*REM)
+
/datum/reagent/mutationtoxin/kobold
name = "Kobold Mutation Toxin"
description = "An ashen toxin. Something about this seems lesser."
diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm
index c3e016855ef5..261f16dc6524 100644
--- a/code/modules/reagents/chemistry/recipes/others.dm
+++ b/code/modules/reagents/chemistry/recipes/others.dm
@@ -651,3 +651,14 @@
var/location = get_turf(holder.my_atom)
for(var/i = 1, i <= created_volume, i++)
new /obj/item/stack/sheet/mineral/titanium(location)
+
+/datum/chemical_reaction/asphalt_heat
+ results = list(/datum/reagent/carbon = 0.4, /datum/reagent/acetone = 0.2, /datum/reagent/consumable/ethanol = 0.2, /datum/reagent/consumable/ethanol = 0.2)
+ required_reagents = list(/datum/reagent/asphalt = 1)
+ required_temp = 418
+ mix_message = "The mixture separates."
+
+/datum/chemical_reaction/pavement
+ results = list(/datum/reagent/cement/roadmix = 2)
+ required_reagents = list(/datum/reagent/cement = 1, /datum/reagent/asphalt = 1)
+ mix_message = "The mixture mixing suddenly reminds you of cramped urban worlds."
diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
index 0667e5373a0e..fd2a9726b4fa 100644
--- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
+++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
@@ -32,17 +32,13 @@
name = "cracked earth"
icon = 'icons/turf/floors.dmi'
icon_state = "wasteland"
- environment_type = "wasteland"
+ base_icon_state = "wasteland"
baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland
digResult = /obj/item/stack/ore/glass/basalt
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
slowdown = 0.5
floor_variance = 30
-
-/turf/open/floor/plating/asteroid/basalt/wasteland/Initialize(mapload, inherited_virtual_z)
- .=..()
- if(prob(floor_variance))
- icon_state = "[environment_type][rand(0,6)]"
+ max_icon_states = 6
/turf/closed/mineral/strong/wasteland
name = "ancient dry rock"
diff --git a/code/modules/vehicles/pimpin_ride.dm b/code/modules/vehicles/pimpin_ride.dm
index fa2e067097d6..fd51a1821514 100644
--- a/code/modules/vehicles/pimpin_ride.dm
+++ b/code/modules/vehicles/pimpin_ride.dm
@@ -79,7 +79,8 @@
/obj/vehicle/ridden/janicart/upgraded
floorbuffer = TRUE
-//Boomer-mobile Lawnmower
+//Lawnmower
+//For those who want to play farm simulator 503
/obj/vehicle/ridden/lawnmower
name = "lawn mower"
@@ -151,20 +152,29 @@
/obj/vehicle/ridden/lawnmower/proc/mow_lawn()
//Nearly copypasted from goats
var/mowed = FALSE
- var/obj/structure/spacevine/SV = locate(/obj/structure/spacevine) in loc
- if(SV)
- SV.eat(src)
+ var/obj/structure/spacevine/spacevine = locate(/obj/structure/spacevine) in loc
+ if(spacevine)
+ qdel(spacevine)
mowed = TRUE
- var/obj/structure/glowshroom/GS = locate(/obj/structure/glowshroom) in loc
- if(GS)
- qdel(GS)
+ var/obj/structure/glowshroom/glowshroom = locate(/obj/structure/glowshroom) in loc
+ if(glowshroom)
+ qdel(glowshroom)
mowed = TRUE
- var/obj/structure/alien/weeds/AW = locate(/obj/structure/alien/weeds) in loc
- if(AW)
- qdel(AW)
+ var/obj/structure/alien/weeds/ayy_weeds = locate(/obj/structure/alien/weeds) in loc
+ if(ayy_weeds)
+ qdel(ayy_weeds)
mowed = TRUE
+ var/obj/structure/flora/flora = locate(/obj/structure/flora) in loc
+ if(ayy_weeds)
+ if(!istype(flora, /obj/structure/flora/rock))
+ qdel(flora)
+ mowed = TRUE
+ else
+ take_damage(25)
+ visible_message("\the [src] makes a awful grinding sound as it drives over [flora]!")
+
if(mowed)
playsound(loc, pick(drive_sounds), 50, 1)
diff --git a/config/game_options.txt b/config/game_options.txt
index dfb65efa5c3b..bf970824a0af 100644
--- a/config/game_options.txt
+++ b/config/game_options.txt
@@ -581,6 +581,9 @@ OVERMAP_SIZE 12
## Valid values are: "random", "solar_system"
OVERMAP_GENERATOR_TYPE solar_system
+## Size of overmap encounters, vertical and width with a 3 tile border
+OVERMAP_ENCOUNTER_SIZE 127
+
## The time required before a ship is allowed to bluespace jump. -1 disables it entirely
## In deciseconds, valid values are -1 to INFINITY
BLUESPACE_JUMP_WAIT 12000
diff --git a/icons/effects/footprints.dmi b/icons/effects/footprints.dmi
index d936501c9ecc..60b480a5e44f 100644
Binary files a/icons/effects/footprints.dmi and b/icons/effects/footprints.dmi differ
diff --git a/icons/effects/weather_effects.dmi b/icons/effects/weather_effects.dmi
index 250f099be95a..a8a7185af500 100644
Binary files a/icons/effects/weather_effects.dmi and b/icons/effects/weather_effects.dmi differ
diff --git a/icons/misc/beach.dmi b/icons/misc/beach.dmi
index 1d189263150b..c0ef69522c7b 100644
Binary files a/icons/misc/beach.dmi and b/icons/misc/beach.dmi differ
diff --git a/icons/mob/fish.dmi b/icons/mob/fish.dmi
new file mode 100644
index 000000000000..60fedf82bc15
Binary files /dev/null and b/icons/mob/fish.dmi differ
diff --git a/icons/mob/lavaland/lavaland_monsters.dmi b/icons/mob/lavaland/lavaland_monsters.dmi
index f2785a4be220..51ff624072ea 100644
Binary files a/icons/mob/lavaland/lavaland_monsters.dmi and b/icons/mob/lavaland/lavaland_monsters.dmi differ
diff --git a/icons/obj/flora/barren_tree.dmi b/icons/obj/flora/barren_tree.dmi
new file mode 100644
index 000000000000..ebf666dff8ec
Binary files /dev/null and b/icons/obj/flora/barren_tree.dmi differ
diff --git a/icons/obj/flora/bigtrees.dmi b/icons/obj/flora/bigtrees.dmi
new file mode 100644
index 000000000000..8b36fb12fe35
Binary files /dev/null and b/icons/obj/flora/bigtrees.dmi differ
diff --git a/icons/obj/flora/hellflora.dmi b/icons/obj/flora/hellflora.dmi
new file mode 100644
index 000000000000..403570c12486
Binary files /dev/null and b/icons/obj/flora/hellflora.dmi differ
diff --git a/icons/obj/flora/lavarocks.dmi b/icons/obj/flora/lavarocks.dmi
new file mode 100644
index 000000000000..f86be152a4c5
Binary files /dev/null and b/icons/obj/flora/lavarocks.dmi differ
diff --git a/icons/obj/flora/lavatrees.dmi b/icons/obj/flora/lavatrees.dmi
new file mode 100644
index 000000000000..974798acd5a8
Binary files /dev/null and b/icons/obj/flora/lavatrees.dmi differ
diff --git a/icons/obj/flora/rocks.dmi b/icons/obj/flora/rocks.dmi
index 3e7ea031266e..ea41ae365f46 100644
Binary files a/icons/obj/flora/rocks.dmi and b/icons/obj/flora/rocks.dmi differ
diff --git a/icons/obj/flora/tall_trees.dmi b/icons/obj/flora/tall_trees.dmi
new file mode 100644
index 000000000000..06721abe1d71
Binary files /dev/null and b/icons/obj/flora/tall_trees.dmi differ
diff --git a/icons/obj/flora/tall_trees_dead.dmi b/icons/obj/flora/tall_trees_dead.dmi
new file mode 100644
index 000000000000..93cd6f87e8d0
Binary files /dev/null and b/icons/obj/flora/tall_trees_dead.dmi differ
diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi
index c8c93013e86d..a64cd4122776 100644
Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ
diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi
index 1e60c01131fe..6bfc72d943e8 100644
Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ
diff --git a/icons/turf/ancient_floors.dmi b/icons/turf/ancient_floors.dmi
deleted file mode 100644
index 68a7f895e702..000000000000
Binary files a/icons/turf/ancient_floors.dmi and /dev/null differ
diff --git a/icons/turf/decals.dmi b/icons/turf/decals.dmi
index 7b7407354046..01d6c95eeb47 100644
Binary files a/icons/turf/decals.dmi and b/icons/turf/decals.dmi differ
diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi
index b3e2de1d7e4f..ab027247cc28 100644
Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ
diff --git a/icons/turf/floors/lava_grass_orange.dmi b/icons/turf/floors/lava_grass_orange.dmi
new file mode 100644
index 000000000000..9b26e8509998
Binary files /dev/null and b/icons/turf/floors/lava_grass_orange.dmi differ
diff --git a/icons/turf/floors/lava_grass_purple.dmi b/icons/turf/floors/lava_grass_purple.dmi
new file mode 100644
index 000000000000..ccd0dbffb0cf
Binary files /dev/null and b/icons/turf/floors/lava_grass_purple.dmi differ
diff --git a/icons/turf/floors/lava_grass_red.dmi b/icons/turf/floors/lava_grass_red.dmi
new file mode 100644
index 000000000000..1f36a2fe7088
Binary files /dev/null and b/icons/turf/floors/lava_grass_red.dmi differ
diff --git a/icons/turf/lava_moss.dmi b/icons/turf/lava_moss.dmi
new file mode 100644
index 000000000000..483fb706c98c
Binary files /dev/null and b/icons/turf/lava_moss.dmi differ
diff --git a/icons/turf/lavaland_purple.dmi b/icons/turf/lavaland_purple.dmi
new file mode 100644
index 000000000000..cf45cf3625a9
Binary files /dev/null and b/icons/turf/lavaland_purple.dmi differ
diff --git a/icons/turf/smoothrocks.dmi b/icons/turf/smoothrocks.dmi
deleted file mode 100644
index 3bdca4aca17e..000000000000
Binary files a/icons/turf/smoothrocks.dmi and /dev/null differ
diff --git a/icons/turf/snow.dmi b/icons/turf/snow.dmi
index d71431f99ad4..594a4f91e6c2 100644
Binary files a/icons/turf/snow.dmi and b/icons/turf/snow.dmi differ
diff --git a/icons/turf/walls/icewall.dmi b/icons/turf/walls/icewall.dmi
new file mode 100644
index 000000000000..f5ab8112f3fb
Binary files /dev/null and b/icons/turf/walls/icewall.dmi differ
diff --git a/icons/turf/walls/jungle_wall.dmi b/icons/turf/walls/jungle_wall.dmi
new file mode 100644
index 000000000000..ce3037e16186
Binary files /dev/null and b/icons/turf/walls/jungle_wall.dmi differ
diff --git a/icons/turf/walls/mountain_wall.dmi b/icons/turf/walls/mountain_wall.dmi
index 46ab374e8b4c..331616a55e71 100644
Binary files a/icons/turf/walls/mountain_wall.dmi and b/icons/turf/walls/mountain_wall.dmi differ
diff --git a/icons/turf/walls/red_wall.dmi b/icons/turf/walls/red_wall.dmi
index 5eb26cf6a30e..4e20ddebd82a 100644
Binary files a/icons/turf/walls/red_wall.dmi and b/icons/turf/walls/red_wall.dmi differ
diff --git a/icons/turf/walls/rockwall_icemoon.dmi b/icons/turf/walls/rockwall_icemoon.dmi
new file mode 100644
index 000000000000..1dc5e4545f57
Binary files /dev/null and b/icons/turf/walls/rockwall_icemoon.dmi differ
diff --git a/icons/turf/walls/smoothrocks.dmi b/icons/turf/walls/smoothrocks.dmi
new file mode 100644
index 000000000000..70c73a26211f
Binary files /dev/null and b/icons/turf/walls/smoothrocks.dmi differ
diff --git a/icons/turf/walls/wasteplanet.dmi b/icons/turf/walls/wasteplanet.dmi
new file mode 100644
index 000000000000..4aad2cbe814c
Binary files /dev/null and b/icons/turf/walls/wasteplanet.dmi differ
diff --git a/shiptest.dme b/shiptest.dme
index 65ef1ec42c23..464da3fe6612 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -475,6 +475,7 @@
#include "code\datums\components\knockback.dm"
#include "code\datums\components\knockoff.dm"
#include "code\datums\components\label.dm"
+#include "code\datums\components\largeobjecttransparency.dm"
#include "code\datums\components\lifesteal.dm"
#include "code\datums\components\lockon_aiming.dm"
#include "code\datums\components\manual_blinking.dm"
@@ -646,16 +647,36 @@
#include "code\datums\looping_sounds\machinery_sounds.dm"
#include "code\datums\looping_sounds\weather.dm"
#include "code\datums\mapgen\_MapGenerator.dm"
-#include "code\datums\mapgen\CaveGenerator.dm"
-#include "code\datums\mapgen\JungleGenerator.dm"
+#include "code\datums\mapgen\BeachGenerator.dm"
+#include "code\datums\mapgen\LavaGenerator.dm"
+#include "code\datums\mapgen\PlanetGenerator.dm"
+#include "code\datums\mapgen\RockGenerator .dm"
+#include "code\datums\mapgen\SandGenerator.dm"
+#include "code\datums\mapgen\SnowGenerator.dm"
+#include "code\datums\mapgen\WasteGenerator.dm"
#include "code\datums\mapgen\Whitesandsatmos.dm"
#include "code\datums\mapgen\biomes\_biome.dm"
+#include "code\datums\mapgen\biomes\beach_biomes.dm"
+#include "code\datums\mapgen\biomes\jungle_biomes.dm"
+#include "code\datums\mapgen\biomes\lava_biomes.dm"
+#include "code\datums\mapgen\biomes\rock_biomes.dm"
+#include "code\datums\mapgen\biomes\sand_biomes.dm"
+#include "code\datums\mapgen\biomes\snow_biomes.dm"
#include "code\datums\mapgen\Cavegens\AsteroidCaves.dm"
+#include "code\datums\mapgen\Cavegens\CaveGenerator.dm"
#include "code\datums\mapgen\Cavegens\IcemoonCaves.dm"
#include "code\datums\mapgen\Cavegens\LavalandGenerator.dm"
#include "code\datums\mapgen\Cavegens\ReebeGenerator.dm"
#include "code\datums\mapgen\Cavegens\RockplanetCaves.dm"
+#include "code\datums\mapgen\Cavegens\WasteplanetCaves.dm"
#include "code\datums\mapgen\Cavegens\WhitesandsCaves.dm"
+#include "code\datums\mapgen\planets\_planet.dm"
+#include "code\datums\mapgen\planets\beach.dm"
+#include "code\datums\mapgen\planets\jungle.dm"
+#include "code\datums\mapgen\planets\lava.dm"
+#include "code\datums\mapgen\planets\rock.dm"
+#include "code\datums\mapgen\planets\sand.dm"
+#include "code\datums\mapgen\planets\snow.dm"
#include "code\datums\martial\_martial.dm"
#include "code\datums\martial\boxing.dm"
#include "code\datums\martial\cqc.dm"
@@ -691,12 +712,14 @@
#include "code\datums\mutations\speech.dm"
#include "code\datums\mutations\telekinesis.dm"
#include "code\datums\mutations\touch.dm"
+#include "code\datums\ruins\beachplanet.dm"
#include "code\datums\ruins\icemoon.dm"
#include "code\datums\ruins\jungle.dm"
#include "code\datums\ruins\lavaland.dm"
#include "code\datums\ruins\reebe.dm"
#include "code\datums\ruins\rockplanet.dm"
#include "code\datums\ruins\space.dm"
+#include "code\datums\ruins\wasteplanet.dm"
#include "code\datums\ruins\whitesands.dm"
#include "code\datums\skills\_skill.dm"
#include "code\datums\skills\cleaning.dm"
@@ -718,6 +741,7 @@
#include "code\datums\weather\weather_types\ash_storm.dm"
#include "code\datums\weather\weather_types\floor_is_lava.dm"
#include "code\datums\weather\weather_types\hailstorm.dm"
+#include "code\datums\weather\weather_types\nuclear_fallout.dm"
#include "code\datums\weather\weather_types\radiation_storm.dm"
#include "code\datums\weather\weather_types\rain.dm"
#include "code\datums\weather\weather_types\sand_storm.dm"
@@ -1390,6 +1414,7 @@
#include "code\game\turfs\closed\wall\misc_walls.dm"
#include "code\game\turfs\closed\wall\reinf_walls.dm"
#include "code\game\turfs\open\_open.dm"
+#include "code\game\turfs\open\acid.dm"
#include "code\game\turfs\open\chasm.dm"
#include "code\game\turfs\open\dirtystation.dm"
#include "code\game\turfs\open\floor.dm"
@@ -1409,8 +1434,13 @@
#include "code\game\turfs\open\floor\plating.dm"
#include "code\game\turfs\open\floor\reinf_floor.dm"
#include "code\game\turfs\open\floor\plating\asteroid.dm"
+#include "code\game\turfs\open\floor\plating\beach.dm"
+#include "code\game\turfs\open\floor\plating\icemoon.dm"
+#include "code\game\turfs\open\floor\plating\lavaland.dm"
#include "code\game\turfs\open\floor\plating\misc_plating.dm"
#include "code\game\turfs\open\floor\plating\planet.dm"
+#include "code\game\turfs\open\floor\plating\rockplanet.dm"
+#include "code\game\turfs\open\floor\plating\wasteplanet.dm"
#include "code\game\turfs\open\floor\plating\whitesands.dm"
#include "code\game\turfs\open\space\space.dm"
#include "code\game\turfs\open\space\transit.dm"
@@ -2528,6 +2558,7 @@
#include "code\modules\mob\living\simple_animal\bot\secbot.dm"
#include "code\modules\mob\living\simple_animal\bot\SuperBeepsky.dm"
#include "code\modules\mob\living\simple_animal\bot\vibebot.dm"
+#include "code\modules\mob\living\simple_animal\friendly\beachcarp.dm"
#include "code\modules\mob\living\simple_animal\friendly\butterfly.dm"
#include "code\modules\mob\living\simple_animal\friendly\capybara.dm"
#include "code\modules\mob\living\simple_animal\friendly\cat.dm"
@@ -2565,6 +2596,7 @@
#include "code\modules\mob\living\simple_animal\guardian\types\slime.dm"
#include "code\modules\mob\living\simple_animal\guardian\types\standard.dm"
#include "code\modules\mob\living\simple_animal\guardian\types\support.dm"
+#include "code\modules\mob\living\simple_animal\hostile\abandoned_minebot.dm"
#include "code\modules\mob\living\simple_animal\hostile\alien.dm"
#include "code\modules\mob\living\simple_animal\hostile\bear.dm"
#include "code\modules\mob\living\simple_animal\hostile\bees.dm"
@@ -2631,6 +2663,7 @@
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\hivelord.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice demon.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\ice whelp.dm"
+#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\lobstrosity.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\mining_mobs.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\polarbear.dm"
#include "code\modules\mob\living\simple_animal\hostile\mining_mobs\wolf.dm"
diff --git a/sound/effects/footstep/concrete1.ogg b/sound/effects/footstep/concrete1.ogg
new file mode 100644
index 000000000000..1df1955bb338
Binary files /dev/null and b/sound/effects/footstep/concrete1.ogg differ
diff --git a/sound/effects/footstep/concrete2.ogg b/sound/effects/footstep/concrete2.ogg
new file mode 100644
index 000000000000..941e140941b8
Binary files /dev/null and b/sound/effects/footstep/concrete2.ogg differ
diff --git a/sound/effects/footstep/concrete3.ogg b/sound/effects/footstep/concrete3.ogg
new file mode 100644
index 000000000000..cf12cc2be2c2
Binary files /dev/null and b/sound/effects/footstep/concrete3.ogg differ
diff --git a/sound/effects/footstep/concrete4.ogg b/sound/effects/footstep/concrete4.ogg
new file mode 100644
index 000000000000..0319e910e2e6
Binary files /dev/null and b/sound/effects/footstep/concrete4.ogg differ
diff --git a/sound/effects/footstep/concrete5.ogg b/sound/effects/footstep/concrete5.ogg
new file mode 100644
index 000000000000..77b9d385055f
Binary files /dev/null and b/sound/effects/footstep/concrete5.ogg differ
diff --git a/sound/effects/footstep/ice1.ogg b/sound/effects/footstep/ice1.ogg
new file mode 100644
index 000000000000..d12a1a680249
Binary files /dev/null and b/sound/effects/footstep/ice1.ogg differ
diff --git a/sound/effects/footstep/ice2.ogg b/sound/effects/footstep/ice2.ogg
new file mode 100644
index 000000000000..ab5c4aa4d08f
Binary files /dev/null and b/sound/effects/footstep/ice2.ogg differ
diff --git a/sound/effects/footstep/ice3.ogg b/sound/effects/footstep/ice3.ogg
new file mode 100644
index 000000000000..1b3570bc5b4d
Binary files /dev/null and b/sound/effects/footstep/ice3.ogg differ
diff --git a/sound/effects/footstep/ice4.ogg b/sound/effects/footstep/ice4.ogg
new file mode 100644
index 000000000000..2417efe5bfe4
Binary files /dev/null and b/sound/effects/footstep/ice4.ogg differ
diff --git a/sound/effects/footstep/ice5.ogg b/sound/effects/footstep/ice5.ogg
new file mode 100644
index 000000000000..353d4b667b89
Binary files /dev/null and b/sound/effects/footstep/ice5.ogg differ
diff --git a/sound/effects/footstep/snow1.ogg b/sound/effects/footstep/snow1.ogg
new file mode 100644
index 000000000000..e90f72eed846
Binary files /dev/null and b/sound/effects/footstep/snow1.ogg differ
diff --git a/sound/effects/footstep/snow2.ogg b/sound/effects/footstep/snow2.ogg
new file mode 100644
index 000000000000..86bc58466320
Binary files /dev/null and b/sound/effects/footstep/snow2.ogg differ
diff --git a/sound/effects/footstep/snow3.ogg b/sound/effects/footstep/snow3.ogg
new file mode 100644
index 000000000000..361dd2f876ff
Binary files /dev/null and b/sound/effects/footstep/snow3.ogg differ
diff --git a/sound/effects/footstep/snow4.ogg b/sound/effects/footstep/snow4.ogg
new file mode 100644
index 000000000000..84e3c93c5705
Binary files /dev/null and b/sound/effects/footstep/snow4.ogg differ
diff --git a/sound/effects/footstep/snow5.ogg b/sound/effects/footstep/snow5.ogg
new file mode 100644
index 000000000000..7fcdb4afa8a9
Binary files /dev/null and b/sound/effects/footstep/snow5.ogg differ
diff --git a/sound/effects/siren.ogg b/sound/effects/siren.ogg
new file mode 100644
index 000000000000..e8aea3a06284
Binary files /dev/null and b/sound/effects/siren.ogg differ
diff --git a/sound/weather/fallout/falloutwind.ogg b/sound/weather/fallout/falloutwind.ogg
new file mode 100644
index 000000000000..4119371517e8
Binary files /dev/null and b/sound/weather/fallout/falloutwind.ogg differ