diff --git a/.gitignore b/.gitignore
index 97393735c82..8cf535152ac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
#Ignore everything in datafolder and subdirectories
/data/**/*
/tmp/**/*
+/cache/**/*
#Ignore byond config folder.
/cfg/**/*
diff --git a/_maps/RandomRuins/IceRuins/fluffy/icemoon_interdyne_base_ff.dmm b/_maps/RandomRuins/IceRuins/fluffy/icemoon_interdyne_base_ff.dmm
index 20c1c46c3f1..e02640fa5d4 100644
--- a/_maps/RandomRuins/IceRuins/fluffy/icemoon_interdyne_base_ff.dmm
+++ b/_maps/RandomRuins/IceRuins/fluffy/icemoon_interdyne_base_ff.dmm
@@ -80,6 +80,9 @@
/obj/effect/turf_decal/trimline/dark/filled/corner{
dir = 1
},
+/obj/effect/turf_decal/stripes/red/corner{
+ dir = 1
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"as" = (
@@ -521,6 +524,7 @@
/obj/structure/sign/poster/contraband/communist_state/directional/west,
/obj/item/gun/ballistic/rifle/sniper_rifle,
/obj/effect/turf_decal/tile/dark/full,
+/obj/item/gun/ballistic/rifle/sniper_rifle,
/obj/item/modular_computer/laptop/preset/syndicate,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
@@ -948,13 +952,19 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/bar)
"eZ" = (
-/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
-/turf/open/floor/iron/dark/textured_large,
-/area/ruin/syndicate_lava_base/main)
+/obj/structure/marker_beacon/burgundy,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
"fd" = (
/obj/effect/turf_decal/stripes/red/line,
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/rack/shelf,
+/obj/structure/window/reinforced/survival_pod/spawner/directional/south{
+ pixel_y = -4
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/arrivals)
"fe" = (
@@ -1226,6 +1236,7 @@
/area/ruin/syndicate_lava_base/main)
"gY" = (
/obj/effect/turf_decal/stripes/red/line,
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"gZ" = (
@@ -1648,6 +1659,7 @@
pixel_y = -4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/syndicate_lava_base/main)
"kf" = (
@@ -1795,10 +1807,6 @@
/obj/machinery/chem_dispenser/drinks/fullupgrade,
/turf/open/floor/iron/dark/textured,
/area/ruin/syndicate_lava_base/bar)
-"lb" = (
-/obj/item/binoculars,
-/turf/closed/mineral/random/snow/underground,
-/area/icemoon/underground/explored)
"lc" = (
/obj/structure/marker_beacon/burgundy,
/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
@@ -1917,6 +1925,7 @@
map_pad_link_id = "ds2";
name = "quantum pad to DS-2"
},
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"mp" = (
@@ -1947,9 +1956,9 @@
dir = 5
},
/obj/structure/marker_beacon/violet,
-/obj/structure/curtain/bounty/start_closed{
- alpha = 180;
- color = "#7d7d7d"
+/obj/structure/curtain/bounty{
+ color = "#7d7d7d";
+ alpha = 180
},
/turf/open/floor/iron/dark/small,
/area/ruin/syndicate_lava_base/dormitories)
@@ -2257,6 +2266,10 @@
/obj/structure/marker_beacon/burgundy,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
+"on" = (
+/obj/item/binoculars,
+/turf/open/misc/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
"op" = (
/obj/effect/turf_decal/trimline/dark/filled/line,
/obj/effect/turf_decal/trimline/dark/filled/line{
@@ -2264,7 +2277,8 @@
},
/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
/obj/machinery/door/airlock{
- name = "Unisex Showers"
+ name = "Unisex Showers";
+ id_tag = "IDyneWC"
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -2336,7 +2350,7 @@
/obj/structure/window/reinforced/survival_pod/spawner/directional/west{
pixel_x = -4
},
-/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/portable_atmospherics/canister/plasma,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/syndicate_lava_base/main)
"oG" = (
@@ -2374,10 +2388,9 @@
/area/ruin/syndicate_lava_base/medbay)
"oP" = (
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/module_duplicator{
- name = "Interdyne module duplicator";
- color = "#adadcd";
- light_color = "#adadcd"
+/obj/machinery/ammo_workbench{
+ name = "Interdyne ammunitions workbench";
+ color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
@@ -2880,8 +2893,6 @@
"so" = (
/obj/structure/rack/shelf,
/obj/effect/turf_decal/tile/dark/full,
-/obj/item/gun/syringe/rapidsyringe,
-/obj/item/gun/syringe/rapidsyringe,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"sr" = (
@@ -2939,7 +2950,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
-/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"sF" = (
@@ -3121,9 +3131,9 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"tv" = (
-/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
-/turf/open/floor/plating/reinforced,
-/area/ruin/syndicate_lava_base/main)
+/obj/item/serviette_pack,
+/turf/open/misc/asteroid/snow/icemoon,
+/area/icemoon/underground/explored)
"tw" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/storage/box/monkeycubes{
@@ -3412,13 +3422,14 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/bar)
"vH" = (
-/obj/machinery/computer/crew/syndie{
- dir = 4;
- pixel_x = -4;
- name = "Interdyne crew monitoring console"
- },
/obj/effect/turf_decal/tile/dark/full,
-/obj/structure/marker_beacon/olive,
+/obj/machinery/vending/drugs{
+ name = "\improper SyndiDrug Plus";
+ onstation = 0;
+ extended_inventory = 1;
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"vL" = (
@@ -3600,7 +3611,7 @@
},
/obj/item/paper/fluff/ruins/interdyne/note_1{
name = "Forcefield Generator Maintenance";
- default_raw_text = "To activate a deployable laboratory forcefield, open maintenance hatches of Generator itself, Relay, Well and Charger nodes with a screwdriver and upgrade them with provided parts by using rapid parts exchange device. Then close all hatches and activate every module of generator, by starting with closer to generator nodes in chain-like way. When preparations are done, set generator radius at maximum and press power button. If shield will recieve overwhelm damage, it requires some time to recharge and have to be turned back on manually."
+ default_raw_text = "To activate Frozen Moonlight's forcefield, open maintenance hatches of the generator itself, Relay, Well and Charger nodes with a screwdriver and upgrade them with provided parts by using a rapid parts exchange device. Then, close all hatches and, by using a multitool, activate every module of the generator in a chain-like way. When preparations are done, set the generator's radius at maximum and press the power button. If the forcefield sustains overwhelming damage, it will require some time to recharge and has to be turned back on manually. Wavefield Science wishes you a safe and productive day."
},
/obj/effect/turf_decal/trimline/dark/filled/corner{
dir = 8
@@ -3612,8 +3623,12 @@
/obj/structure/marker_beacon/burgundy,
/obj/structure/sign/flag/syndicate/directional/north,
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/ammo_workbench,
-/obj/item/disk/ammo_workbench/advanced,
+/obj/machinery/blackbox_recorder{
+ name = "Interdyne Blackbox Recorder";
+ desc = "Machine that contains lots of confidential Syndicate and Wavefield Science data.";
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"wG" = (
@@ -3991,14 +4006,8 @@
/obj/machinery/light/directional/south{
light_color = "#5148A6"
},
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
+/obj/item/gun/syringe/rapidsyringe,
+/obj/item/gun/syringe/rapidsyringe,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"yY" = (
@@ -4173,13 +4182,14 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Bp" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/storage/backpack/duffelbag/synth_treatment_kit/trauma/advanced/unzipped,
-/obj/item/healthanalyzer/advanced,
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/window/reinforced/survival_pod/spawner/directional/east{
pixel_x = 4
},
+/obj/structure/marker_beacon/olive,
+/obj/machinery/computer/crew/syndie{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Bt" = (
@@ -4391,7 +4401,10 @@
/obj/structure/marker_beacon/burgundy,
/obj/structure/sign/poster/contraband/soviet_propaganda/directional/east,
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/suit_storage_unit/syndicate/chameleon,
+/obj/machinery/suit_storage_unit/syndicate/chameleon{
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"CA" = (
@@ -4411,7 +4424,8 @@
/area/ruin/syndicate_lava_base/medbay)
"CC" = (
/obj/machinery/vending/dorms{
- onstation = 0
+ onstation = 0;
+ extended_inventory = 1
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
@@ -4648,6 +4662,7 @@
pixel_y = 42
},
/obj/structure/cable,
+/obj/effect/mapping_helpers/apc/syndicate_access,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"DT" = (
@@ -4667,14 +4682,12 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"DZ" = (
-/obj/structure/table/reinforced/plastitaniumglass,
/obj/effect/turf_decal/tile/dark/full,
-/obj/item/paper/fluff/ruins/interdyne/note_1{
- default_raw_text = "Welcome to Interdyne laboratory Developed by Wavefield Science and designed by Astra Farera E'luna Awiarera. This base was dropped like a meteorite from space and deployed at crater created by landing impact. An advanced laboratory has deployed departments, defence perimeter turrets and even external bridge. Complex also fitted with a forcefield generator, which with a tiny bit of care allows to sustain harsh environmental conditions and most of invasions. Have a nice day full of new discoveries.";
- name = "Frozen Moonlight Interdyne";
- color = "#7D7D7D";
- pixel_x = 5;
- pixel_y = 5
+/obj/item/disk/ammo_workbench/advanced,
+/obj/machinery/module_duplicator{
+ name = "Interdyne module duplicator";
+ color = "#adadcd";
+ light_color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
@@ -5275,7 +5288,9 @@
},
/obj/structure/closet/secure_closet/cytology{
anchored = 1;
- pixel_x = 9
+ pixel_x = 9;
+ locked = 0;
+ req_access = list("syndicate")
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -5491,11 +5506,12 @@
"IM" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/storage/backpack/duffelbag/syndie/surgery,
-/obj/item/healthanalyzer/advanced,
/obj/machinery/defibrillator_mount/loaded{
pixel_x = 28
},
/obj/effect/turf_decal/tile/dark/full,
+/obj/item/autopsy_scanner,
+/obj/item/healthanalyzer/advanced,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"IP" = (
@@ -5545,6 +5561,7 @@
dir = 1
},
/obj/effect/turf_decal/caution/stand_clear/red,
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"JP" = (
@@ -5576,16 +5593,17 @@
/obj/effect/turf_decal/box/red/corners{
dir = 8
},
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"Kg" = (
-/obj/machinery/stasis{
- dir = 8
- },
/obj/effect/turf_decal/tile/dark/full,
/obj/effect/turf_decal/stripes/blue{
dir = 1
},
+/obj/machinery/stasis{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Kl" = (
@@ -5682,14 +5700,14 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"KP" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/paper_bin{
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4
- },
/obj/effect/turf_decal/tile/dark/full,
+/obj/machinery/vending/medical/syndicate_access{
+ onstation = 0;
+ contraband = list(/obj/item/storage/box/gum/happiness=3, /obj/item/storage/box/hug/medical=3, /obj/item/mmi/syndie/interdyne=3);
+ extended_inventory = 1;
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"KS" = (
@@ -5914,9 +5932,9 @@
/area/ruin/syndicate_lava_base/medbay)
"LP" = (
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/processor{
+/obj/machinery/processor/slime{
+ name = "Interdyne slime processor";
color = "#adadcd";
- name = "Interdyne food processor";
light_color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
@@ -5942,12 +5960,6 @@
name = "Inderdyne security camera";
network = list("Interdyne")
},
-/obj/vehicle/ridden/atv/snowmobile/syndicate{
- dir = 8;
- name = "Interdyne Crawler";
- color = "#adadcd";
- light_color = "#adadcd"
- },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"Mc" = (
@@ -5984,15 +5996,15 @@
/turf/open/floor/engine,
/area/ruin/syndicate_lava_base/testlab)
"Mt" = (
-/obj/machinery/stasis{
- dir = 8
- },
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/marker_beacon/teal,
/obj/structure/curtain/bounty{
color = "#7d7d7d";
alpha = 180
},
+/obj/machinery/stasis{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Mu" = (
@@ -6092,6 +6104,8 @@
pixel_y = 8
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/item/storage/backpack/duffelbag/synth_treatment_kit/trauma/advanced/unzipped,
+/obj/item/healthanalyzer/advanced,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Nv" = (
@@ -6148,6 +6162,13 @@
/obj/structure/ore_box,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
+"NM" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/turf/open/floor/wood/large,
+/area/ruin/syndicate_lava_base/main)
"NS" = (
/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
/obj/machinery/door/poddoor{
@@ -6304,6 +6325,7 @@
/area/ruin/syndicate_lava_base/medbay)
"OV" = (
/obj/structure/table/wood/fancy/black,
+/obj/item/food/chips/shrimp,
/turf/open/floor/wood/large,
/area/ruin/syndicate_lava_base/bar)
"Pc" = (
@@ -6463,6 +6485,7 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"PO" = (
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"PQ" = (
@@ -6590,15 +6613,15 @@
/obj/effect/turf_decal/stripes/red/corner{
dir = 1
},
-/obj/machinery/stasis{
- dir = 8
- },
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/marker_beacon/teal,
/obj/structure/curtain/bounty{
color = "#7d7d7d";
alpha = 180
},
+/obj/machinery/stasis{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"RQ" = (
@@ -6639,6 +6662,7 @@
/obj/effect/turf_decal/tile/dark/full,
/obj/item/gun/energy/plasmacutter,
/obj/item/gun/energy/plasmacutter,
+/obj/item/binoculars,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"Sd" = (
@@ -7109,7 +7133,8 @@
/area/ruin/syndicate_lava_base/main)
"Vr" = (
/obj/machinery/vending/wardrobe/syndie_wardrobe{
- onstation = 0
+ onstation = 0;
+ extended_inventory = 1
},
/obj/structure/marker_beacon/burgundy,
/obj/effect/turf_decal/tile/dark/full,
@@ -7251,11 +7276,11 @@
name = "Interdyne Storm Shutters RnD"
},
/obj/machinery/fax{
- fax_name = "Interdyne Pharmaceuticals";
- pixel_y = 7;
+ fax_name = "Interdyne Fax";
name = "Interdyne Fax Machine";
- color = "#adadcd";
- light_color = "#adadcd"
+ pixel_y = 7;
+ syndicate_network = 1;
+ color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
@@ -7490,7 +7515,8 @@
},
/obj/structure/marker_beacon/olive,
/obj/machinery/computer/cryopod/interdyne/directional/west{
- pixel_x = -18
+ pixel_x = -18;
+ req_one_access = list("syndicate")
},
/obj/effect/turf_decal/trimline/dark/filled/end{
dir = 8
@@ -7913,7 +7939,7 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"ZL" = (
-/obj/machinery/portable_atmospherics/canister/plasma,
+/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/syndicate_lava_base/main)
"ZN" = (
@@ -8037,7 +8063,7 @@ ac
ac
SH
Iy
-Iy
+eE
Im
ac
ac
@@ -8171,7 +8197,7 @@ uQ
Iy
Iy
Se
-Iy
+eE
Im
Iy
ac
@@ -8280,7 +8306,7 @@ ab
ab
Iy
Se
-Iy
+ab
ab
ab
ab
@@ -9111,7 +9137,7 @@ pI
xc
Uo
Tm
-cu
+NM
Yf
rv
us
@@ -9229,7 +9255,7 @@ Pr
Pr
VP
lc
-eZ
+VP
ZU
ZU
ZU
@@ -9305,7 +9331,7 @@ td
ab
ab
Iy
-Iy
+eE
ac
ac
"}
@@ -9753,7 +9779,7 @@ qe
aA
JA
Oz
-tv
+Pr
yy
dm
rg
@@ -9819,7 +9845,7 @@ Pr
Pr
VP
lc
-eZ
+VP
ZU
ZU
ZU
@@ -9849,7 +9875,7 @@ eE
Iy
eE
Iy
-Iy
+ab
ab
ab
ab
@@ -9857,7 +9883,7 @@ SH
cS
wr
BE
-yQ
+BE
um
yQ
yQ
@@ -10200,7 +10226,7 @@ aa
ac
ac
Iy
-Iy
+eE
Se
Iy
SH
@@ -10424,7 +10450,7 @@ ab
Iy
Se
Se
-Iy
+eE
ac
ac
ac
@@ -10537,7 +10563,7 @@ ab
ab
ab
ab
-ab
+Iy
Iy
SH
Iy
@@ -10592,9 +10618,9 @@ SM
ab
ab
ab
+ab
Iy
Iy
-ab
Iy
Iy
Iy
@@ -10642,8 +10668,8 @@ Iy
ab
ab
ab
-ab
-ab
+Iy
+SH
ab
ab
ab
@@ -10870,8 +10896,8 @@ Se
Se
Iy
Iy
-ab
-ab
+Iy
+Iy
ab
ab
ab
@@ -10879,7 +10905,7 @@ dM
Iy
Iy
SH
-Iy
+on
Se
Iy
dM
@@ -10937,13 +10963,13 @@ ac
ac
SH
Jx
-Iy
-Im
-lb
+eE
+eZ
+tv
ac
Se
Se
-Iy
+eE
ac
ac
ac
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm
index 865695e5b33..356bed29f9f 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_plasma_facility.dmm
@@ -1016,7 +1016,7 @@
/area/ruin/plasma_facility/commons)
"pE" = (
/obj/structure/bed/maint,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/item/flashlight/flare/candle{
pixel_x = 12;
pixel_y = 9
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
index c2b11194dfb..97b4e3d53c9 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm
@@ -40,7 +40,7 @@
"fD" = (
/obj/structure/bed,
/obj/effect/decal/cleanable/blood/bubblegum,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/wood,
/area/ruin/powered)
"gG" = (
@@ -416,7 +416,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/turf/open/floor/wood,
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm
index 25f29890f45..eb537cd26f6 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_frozen_comms.dmm
@@ -63,7 +63,7 @@
"oj" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/iron/grimy{
initial_gas_mix = "ICEMOON_ATMOS"
},
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_mailroom.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_mailroom.dmm
index 91ab82e4be2..05d5324cac0 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_mailroom.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_mailroom.dmm
@@ -113,7 +113,7 @@
/area/ruin/powered/mailroom)
"kZ" = (
/obj/structure/filingcabinet/chestdrawer/wheeled,
-/obj/item/valentine,
+/obj/item/paper/valentine,
/obj/item/grenade/c4,
/obj/item/clothing/accessory/medal/conduct,
/obj/item/paper/crumpled/muddy/fluff/instructions,
diff --git a/_maps/RandomRuins/IceRuins/nova/icemoon_underground_interdyne_base1.dmm b/_maps/RandomRuins/IceRuins/nova/icemoon_underground_interdyne_base1.dmm
index acc7e1dc990..b4c408c4c0c 100644
--- a/_maps/RandomRuins/IceRuins/nova/icemoon_underground_interdyne_base1.dmm
+++ b/_maps/RandomRuins/IceRuins/nova/icemoon_underground_interdyne_base1.dmm
@@ -320,7 +320,7 @@
/area/ruin/interdyne_planetary_base/cargo)
"ba" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/iron/smooth_large,
/area/ruin/interdyne_planetary_base/cargo)
"bb" = (
@@ -1587,7 +1587,7 @@
},
/obj/item/serviette_used,
/obj/item/shard/plastitanium,
-/obj/item/valentine,
+/obj/item/paper/valentine,
/obj/machinery/light/small/directional/west,
/obj/item/trash/ready_donk,
/turf/open/floor/plating/reinforced,
@@ -4564,13 +4564,13 @@
/turf/closed/wall/r_wall/syndicate/nodiagonal,
/area/ruin/interdyne_planetary_base/main/dorms)
"lw" = (
-/obj/item/bedsheet/dorms{
- dir = 4
- },
/obj/structure/bed{
dir = 4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/effect/spawner/random/bedsheet{
+ dir = 4
+ },
/turf/open/floor/iron/smooth_large,
/area/ruin/interdyne_planetary_base/main/dorms)
"lx" = (
diff --git a/_maps/RandomRuins/LavaRuins/fluffy/lavaland_interdyne_base_ff.dmm b/_maps/RandomRuins/LavaRuins/fluffy/lavaland_interdyne_base_ff.dmm
index 599db87e83a..acf85539c72 100644
--- a/_maps/RandomRuins/LavaRuins/fluffy/lavaland_interdyne_base_ff.dmm
+++ b/_maps/RandomRuins/LavaRuins/fluffy/lavaland_interdyne_base_ff.dmm
@@ -60,6 +60,8 @@
pixel_y = 8
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
+/obj/item/storage/backpack/duffelbag/synth_treatment_kit/trauma/advanced/unzipped,
+/obj/item/healthanalyzer/advanced,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"az" = (
@@ -90,7 +92,9 @@
},
/obj/structure/closet/secure_closet/cytology{
anchored = 1;
- pixel_x = 9
+ pixel_x = 9;
+ locked = 0;
+ req_access = list("syndicate")
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -222,7 +226,10 @@
/obj/structure/marker_beacon/burgundy,
/obj/structure/sign/poster/contraband/soviet_propaganda/directional/east,
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/suit_storage_unit/syndicate/chameleon,
+/obj/machinery/suit_storage_unit/syndicate/chameleon{
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"bx" = (
@@ -330,7 +337,7 @@
},
/obj/item/paper/fluff/ruins/interdyne/note_1{
name = "Forcefield Generator Maintenance";
- default_raw_text = "To activate a deployable laboratory forcefield, open maintenance hatches of Generator itself, Relay, Well and Charger nodes with a screwdriver and upgrade them with provided parts by using rapid parts exchange device. Then close all hatches and activate every module of generator, by starting with closer to generator nodes in chain-like way. When preparations are done, set generator radius at maximum and press power button. If shield will recieve overwhelm damage, it requires some time to recharge and have to be turned back on manually."
+ default_raw_text = "To activate Frozen Moonlight's forcefield, open maintenance hatches of the generator itself, Relay, Well and Charger nodes with a screwdriver and upgrade them with provided parts by using a rapid parts exchange device. Then, close all hatches and, by using a multitool, activate every module of the generator in a chain-like way. When preparations are done, set the generator's radius at maximum and press the power button. If the forcefield sustains overwhelming damage, it will require some time to recharge and has to be turned back on manually. Wavefield Science wishes you a safe and productive day."
},
/obj/effect/turf_decal/trimline/dark/filled/corner{
dir = 8
@@ -841,7 +848,8 @@
/area/ruin/syndicate_lava_base/cargo)
"fn" = (
/obj/machinery/vending/dorms{
- onstation = 0
+ onstation = 0;
+ extended_inventory = 1
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
@@ -1064,6 +1072,9 @@
/obj/effect/turf_decal/stripes/red/line,
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/rack/shelf,
+/obj/structure/window/reinforced/survival_pod/spawner/directional/south{
+ pixel_y = -4
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/arrivals)
"hf" = (
@@ -1318,9 +1329,9 @@
dir = 5
},
/obj/structure/marker_beacon/violet,
-/obj/structure/curtain/bounty/start_closed{
- alpha = 180;
- color = "#7d7d7d"
+/obj/structure/curtain/bounty{
+ color = "#7d7d7d";
+ alpha = 180
},
/turf/open/floor/iron/dark/small,
/area/ruin/syndicate_lava_base/dormitories)
@@ -1523,8 +1534,9 @@
/obj/item/clothing/mask/gas/syndicate,
/obj/structure/marker_beacon/burgundy,
/obj/structure/sign/poster/contraband/communist_state/directional/west,
-/obj/item/gun/ballistic/rifle/sniper_rifle,
/obj/effect/turf_decal/tile/dark/full,
+/obj/item/gun/ballistic/rifle/sniper_rifle,
+/obj/item/gun/ballistic/rifle/sniper_rifle,
/obj/item/modular_computer/laptop/preset/syndicate,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
@@ -1792,9 +1804,9 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"lh" = (
-/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
-/turf/open/floor/iron/dark/textured_large,
-/area/ruin/syndicate_lava_base/main)
+/obj/item/chair,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors)
"lq" = (
/obj/machinery/atmospherics/components/unary/passive_vent{
dir = 4
@@ -1854,6 +1866,7 @@
pixel_y = 42
},
/obj/structure/cable,
+/obj/effect/mapping_helpers/apc/syndicate_access,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"lH" = (
@@ -1951,6 +1964,7 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"mj" = (
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"mo" = (
@@ -1964,14 +1978,8 @@
/obj/machinery/light/directional/south{
light_color = "#5148A6"
},
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
-/obj/item/storage/box/nif_ghost_box/ghost_role,
+/obj/item/gun/syringe/rapidsyringe,
+/obj/item/gun/syringe/rapidsyringe,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"mE" = (
@@ -2063,13 +2071,13 @@
/turf/open/floor/iron/dark/textured,
/area/ruin/syndicate_lava_base/bar)
"nm" = (
-/obj/machinery/stasis{
- dir = 8
- },
/obj/effect/turf_decal/tile/dark/full,
/obj/effect/turf_decal/stripes/blue{
dir = 1
},
+/obj/machinery/stasis{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"no" = (
@@ -2141,11 +2149,12 @@
"nC" = (
/obj/structure/table/reinforced/plastitaniumglass,
/obj/item/storage/backpack/duffelbag/syndie/surgery,
-/obj/item/healthanalyzer/advanced,
/obj/machinery/defibrillator_mount/loaded{
pixel_x = 28
},
/obj/effect/turf_decal/tile/dark/full,
+/obj/item/autopsy_scanner,
+/obj/item/healthanalyzer/advanced,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"nE" = (
@@ -2221,10 +2230,6 @@
/obj/structure/lattice/catwalk/mining,
/turf/open/lava/smooth/lava_land_surface,
/area/lavaland/surface/outdoors)
-"om" = (
-/obj/item/binoculars,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors)
"on" = (
/obj/effect/turf_decal/stripes/red/line{
dir = 5
@@ -2354,7 +2359,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
},
-/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"oT" = (
@@ -2680,12 +2684,6 @@
name = "Inderdyne security camera";
network = list("Interdyne")
},
-/obj/vehicle/ridden/atv/snowmobile/syndicate{
- dir = 8;
- name = "Interdyne Crawler";
- color = "#adadcd";
- light_color = "#adadcd"
- },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"qR" = (
@@ -2713,7 +2711,8 @@
},
/obj/effect/mapping_helpers/airlock/access/all/syndicate/general,
/obj/machinery/door/airlock{
- name = "Unisex Showers"
+ name = "Unisex Showers";
+ id_tag = "IDyneWC"
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -3068,11 +3067,11 @@
name = "Interdyne Storm Shutters RnD"
},
/obj/machinery/fax{
- fax_name = "Interdyne Pharmaceuticals";
- pixel_y = 7;
+ fax_name = "Interdyne Fax";
name = "Interdyne Fax Machine";
- color = "#adadcd";
- light_color = "#adadcd"
+ pixel_y = 7;
+ syndicate_network = 1;
+ color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
@@ -3090,13 +3089,14 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"ul" = (
-/obj/machinery/computer/crew/syndie{
- dir = 4;
- pixel_x = -4;
- name = "Interdyne crew monitoring console"
- },
/obj/effect/turf_decal/tile/dark/full,
-/obj/structure/marker_beacon/olive,
+/obj/machinery/vending/drugs{
+ name = "\improper SyndiDrug Plus";
+ onstation = 0;
+ extended_inventory = 1;
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"ur" = (
@@ -3690,6 +3690,7 @@
map_pad_link_id = "ds2";
name = "quantum pad to DS-2"
},
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"yc" = (
@@ -4094,7 +4095,8 @@
},
/obj/structure/marker_beacon/olive,
/obj/machinery/computer/cryopod/interdyne/directional/west{
- pixel_x = -18
+ pixel_x = -18;
+ req_one_access = list("syndicate")
},
/obj/effect/turf_decal/trimline/dark/filled/end{
dir = 8
@@ -4447,8 +4449,6 @@
"DK" = (
/obj/structure/rack/shelf,
/obj/effect/turf_decal/tile/dark/full,
-/obj/item/gun/syringe/rapidsyringe,
-/obj/item/gun/syringe/rapidsyringe,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"DM" = (
@@ -4589,6 +4589,7 @@
dir = 1
},
/obj/effect/turf_decal/caution/stand_clear/red,
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"El" = (
@@ -5333,9 +5334,9 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"Jh" = (
-/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium,
-/turf/open/floor/plating/reinforced,
-/area/ruin/syndicate_lava_base/main)
+/obj/item/serviette_pack,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors)
"Jm" = (
/obj/effect/turf_decal/trimline/dark/filled/line{
dir = 1
@@ -5440,14 +5441,12 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"JM" = (
-/obj/structure/table/reinforced/plastitaniumglass,
/obj/effect/turf_decal/tile/dark/full,
-/obj/item/paper/fluff/ruins/interdyne/note_1{
- default_raw_text = "Welcome to Interdyne laboratory Developed by Wavefield Science and designed by Astra Farera E'luna Awiarera. This base was dropped like a meteorite from space and deployed at crater created by landing impact. An advanced laboratory has deployed departments, defence perimeter turrets and even external bridge. Complex also fitted with a forcefield generator, which with a tiny bit of care allows to sustain harsh environmental conditions and most of invasions. Have a nice day full of new discoveries.";
- name = "Frozen Moonlight Interdyne";
- color = "#7D7D7D";
- pixel_x = 5;
- pixel_y = 5
+/obj/item/disk/ammo_workbench/advanced,
+/obj/machinery/module_duplicator{
+ name = "Interdyne module duplicator";
+ color = "#adadcd";
+ light_color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
@@ -5875,7 +5874,7 @@
/obj/structure/window/reinforced/survival_pod/spawner/directional/west{
pixel_x = -4
},
-/obj/machinery/portable_atmospherics/canister/air,
+/obj/machinery/portable_atmospherics/canister/plasma,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/syndicate_lava_base/main)
"Mo" = (
@@ -5896,9 +5895,9 @@
/area/ruin/syndicate_lava_base/bar)
"Mp" = (
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/processor{
+/obj/machinery/processor/slime{
+ name = "Interdyne slime processor";
color = "#adadcd";
- name = "Interdyne food processor";
light_color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
@@ -6082,6 +6081,9 @@
/obj/effect/turf_decal/trimline/dark/filled/corner{
dir = 1
},
+/obj/effect/turf_decal/stripes/red/corner{
+ dir = 1
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"ND" = (
@@ -6103,6 +6105,7 @@
pixel_y = -4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden,
+/obj/structure/reagent_dispensers/watertank/high,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/syndicate_lava_base/main)
"NR" = (
@@ -6111,7 +6114,8 @@
/area/ruin/syndicate_lava_base/main)
"NU" = (
/obj/machinery/vending/wardrobe/syndie_wardrobe{
- onstation = 0
+ onstation = 0;
+ extended_inventory = 1
},
/obj/structure/marker_beacon/burgundy,
/obj/effect/turf_decal/tile/dark/full,
@@ -6279,18 +6283,19 @@
/obj/effect/turf_decal/tile/dark/full,
/obj/item/gun/energy/plasmacutter,
/obj/item/gun/energy/plasmacutter,
+/obj/item/binoculars,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"OX" = (
-/obj/machinery/stasis{
- dir = 8
- },
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/marker_beacon/teal,
/obj/structure/curtain/bounty{
color = "#7d7d7d";
alpha = 180
},
+/obj/machinery/stasis{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Pb" = (
@@ -6302,6 +6307,7 @@
/area/ruin/syndicate_lava_base/main)
"Pd" = (
/obj/effect/turf_decal/stripes/red/line,
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"Pe" = (
@@ -6414,6 +6420,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/grass,
/area/ruin/syndicate_lava_base/main)
+"PC" = (
+/obj/item/binoculars,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors)
"PD" = (
/obj/structure/marker_beacon/teal,
/obj/structure/fans/tiny/forcefield,
@@ -6831,13 +6841,14 @@
/turf/open/floor/plating/reinforced,
/area/ruin/syndicate_lava_base/medbay)
"So" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/storage/backpack/duffelbag/synth_treatment_kit/trauma/advanced/unzipped,
-/obj/item/healthanalyzer/advanced,
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/window/reinforced/survival_pod/spawner/directional/east{
pixel_x = 4
},
+/obj/structure/marker_beacon/olive,
+/obj/machinery/computer/crew/syndie{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"Sq" = (
@@ -6866,6 +6877,7 @@
/area/ruin/syndicate_lava_base/arrivals)
"Sw" = (
/obj/structure/table/wood/fancy/black,
+/obj/item/food/chips/shrimp,
/turf/open/floor/wood/large,
/area/ruin/syndicate_lava_base/bar)
"Sz" = (
@@ -6945,6 +6957,7 @@
/obj/effect/turf_decal/box/red/corners{
dir = 8
},
+/obj/structure/cable,
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/cargo)
"SZ" = (
@@ -6968,8 +6981,12 @@
/obj/structure/marker_beacon/burgundy,
/obj/structure/sign/flag/syndicate/directional/north,
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/ammo_workbench,
-/obj/item/disk/ammo_workbench/advanced,
+/obj/machinery/blackbox_recorder{
+ name = "Interdyne Blackbox Recorder";
+ desc = "Machine that contains lots of confidential Syndicate and Wavefield Science data.";
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/main)
"Tl" = (
@@ -7138,10 +7155,9 @@
/area/ruin/syndicate_lava_base/dormitories)
"UB" = (
/obj/effect/turf_decal/tile/dark/full,
-/obj/machinery/module_duplicator{
- name = "Interdyne module duplicator";
- color = "#adadcd";
- light_color = "#adadcd"
+/obj/machinery/ammo_workbench{
+ name = "Interdyne ammunitions workbench";
+ color = "#adadcd"
},
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
@@ -7358,14 +7374,14 @@
/turf/open/floor/engine,
/area/ruin/syndicate_lava_base/testlab)
"VY" = (
-/obj/structure/table/reinforced/plastitaniumglass,
-/obj/item/paper_bin{
- pixel_y = 4
- },
-/obj/item/pen{
- pixel_y = 4
- },
/obj/effect/turf_decal/tile/dark/full,
+/obj/machinery/vending/medical/syndicate_access{
+ onstation = 0;
+ contraband = list(/obj/item/storage/box/gum/happiness=3, /obj/item/storage/box/hug/medical=3, /obj/item/mmi/syndie/interdyne=3);
+ extended_inventory = 1;
+ color = "#adadcd";
+ light_color = "#adadcd"
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"VZ" = (
@@ -7422,15 +7438,15 @@
/obj/effect/turf_decal/stripes/red/corner{
dir = 1
},
-/obj/machinery/stasis{
- dir = 8
- },
/obj/effect/turf_decal/tile/dark/full,
/obj/structure/marker_beacon/teal,
/obj/structure/curtain/bounty{
color = "#7d7d7d";
alpha = 180
},
+/obj/machinery/stasis{
+ dir = 8
+ },
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/medbay)
"WC" = (
@@ -7675,7 +7691,7 @@
/turf/open/floor/iron/dark/textured_large,
/area/ruin/syndicate_lava_base/testlab)
"Xw" = (
-/obj/machinery/portable_atmospherics/canister/plasma,
+/obj/machinery/portable_atmospherics/canister/oxygen,
/turf/open/floor/catwalk_floor/iron_dark,
/area/ruin/syndicate_lava_base/main)
"Xx" = (
@@ -8180,7 +8196,7 @@ Nv
Co
Co
fU
-eO
+BO
eO
eO
eO
@@ -8444,7 +8460,7 @@ eO
eO
eO
eO
-eO
+BO
Co
Co
Co
@@ -8458,11 +8474,11 @@ CH
Co
Co
ZT
-BO
+Jt
eO
eO
eO
-BO
+Nv
BO
BO
ZT
@@ -8695,7 +8711,7 @@ eO
zn
uH
sf
-pu
+BZ
sf
uH
mo
@@ -8754,8 +8770,8 @@ eO
zn
BZ
BZ
-pu
-pu
+BZ
+BZ
pu
mo
eO
@@ -8813,7 +8829,7 @@ eO
yt
sf
nr
-pu
+BZ
nr
sf
te
@@ -8871,9 +8887,9 @@ Co
eO
yt
pu
-pu
-pu
-pu
+BZ
+BZ
+BZ
BZ
te
hY
@@ -8931,7 +8947,7 @@ eO
oh
sf
nr
-pu
+BZ
nr
sf
te
@@ -8990,7 +9006,7 @@ eO
oh
pu
BZ
-pu
+BZ
BZ
BZ
te
@@ -9049,7 +9065,7 @@ eO
oh
sf
nr
-pu
+BZ
nr
sf
Lr
@@ -9109,7 +9125,7 @@ oh
BZ
BZ
BZ
-pu
+BZ
pu
Lr
eO
@@ -9167,7 +9183,7 @@ eO
oh
uH
sf
-pu
+BZ
sf
uH
Lr
@@ -9316,7 +9332,7 @@ Ii
Ii
Wf
df
-lh
+Wf
pq
pq
pq
@@ -9684,7 +9700,7 @@ wS
vS
Lf
kY
-BO
+Nv
eO
eO
BO
@@ -9840,7 +9856,7 @@ bz
Xg
ZB
BX
-Jh
+Ii
WG
TT
wa
@@ -9906,7 +9922,7 @@ Ii
Ii
Wf
df
-lh
+Wf
pq
pq
pq
@@ -9944,7 +9960,7 @@ ZT
IN
HP
XU
-VP
+XU
Ia
VP
VP
@@ -10052,7 +10068,7 @@ BO
BO
BO
BO
-eO
+BO
eO
eO
eO
@@ -10111,7 +10127,7 @@ Co
BO
BO
ZT
-eO
+BO
BO
eO
eO
@@ -10350,7 +10366,7 @@ Co
Co
BO
BO
-eO
+BO
eO
eO
eO
@@ -10410,8 +10426,8 @@ Co
BO
BO
BO
-eO
-eO
+BO
+ZT
eO
eO
eO
@@ -10469,9 +10485,9 @@ Co
fU
BO
BO
-eO
-eO
-eO
+BO
+Jt
+BO
eO
eO
eO
@@ -10528,9 +10544,9 @@ Co
Co
Nv
BO
-eO
-eO
-eO
+BO
+BO
+ZT
eO
eO
eO
@@ -10588,8 +10604,8 @@ Co
Co
BO
BO
-eO
-eO
+BO
+BO
eO
eO
eO
@@ -10647,9 +10663,9 @@ CH
Co
Co
BO
-eO
-eO
-eO
+BO
+BO
+BO
eO
eO
eO
@@ -10708,8 +10724,8 @@ Co
Co
fU
BO
-eO
-eO
+BO
+BO
eO
eO
eO
@@ -10729,8 +10745,8 @@ eO
eO
eO
eO
-eO
-eO
+BO
+ZT
eO
eO
eO
@@ -10768,8 +10784,8 @@ Co
Co
Co
BO
-eO
-eO
+BO
+BO
eO
eO
eO
@@ -10828,9 +10844,9 @@ Co
Co
Jt
BO
-eO
-eO
-eO
+BO
+BO
+BO
eO
eO
eO
@@ -10889,6 +10905,9 @@ ZT
Co
BO
BO
+BO
+BO
+BO
eO
eO
eO
@@ -10902,11 +10921,8 @@ eO
eO
eO
eO
-eO
-eO
-eO
-eO
-eO
+BO
+BO
eO
eO
eO
@@ -10952,23 +10968,23 @@ fU
cL
ZT
BO
+BO
+ZT
eO
eO
+BO
+ZT
eO
eO
eO
eO
eO
-eO
-eO
-eO
-eO
-eO
-eO
+BO
+Jt
ZT
-eO
-eO
-eO
+BO
+BO
+BO
eO
ZT
BO
@@ -11022,11 +11038,11 @@ BO
fU
Nv
ZT
-BO
-BO
-BO
+PC
+lh
+Jh
fU
-om
+Co
BO
Jt
BO
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
index 127267c24eb..42f5441e35a 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
@@ -286,7 +286,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/bed{
@@ -524,8 +524,8 @@
/turf/closed/wall/mineral/sandstone,
/area/ruin/powered/beach)
"qK" = (
-/obj/structure/closet/secure_closet/bar/lavaland_bartender_clothes,
/obj/machinery/light/small/directional/east,
+/obj/structure/closet/secure_closet/bar/lavaland_bartender_clothes,
/turf/open/floor/wood,
/area/ruin/powered/beach)
"qT" = (
diff --git a/_maps/RandomRuins/LavaRuins/nova/lavaland_surface_interdyne_base1.dmm b/_maps/RandomRuins/LavaRuins/nova/lavaland_surface_interdyne_base1.dmm
index 0e9b18105b1..0e4e788b379 100644
--- a/_maps/RandomRuins/LavaRuins/nova/lavaland_surface_interdyne_base1.dmm
+++ b/_maps/RandomRuins/LavaRuins/nova/lavaland_surface_interdyne_base1.dmm
@@ -288,7 +288,7 @@
/area/ruin/interdyne_planetary_base/cargo)
"aW" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/iron/smooth_large,
/area/ruin/interdyne_planetary_base/cargo)
"aX" = (
@@ -4346,12 +4346,12 @@
/area/ruin/interdyne_planetary_base/main/dorms)
"kV" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/smooth_large,
/area/ruin/interdyne_planetary_base/main/dorms)
"kW" = (
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/bed{
@@ -4694,7 +4694,7 @@
},
/obj/item/serviette_used,
/obj/item/shard/plastitanium,
-/obj/item/valentine,
+/obj/item/paper/valentine,
/obj/machinery/light/small/directional/west,
/turf/open/floor/plating/reinforced,
/area/ruin/interdyne_planetary_base/eng/disp)
diff --git a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm
index c389af77150..dc6cea464f7 100644
--- a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm
+++ b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_1.dmm
@@ -16,7 +16,7 @@
/area/ruin/space/djstation)
"k" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/iron/grimy,
/area/ruin/space/djstation)
"p" = (
@@ -41,7 +41,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/turf/open/floor/iron/grimy,
diff --git a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_4.dmm b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_4.dmm
index 8e632403b36..52ec466ae86 100644
--- a/_maps/RandomRuins/SpaceRuins/DJstation/quarters_4.dmm
+++ b/_maps/RandomRuins/SpaceRuins/DJstation/quarters_4.dmm
@@ -39,7 +39,7 @@
/turf/open/floor/iron/freezer/airless,
/area/ruin/space/djstation)
"x" = (
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/plating/airless,
/area/ruin/space/djstation)
"A" = (
diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
index 5645ac3ef15..2c23219b7d3 100644
--- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
+++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm
@@ -1958,7 +1958,7 @@
/area/ruin/space/has_grav/deepstorage/hydroponics)
"zl" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/wood,
/area/ruin/space/has_grav/deepstorage/dorm)
@@ -2128,7 +2128,7 @@
"Ev" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/floor/wood,
/area/ruin/space/has_grav/deepstorage/dorm)
"EA" = (
diff --git a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm
index 9660b317c66..524e81ebb69 100644
--- a/_maps/RandomRuins/SpaceRuins/hellfactory.dmm
+++ b/_maps/RandomRuins/SpaceRuins/hellfactory.dmm
@@ -570,7 +570,7 @@
/area/ruin/space/has_grav/hellfactory)
"cc" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/holofloor/wood,
/area/ruin/space/has_grav/hellfactory)
"cd" = (
@@ -899,7 +899,7 @@
/area/ruin/space/has_grav/hellfactoryoffice)
"xK" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/holofloor/wood,
/area/ruin/space/has_grav/hellfactory)
diff --git a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
index f0e59ce224b..f9d42f8c332 100644
--- a/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
+++ b/_maps/RandomRuins/SpaceRuins/hilbertresearchfacility.dmm
@@ -349,7 +349,7 @@
/area/ruin/space/has_grav/powered/hilbertresearchfacility)
"jt" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet/black,
/area/ruin/space/has_grav/powered/hilbertresearchfacility)
"jC" = (
diff --git a/_maps/RandomRuins/SpaceRuins/nova/cargodiselost.dmm b/_maps/RandomRuins/SpaceRuins/nova/cargodiselost.dmm
index 3592016d918..a4043f3f450 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/cargodiselost.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/cargodiselost.dmm
@@ -104,6 +104,7 @@
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/smooth_half,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"bM" = (
@@ -119,6 +120,10 @@
},
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/mining)
+"ca" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/mineral/plastitanium,
+/area/ruin/space/has_grav/cargodise_freighter/primaryhall)
"cd" = (
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 8
@@ -294,6 +299,7 @@
/obj/effect/turf_decal/tile/green/anticorner/contrasted{
dir = 1
},
+/obj/machinery/light/directional/west,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"eo" = (
@@ -310,6 +316,11 @@
},
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/quarters)
+"ev" = (
+/obj/structure/lattice,
+/mob,
+/turf/template_noop,
+/area/template_noop)
"ex" = (
/obj/machinery/door/airlock/survival_pod/glass,
/obj/structure/fans/tiny,
@@ -384,6 +395,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/smooth_half{
dir = 1
},
@@ -404,6 +416,7 @@
"fS" = (
/obj/item/disk/ammo_workbench,
/obj/structure/table/reinforced,
+/obj/machinery/recharger,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/cargodise_freighter/vault)
"fV" = (
@@ -577,6 +590,9 @@
"iT" = (
/obj/machinery/computer/cryopod/directional/south,
/obj/effect/turf_decal/tile/green/half/contrasted,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"iU" = (
@@ -973,6 +989,12 @@
/obj/structure/cable,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/mining)
+"pu" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron/kitchen,
+/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"pv" = (
/obj/effect/turf_decal/tile/yellow/half{
dir = 1
@@ -1085,6 +1107,15 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/bridge)
+"rI" = (
+/obj/effect/turf_decal/tile/yellow/half{
+ dir = 4
+ },
+/obj/machinery/light/directional/east,
+/turf/open/floor/iron/dark/smooth_half{
+ dir = 1
+ },
+/area/ruin/space/has_grav/cargodise_freighter/primaryhall)
"rR" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
@@ -1138,7 +1169,7 @@
/area/ruin/space/has_grav/cargodise_freighter/cargo)
"sW" = (
/obj/structure/table/reinforced,
-/obj/item/storage/medkit,
+/obj/item/storage/medkit/regular,
/obj/item/storage/medkit/surgery{
pixel_x = 6;
pixel_y = 8
@@ -1169,6 +1200,8 @@
/obj/item/folded_navigation_gigabeacon,
/obj/structure/cable,
/obj/item/circuitboard/computer/powermonitor,
+/obj/item/circuitboard/machine/biogenerator/food_replicator,
+/obj/item/flatpacked_machine,
/turf/open/floor/plating,
/area/ruin/space/has_grav/cargodise_freighter/utility)
"ty" = (
@@ -1198,6 +1231,11 @@
"tL" = (
/obj/effect/turf_decal/siding/wood/corner,
/obj/structure/extinguisher_cabinet/directional/north,
+/obj/structure/table/reinforced,
+/obj/item/gun/ballistic/automatic/pistol/sol,
+/obj/item/gun/energy/e_gun/mini{
+ pixel_y = 5
+ },
/turf/open/floor/wood/parquet,
/area/ruin/space/has_grav/cargodise_freighter/quarters)
"tN" = (
@@ -1219,7 +1257,7 @@
/area/ruin/space/has_grav/cargodise_freighter/primaryhall)
"tW" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/floor/wood/parquet,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"tY" = (
@@ -1399,9 +1437,9 @@
/turf/open/floor/iron/kitchen,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"xw" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/light/cold/directional/west,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/wood/parquet,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"xy" = (
@@ -1562,7 +1600,7 @@
/obj/structure/bed/double{
dir = 1
},
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
dir = 4
},
/turf/open/floor/wood/parquet,
@@ -1803,6 +1841,14 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
+"Du" = (
+/obj/effect/turf_decal/tile/yellow/half,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron/dark/smooth_half,
+/area/ruin/space/has_grav/cargodise_freighter/primaryhall)
"DE" = (
/obj/effect/turf_decal/tile/yellow/half{
dir = 4
@@ -1904,9 +1950,6 @@
"ES" = (
/obj/structure/rack/gunrack,
/obj/item/gun/ballistic/automatic/lanca,
-/obj/item/gun/ballistic/automatic/lanca{
- pixel_x = 3
- },
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/cargodise_freighter/vault)
"Fb" = (
@@ -2011,6 +2054,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden,
/turf/open/floor/iron/smooth,
/area/ruin/space/has_grav/cargodise_freighter/utility)
+"Ha" = (
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/kitchen,
+/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"Hi" = (
/obj/effect/turf_decal/trimline/blue/corner{
dir = 4
@@ -2276,6 +2323,7 @@
},
/area/ruin/space/has_grav/cargodise_freighter/primaryhall)
"Kr" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/wood/parquet,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"Kt" = (
@@ -2479,6 +2527,7 @@
"Ny" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/machinery/light/cold/directional/east,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/wood/parquet,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"NC" = (
@@ -2504,7 +2553,7 @@
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"NQ" = (
/obj/structure/safe,
-/obj/item/mod/module/jetpack/advanced,
+/obj/item/mod/module/jetpack,
/obj/item/mod/control/pre_equipped/standard,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/cargodise_freighter/vault)
@@ -2594,14 +2643,12 @@
"OY" = (
/obj/structure/rack/gunrack,
/obj/item/gun/ballistic/rifle/boltaction,
-/obj/item/gun/ballistic/rifle/boltaction{
- pixel_x = 3
- },
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/cargodise_freighter/vault)
"Pa" = (
/obj/machinery/shower/directional/south,
/obj/item/soap,
+/obj/machinery/light/directional/east,
/turf/open/floor/iron/white,
/area/ruin/space/has_grav/cargodise_freighter/kitchen)
"Pe" = (
@@ -3800,7 +3847,7 @@ Gh
Gh
Gh
JQ
-Ef
+ev
Ef
Ef
Yr
@@ -4543,7 +4590,7 @@ vH
Gg
By
ty
-Da
+pu
Da
Df
Da
@@ -4552,7 +4599,7 @@ iX
Gg
EC
tV
-qS
+Du
Hv
ci
TC
@@ -4628,8 +4675,8 @@ FT
FT
FT
JC
-Da
-Da
+pu
+Ha
IP
Gg
UL
@@ -4681,7 +4728,7 @@ Hv
eC
HJ
Hv
-Wk
+ca
Wk
ex
Gh
@@ -4845,7 +4892,7 @@ DE
gY
BF
WY
-Lp
+rI
Lp
YT
kF
diff --git a/_maps/RandomRuins/SpaceRuins/nova/piratefort.dmm b/_maps/RandomRuins/SpaceRuins/nova/piratefort.dmm
index e79f5902d5d..b0770c8277a 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/piratefort.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/piratefort.dmm
@@ -688,7 +688,7 @@
/area/ruin/space/has_grav/powered)
"wR" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/wood,
/area/ruin/space/has_grav/powered)
"wT" = (
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon.dmm
index 5752de76860..be2c41b1eb8 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon.dmm
@@ -32,9 +32,6 @@
"al" = (
/obj/structure/table/reinforced,
/obj/item/clothing/gloves/color/yellow,
-/obj/item/paper/fluff/ruins/oldstation/generator_manual,
-/obj/item/wirecutters,
-/obj/item/wrench,
/obj/structure/cable,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/power1)
@@ -111,12 +108,11 @@
/obj/effect/mapping_helpers/apc/unlocked,
/obj/structure/cable,
/obj/structure/closet/crate/radiation,
-/obj/item/stack/sheet/mineral/uranium/five,
-/obj/item/stack/sheet/mineral/uranium/five,
/obj/effect/mapping_helpers/apc/cell_10k,
/obj/effect/turf_decal/tile/yellow/half{
dir = 1
},
+/obj/item/stack/sheet/mineral/uranium/half,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/atmos)
"aR" = (
@@ -132,6 +128,15 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/centerhall)
+"aW" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/structure/alien/resin/wall,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/camera/tarkon/directional/west,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/porthall)
"aY" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/yellow/half{
@@ -162,7 +167,7 @@
dir = 4
},
/obj/machinery/button/polarizer{
- id = "tarkondisects";
+ id = "tarkondisect";
pixel_x = 31
},
/turf/open/floor/iron/dark,
@@ -189,9 +194,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/forehall)
"bl" = (
-/obj/machinery/door/window/brigdoor/security/cell/left/directional/south{
- req_access = list("tarkon")
- },
+/obj/machinery/door/window/brigdoor/tarkon/left/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/door/poddoor/shutters{
@@ -328,8 +331,14 @@
/obj/item/storage/backpack/security/redsec,
/obj/item/clothing/head/utility/welding/hat,
/obj/item/clothing/head/utility/welding/hat,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
+"cq" = (
+/obj/machinery/recharge_station,
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/port_tarkon/centerhall)
"ct" = (
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -436,6 +445,13 @@
/obj/machinery/atmospherics/miner/plasma,
/turf/open/floor/engine/plasma,
/area/ruin/space/has_grav/port_tarkon/atmos)
+"dc" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/forehall)
"dd" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
@@ -487,6 +503,7 @@
/obj/effect/turf_decal/tile/brown/anticorner{
dir = 4
},
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/storage)
"dv" = (
@@ -574,6 +591,7 @@
/obj/effect/turf_decal/tile/yellow/half{
dir = 8
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/toolstorage)
"dV" = (
@@ -601,6 +619,7 @@
/area/ruin/space/has_grav/port_tarkon/centerhall)
"ex" = (
/obj/effect/turf_decal/tile/brown/anticorner,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/storage)
"ey" = (
@@ -700,6 +719,10 @@
/obj/structure/trash_pile,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/centerhall)
+"fd" = (
+/obj/machinery/camera/tarkon/directional/east,
+/turf/open/floor/wood/large,
+/area/ruin/space/has_grav/port_tarkon/dorms)
"fe" = (
/obj/machinery/computer/atmos_control/tarkon/incinerator{
dir = 1
@@ -824,6 +847,7 @@
/obj/effect/turf_decal/tile/red/real_red/half{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/starboardhall)
"gb" = (
@@ -843,7 +867,7 @@
/area/ruin/space/has_grav/port_tarkon/kitchen)
"gm" = (
/obj/machinery/door/airlock/engineering{
- name = "Backup Generator Room"
+ name = "Backup Power Storage"
},
/obj/structure/cable,
/turf/open/floor/iron,
@@ -884,6 +908,7 @@
/obj/effect/turf_decal/tile/yellow/anticorner{
dir = 4
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/toolstorage)
"gE" = (
@@ -913,6 +938,17 @@
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/cargo)
+"gN" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/blue/half{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/camera/tarkon/directional/east,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/afthall)
"gR" = (
/obj/machinery/power/smes/engineering{
charge = 0
@@ -961,6 +997,7 @@
/obj/structure/rack,
/obj/item/stock_parts/cell/high,
/obj/item/stock_parts/cell/high,
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/power1)
"hc" = (
@@ -975,6 +1012,7 @@
/obj/effect/turf_decal/tile/blue/anticorner{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
"hh" = (
@@ -1027,9 +1065,7 @@
/obj/effect/turf_decal/tile/purple/half{
dir = 1
},
-/obj/machinery/computer/camera_advanced/xenobio{
- networks = list("tarkon")
- },
+/obj/machinery/computer/camera_advanced/xenobio/tarkon,
/obj/machinery/button/door{
id = "ptxeno";
name = "shutter controls";
@@ -1124,10 +1160,8 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/centerhall)
"ig" = (
-/obj/machinery/computer{
- desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages.";
- dir = 8;
- name = "Financing Console"
+/obj/machinery/modular_computer/console{
+ dir = 8
},
/obj/effect/turf_decal/tile/brown/anticorner{
dir = 4
@@ -1311,6 +1345,7 @@
/obj/effect/turf_decal/tile/brown/half{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/mining)
"jL" = (
@@ -1333,6 +1368,10 @@
/obj/machinery/biogenerator,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/garden)
+"jT" = (
+/obj/machinery/camera/tarkon/directional/north,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/forehall)
"jV" = (
/obj/effect/turf_decal/sand/plating,
/obj/structure/cable,
@@ -1355,6 +1394,7 @@
"jZ" = (
/obj/effect/turf_decal/sand,
/obj/machinery/light/small/directional/east,
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/mining)
"kc" = (
@@ -1450,10 +1490,13 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/forehall)
+"kJ" = (
+/turf/template_noop,
+/area/ruin/space/has_grav/outdoors)
"kN" = (
/obj/structure/table/reinforced,
-/obj/machinery/door/window/brigdoor/left/directional/south,
-/obj/machinery/door/window/brigdoor/left/directional/north,
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/south,
+/obj/machinery/door/window/brigdoor/tarkon/left/directional/north,
/obj/item/paper_bin{
pixel_x = 7
},
@@ -1620,6 +1663,7 @@
/obj/effect/turf_decal/tile/neutral/half{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/centerhall)
"lM" = (
@@ -1673,6 +1717,10 @@
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/mining)
+"mb" = (
+/obj/machinery/camera/tarkon/directional/west,
+/turf/closed/wall,
+/area/ruin/space/has_grav/port_tarkon/power1)
"mc" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/tile/brown,
@@ -1708,9 +1756,7 @@
/area/ruin/space/has_grav/port_tarkon/developement)
"mh" = (
/obj/structure/cable,
-/obj/machinery/door/window/brigdoor/right/directional/south{
- req_access = list("tarkon")
- },
+/obj/machinery/door/window/brigdoor/tarkon/left/directional/south,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/power1)
"mi" = (
@@ -1883,6 +1929,8 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/storage)
"ne" = (
+/obj/machinery/power/terminal,
+/obj/structure/cable,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/power1)
"nh" = (
@@ -1911,6 +1959,7 @@
/obj/structure/closet/radiation,
/obj/item/clothing/head/utility/radiation,
/obj/item/clothing/suit/utility/radiation,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/atmos)
"nr" = (
@@ -1921,6 +1970,7 @@
/obj/item/storage/part_replacer/cargo,
/obj/structure/noticeboard/directional/east,
/obj/item/paper/fluff/ruins/tarkon/scisafe,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"ns" = (
@@ -2070,6 +2120,11 @@
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/starboardhall)
+"oA" = (
+/obj/effect/turf_decal/tile/neutral/half,
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/centerhall)
"oE" = (
/obj/effect/turf_decal/tile/brown/half{
dir = 4
@@ -2127,6 +2182,7 @@
/obj/structure/disposalpipe/segment{
dir = 5
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/porthall)
"oQ" = (
@@ -2136,6 +2192,11 @@
/obj/machinery/door/firedoor/solid,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/garden)
+"oU" = (
+/obj/effect/turf_decal/tile/purple/half,
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/iron/dark,
+/area/ruin/space/has_grav/port_tarkon/developement)
"oV" = (
/obj/effect/turf_decal/tile/neutral/anticorner{
dir = 8
@@ -2177,6 +2238,7 @@
/obj/machinery/computer/rdconsole{
dir = 4
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"pf" = (
@@ -2259,6 +2321,11 @@
/obj/effect/turf_decal/tile/red/real_red/half,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/secoff)
+"pt" = (
+/obj/structure/cable,
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/port_tarkon/observ)
"py" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/tile/brown/half{
@@ -2334,6 +2401,7 @@
/obj/item/storage/backpack/satchel/explorer,
/obj/item/clothing/head/utility/welding/hat,
/obj/item/clothing/head/utility/welding/hat,
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"pP" = (
@@ -2417,6 +2485,13 @@
/obj/machinery/light/warm/directional/south,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
+"qq" = (
+/obj/machinery/cryopod{
+ dir = 8
+ },
+/obj/machinery/camera/tarkon/directional/east,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon)
"qr" = (
/obj/machinery/portable_atmospherics/scrubber,
/turf/open/floor/plating,
@@ -2471,6 +2546,7 @@
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/sugar,
/obj/item/reagent_containers/condiment/sugar,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron/cafeteria,
/area/ruin/space/has_grav/port_tarkon/kitchen)
"qG" = (
@@ -2497,11 +2573,16 @@
/obj/item/stock_parts/cell/super,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
+"qO" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/machinery/camera/tarkon/directional/west,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon)
"qP" = (
/obj/structure/table/reinforced,
-/obj/machinery/door/window/right/directional/west{
- req_access = list("tarkon")
- },
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/west,
/obj/item/mod/module/springlock,
/obj/structure/window/reinforced/spawner/directional/south,
/obj/effect/turf_decal/tile/red/real_red/half{
@@ -2588,6 +2669,7 @@
/obj/structure/disposalpipe/segment{
dir = 10
},
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/centerhall)
"rp" = (
@@ -2751,11 +2833,10 @@
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/forehall)
"sq" = (
-/obj/machinery/power/smes/engineering{
- charge = 0;
- name = "backup power storage unit"
- },
/obj/structure/cable,
+/obj/machinery/power/terminal{
+ dir = 1
+ },
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/power1)
"su" = (
@@ -2841,6 +2922,13 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating/airless,
/area/solars/tarkon)
+"tf" = (
+/obj/effect/turf_decal/tile/yellow/half{
+ dir = 8
+ },
+/obj/machinery/camera/tarkon/directional/west,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/afthall)
"tg" = (
/obj/effect/turf_decal/tile/yellow/anticorner{
dir = 8
@@ -2949,12 +3037,13 @@
/area/ruin/space/has_grav/port_tarkon/forehall)
"ud" = (
/obj/effect/turf_decal/tile/brown/anticorner,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/starboardhall)
"ug" = (
/obj/effect/turf_decal/sand/plating,
/obj/structure/alien/resin/membrane,
-/turf/open/floor/plating/airless,
+/turf/open/misc/asteroid/airless,
/area/ruin/space/has_grav/outdoors)
"uh" = (
/obj/structure/cable,
@@ -2977,6 +3066,7 @@
/obj/item/storage/medkit/regular,
/obj/item/storage/medkit/regular,
/obj/machinery/firealarm/directional/south,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
"uu" = (
@@ -3058,6 +3148,7 @@
/obj/effect/turf_decal/tile/red/real_red/anticorner{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/secoff)
"vb" = (
@@ -3075,6 +3166,13 @@
},
/turf/open/floor/engine/n2o,
/area/ruin/space/has_grav/port_tarkon/atmos)
+"vj" = (
+/obj/effect/turf_decal/tile/neutral/half{
+ dir = 8
+ },
+/obj/machinery/camera/tarkon/directional/west,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/centerhall)
"vl" = (
/obj/machinery/door/airlock/public/glass/incinerator/tarkon_interior,
/obj/machinery/airlock_controller/incinerator_tarkon{
@@ -3251,6 +3349,7 @@
/area/ruin/space/has_grav/port_tarkon/storage)
"wq" = (
/obj/machinery/processor,
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron/cafeteria,
/area/ruin/space/has_grav/port_tarkon/kitchen)
"wr" = (
@@ -3348,6 +3447,7 @@
/obj/machinery/computer/atmos_control/tarkon/carbon_tank{
dir = 8
},
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/atmos)
"xc" = (
@@ -3402,7 +3502,7 @@
dir = 4
},
/obj/effect/spawner/structure/window{
- polarizer_id = "tarkondisect"
+ polarizer_id = "tarkon_med1"
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
@@ -3482,6 +3582,7 @@
/obj/machinery/atmospherics/components/unary/portables_connector{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/atmos)
"xT" = (
@@ -3660,6 +3761,10 @@
"zg" = (
/turf/closed/wall/r_wall,
/area/ruin/space/has_grav/port_tarkon/comms)
+"zh" = (
+/obj/machinery/camera/tarkon/directional/north,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/port_tarkon/afthall)
"zk" = (
/obj/effect/turf_decal/tile/brown/half{
dir = 8
@@ -3795,6 +3900,10 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/starboardhall)
+"Aa" = (
+/obj/machinery/camera/tarkon/directional/west,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/forehall)
"Ab" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -3831,6 +3940,9 @@
/obj/item/circuitboard/machine/protolathe/tarkon,
/obj/item/circuitboard/computer/tarkon_driver,
/obj/item/circuitboard/machine/rdserver/tarkon,
+/obj/machinery/camera/tarkon/directional/east,
+/obj/item/circuitboard/computer/tarkon_cam,
+/obj/item/circuitboard/computer/xenobiology/tarkon,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/comms)
"Ao" = (
@@ -3991,9 +4103,7 @@
/obj/machinery/airalarm/directional/east,
/obj/effect/mapping_helpers/airalarm/all_access,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/camera/directional/east{
- network = list("tarkon")
- },
+/obj/machinery/camera/tarkon_xenob,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"BI" = (
@@ -4066,6 +4176,7 @@
/obj/machinery/cryo_cell{
dir = 8
},
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
"Ch" = (
@@ -4090,12 +4201,12 @@
"Cn" = (
/obj/effect/turf_decal/tile/blue/half,
/obj/effect/spawner/structure/window{
- polarizer_id = "tarkondisect"
+ polarizer_id = "tarkon_med1"
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
"Cp" = (
-/obj/machinery/computer/records{
+/obj/machinery/computer/camera_advanced/tarkon_cam{
dir = 8
},
/obj/effect/turf_decal/tile/red/real_red/half,
@@ -4136,7 +4247,7 @@
/area/ruin/space/has_grav/port_tarkon/developement)
"CF" = (
/obj/effect/spawner/structure/window{
- polarizer_id = "tarkondisect"
+ polarizer_id = "tarkon_med1"
},
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/trauma)
@@ -4304,6 +4415,7 @@
dir = 8
},
/obj/machinery/atmospherics/components/binary/tank_compressor,
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"DL" = (
@@ -4326,6 +4438,7 @@
},
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/power1)
"DN" = (
@@ -4373,6 +4486,7 @@
/obj/effect/turf_decal/tile/brown/anticorner{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/storage)
"Eb" = (
@@ -4414,9 +4528,9 @@
/turf/open/floor/engine/n2,
/area/ruin/space/has_grav/port_tarkon/atmos)
"Eo" = (
-/obj/structure/sign/warning/radiation,
-/turf/closed/wall,
-/area/ruin/space/has_grav/port_tarkon/power1)
+/obj/effect/turf_decal/tile/neutral/full,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/centerhall)
"Eq" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
@@ -4511,11 +4625,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/forehall)
"Fc" = (
-/obj/machinery/power/port_gen/pacman/super{
- name = "\improper emergency power generator";
- time_per_sheet = 40
- },
-/obj/effect/decal/cleanable/greenglow,
+/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/power1)
"Fd" = (
@@ -4679,6 +4789,7 @@
dir = 8
},
/obj/item/construction/rcd/tarkon,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/atmos)
"GN" = (
@@ -4891,7 +5002,7 @@
/turf/open/floor/wood/large,
/area/ruin/space/has_grav/port_tarkon/dorms)
"Id" = (
-/obj/machinery/door/window/left/directional/west,
+/obj/machinery/door/window/brigdoor/tarkon/left/directional/west,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/atmos)
"Ie" = (
@@ -4979,6 +5090,11 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/forehall)
+"IF" = (
+/obj/structure/bed/maint,
+/obj/machinery/camera/tarkon/directional/west,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/secoff)
"IJ" = (
/obj/structure/table/reinforced,
/obj/item/paper_bin/construction,
@@ -5028,9 +5144,7 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/centerhall)
"IV" = (
-/obj/machinery/power/terminal{
- dir = 8
- },
+/obj/machinery/power/smes/tarkon_backup,
/obj/structure/cable,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/power1)
@@ -5134,9 +5248,7 @@
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"JL" = (
-/obj/machinery/door/window/brigdoor/security/cell/right/directional/south{
- req_access = list("tarkon")
- },
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/south,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/door/poddoor/shutters{
@@ -5150,6 +5262,7 @@
dir = 1
},
/obj/machinery/recharger,
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/comms)
"JP" = (
@@ -5417,6 +5530,10 @@
/obj/structure/sink/directional/north,
/turf/open/floor/grass,
/area/ruin/space/has_grav/port_tarkon/garden)
+"Ln" = (
+/obj/machinery/camera/tarkon/directional/east,
+/turf/open/floor/plating,
+/area/ruin/space/has_grav/port_tarkon/observ)
"Lt" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/yellow/half,
@@ -5778,21 +5895,20 @@
"NI" = (
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/tile/brown/anticorner,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/storage)
"NO" = (
/obj/effect/turf_decal/tile/purple/half{
dir = 1
},
-/obj/machinery/computer,
+/obj/machinery/modular_computer/console,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"NS" = (
-/obj/structure/closet/crate/radiation,
/obj/structure/cable,
-/obj/item/stack/sheet/mineral/uranium/five,
-/obj/item/stack/sheet/mineral/uranium/five,
-/obj/item/stack/sheet/mineral/uranium/five,
+/obj/machinery/power/smes/tarkon_backup,
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/power1)
"NT" = (
@@ -5879,6 +5995,7 @@
start_showpiece_type = /obj/item/gun/energy/recharge/resonant_system;
req_access = list("tarkon")
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/mining)
"Om" = (
@@ -6049,6 +6166,7 @@
/obj/structure/disposalpipe/broken{
dir = 8
},
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/observ)
"Po" = (
@@ -6141,6 +6259,7 @@
/obj/effect/turf_decal/tile/yellow/anticorner{
dir = 4
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/atmos)
"PW" = (
@@ -6189,6 +6308,7 @@
/obj/effect/turf_decal/trimline/yellow/filled/warning{
dir = 8
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron/airless,
/area/ruin/space/has_grav/port_tarkon/storage)
"Qq" = (
@@ -6416,6 +6536,7 @@
/area/ruin/space/has_grav/port_tarkon/forehall)
"Se" = (
/obj/structure/bed/maint,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/secoff)
"Sg" = (
@@ -6776,10 +6897,11 @@
/obj/structure/table/reinforced,
/obj/structure/window/reinforced/spawner/directional/west,
/obj/item/knife/combat/survival,
-/obj/item/tape/ruins/tarkon/safe,
+/obj/item/tape/ruins/tarkon,
/obj/effect/turf_decal/tile/red/real_red/anticorner{
dir = 4
},
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/secoff)
"Uo" = (
@@ -6989,6 +7111,7 @@
dir = 1
},
/obj/structure/closet/firecloset,
+/obj/effect/mapping_helpers/airalarm/all_access,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/toolstorage)
"VU" = (
@@ -7018,6 +7141,13 @@
"VZ" = (
/turf/open/floor/iron/freezer,
/area/ruin/space/has_grav/port_tarkon/kitchen)
+"Wa" = (
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 4
+ },
+/obj/machinery/camera/tarkon/directional/east,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/mining)
"Wd" = (
/obj/effect/turf_decal/tile/blue/half,
/obj/machinery/light/directional/south,
@@ -7146,6 +7276,7 @@
/obj/machinery/firealarm/directional/south{
pixel_y = -31
},
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/grass,
/area/ruin/space/has_grav/port_tarkon/garden)
"Xf" = (
@@ -7233,6 +7364,13 @@
},
/turf/open/floor/plating,
/area/ruin/space/has_grav/port_tarkon/atmos)
+"XN" = (
+/obj/effect/turf_decal/tile/purple/half{
+ dir = 4
+ },
+/obj/machinery/camera/tarkon/directional/east,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/porthall)
"XO" = (
/obj/structure/cable,
/obj/effect/turf_decal/tile/blue/half{
@@ -7360,6 +7498,7 @@
/obj/item/raw_anomaly_core/random,
/obj/item/raw_anomaly_core/random,
/obj/item/raw_anomaly_core/random,
+/obj/machinery/camera/tarkon/directional/north,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/developement)
"YT" = (
@@ -7391,6 +7530,7 @@
/obj/machinery/computer/atmos_control/tarkon/nitrogen_tank{
dir = 4
},
+/obj/machinery/camera/tarkon/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/atmos)
"YZ" = (
@@ -7411,8 +7551,20 @@
},
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/port_tarkon/comms)
+"Zh" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/yellow/half,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/iron,
+/area/ruin/space/has_grav/port_tarkon/porthall)
"Zs" = (
/obj/effect/turf_decal/tile/blue/half,
/obj/structure/table/optable,
@@ -8188,7 +8340,7 @@ nj
nj
nj
nj
-Dz
+aW
Dz
ax
Hi
@@ -8340,7 +8492,7 @@ Dt
Dt
bb
Dt
-Dt
+XN
Dt
qz
Pc
@@ -8692,7 +8844,7 @@ Io
QS
QS
eH
-Om
+pt
Yr
NO
hp
@@ -8758,7 +8910,7 @@ kV
kV
cU
Yn
-QS
+Ln
QS
Pa
dV
@@ -8780,7 +8932,7 @@ yP
jX
jX
Qa
-yG
+oU
Yr
AG
FS
@@ -8857,7 +9009,7 @@ fD
Yr
Ad
FS
-TD
+Zh
Sn
mm
nW
@@ -9422,7 +9574,7 @@ zY
eT
xr
xr
-Sq
+dc
aI
uj
jX
@@ -9705,7 +9857,7 @@ ZY
zY
bt
xC
-kV
+kJ
EN
kV
EN
@@ -9739,7 +9891,7 @@ zE
oh
kC
FW
-Of
+Eo
ya
al
NS
@@ -9806,7 +9958,7 @@ xx
pN
Tm
xx
-Vb
+qO
Vb
zE
zE
@@ -9886,7 +10038,7 @@ zE
Ej
Yk
xT
-Eo
+ya
ms
AW
Fc
@@ -9962,7 +10114,7 @@ if
oV
ms
ms
-ms
+mb
ms
ms
bO
@@ -10011,7 +10163,7 @@ Ys
xr
xr
iU
-xr
+Aa
HP
EX
xr
@@ -10035,7 +10187,7 @@ Px
RJ
Np
wr
-wr
+tf
OP
aR
Kh
@@ -10091,7 +10243,7 @@ xr
BL
wV
pK
-RJ
+oA
xx
ph
Up
@@ -10187,7 +10339,7 @@ bH
pi
JZ
JZ
-JZ
+gN
dz
qx
tx
@@ -10390,7 +10542,7 @@ xx
cn
Ur
xx
-ha
+qq
ha
zE
zE
@@ -10403,7 +10555,7 @@ DA
DA
Ye
hG
-WX
+zh
WX
zg
wv
@@ -10444,7 +10596,7 @@ zY
eT
xr
xr
-Sq
+dc
EH
af
YO
@@ -10536,7 +10688,7 @@ rN
rN
mS
IU
-rN
+vj
IM
rN
Dv
@@ -10801,7 +10953,7 @@ zY
bt
bt
xC
-kV
+kJ
kV
EN
xC
@@ -10824,7 +10976,7 @@ at
KR
rA
ZR
-OA
+cq
rh
PG
fP
@@ -11026,7 +11178,7 @@ kV
xC
zY
eT
-xr
+jT
OI
Sq
eT
@@ -11255,7 +11407,7 @@ xC
kV
kV
kV
-kV
+kJ
xC
zY
OV
@@ -11776,7 +11928,7 @@ rj
qc
Di
gy
-Se
+IF
OV
Xs
Xs
@@ -11794,7 +11946,7 @@ qR
eS
cu
dm
-eS
+Wa
Gk
AR
AR
@@ -11838,7 +11990,7 @@ kV
kV
kV
EN
-kV
+kJ
xC
bt
bt
@@ -11854,7 +12006,7 @@ OV
Xs
Xs
Xs
-Xs
+fd
Xs
Xs
Xs
@@ -11900,7 +12052,7 @@ zY
zY
bt
xC
-kV
+kJ
EN
kV
kV
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_secure.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_secure.dmm
index 95aab56ab1c..bfcd8c05c93 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_secure.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_secure.dmm
@@ -91,17 +91,17 @@
"C" = (
/obj/modular_map_connector,
/obj/structure/rack/shelf,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/template_noop,
/area/template_noop)
"D" = (
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_stock.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_stock.dmm
index a1e289ac154..e24f7119c3d 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_stock.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_stock.dmm
@@ -45,17 +45,17 @@
/area/template_noop)
"B" = (
/obj/structure/closet/crate,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/template_noop,
/area/template_noop)
"D" = (
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_warehouse.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_warehouse.dmm
index d9b150817b3..a7298e65f5e 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_warehouse.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/cargo_warehouse.dmm
@@ -150,17 +150,17 @@
/turf/template_noop,
/area/template_noop)
"T" = (
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/structure/rack/shelf,
/turf/template_noop,
/area/template_noop)
@@ -255,7 +255,7 @@ S
E
N
E
-E
+w
E
"}
(9,1,1) = {"
@@ -273,7 +273,7 @@ B
E
R
E
-w
+E
E
"}
(11,1,1) = {"
@@ -283,7 +283,7 @@ E
E
w
i
-E
+w
"}
(12,1,1) = {"
T
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_cabin.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_cabin.dmm
index 46efa9cd6ae..67f62f0d301 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_cabin.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_cabin.dmm
@@ -1,7 +1,7 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/floor/carpet/royalblack,
/area/template_noop)
"b" = (
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_classic.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_classic.dmm
index b0ac0cbd685..4912f4c058f 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_classic.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_classic.dmm
@@ -7,7 +7,7 @@
/area/template_noop)
"c" = (
/obj/structure/bed/double/pod,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/machinery/button/door/directional/north{
id = "ptdorm4";
name = "Door Lock Control";
@@ -46,7 +46,7 @@
/obj/structure/bed/pod{
dir = 1
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 1
},
/obj/machinery/button/door/directional/south{
@@ -114,7 +114,7 @@
/obj/structure/bed/pod{
dir = 1
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 1
},
/obj/machinery/button/door/directional/north{
@@ -180,7 +180,7 @@
/area/template_noop)
"W" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/button/door/directional/south{
id = "ptdorm3";
name = "Door Lock Control";
diff --git a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_party.dmm b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_party.dmm
index aad927151d4..dda3746a749 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_party.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/port_tarkon/dorm_party.dmm
@@ -105,7 +105,7 @@
/area/template_noop)
"B" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/floor/carpet/royalblue,
/area/template_noop)
"D" = (
@@ -209,7 +209,7 @@
/obj/structure/bed/double{
dir = 1
},
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
dir = 1
},
/turf/open/floor/carpet/royalblack,
diff --git a/_maps/RandomRuins/SpaceRuins/nova/salvagepost.dmm b/_maps/RandomRuins/SpaceRuins/nova/salvagepost.dmm
index 0ddbffca61e..b1a875ecf83 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/salvagepost.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/salvagepost.dmm
@@ -502,7 +502,7 @@
"zf" = (
/obj/structure/bed/pod,
/obj/effect/decal/cleanable/dirt,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet/red,
/area/ruin/powered)
"Ae" = (
@@ -657,7 +657,7 @@
/area/template_noop)
"Gf" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/carpet/red,
/area/ruin/powered)
diff --git a/_maps/RandomRuins/SpaceRuins/nova/scrapheap.dmm b/_maps/RandomRuins/SpaceRuins/nova/scrapheap.dmm
index ebc733dd751..c0c37d9f659 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/scrapheap.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/scrapheap.dmm
@@ -562,7 +562,7 @@
/obj/structure/bed/medical{
dir = 4
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/door/window/left/directional/west,
/turf/open/floor/iron,
/area/ruin/space/has_grav/powered/nova/scrapheap)
@@ -785,7 +785,7 @@
/obj/structure/bed/medical{
dir = 4
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/door/window/left/directional/west,
/obj/structure/window/reinforced/tinted/spawner/directional/south,
/obj/structure/window/reinforced/tinted/spawner/directional/east,
@@ -870,7 +870,7 @@
/obj/structure/bed/medical{
dir = 4
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/door/window/left/directional/west,
/obj/structure/window/reinforced/tinted/spawner/directional/south,
/turf/open/floor/iron,
@@ -1626,7 +1626,7 @@
/obj/structure/bed/medical{
dir = 4
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/door/window/left/directional/west,
/obj/structure/window/reinforced/tinted/spawner/directional/south,
/turf/open/floor/iron,
@@ -1829,7 +1829,7 @@
/obj/structure/bed/medical{
dir = 4
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/door/window/left/directional/west,
/obj/structure/window/reinforced/tinted/spawner/directional/east,
/obj/structure/window/reinforced/tinted/spawner/directional/north,
diff --git a/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm
index 6bcfc6da935..c055ff2272c 100644
--- a/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm
+++ b/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm
@@ -363,7 +363,7 @@
/area/ruin/space/has_grav/hotel)
"cp" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/machinery/button/curtain{
id = "HotelRoom6Curtains";
pixel_x = 24
@@ -2351,7 +2351,7 @@
/obj/structure/bed/double{
dir = 4
},
-/obj/item/bedsheet/random/double{
+/obj/effect/spawner/random/bedsheet/any/double{
dir = 1
},
/turf/open/floor/carpet/neon/simple/teal/nodots,
@@ -2920,7 +2920,7 @@
/area/ruin/space/has_grav/hotel/workroom/quarters)
"nC" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/machinery/button/curtain{
id = "HotelRoom2Curtains";
pixel_x = 22;
@@ -4256,7 +4256,7 @@
/obj/structure/bed/double{
dir = 4
},
-/obj/item/bedsheet/random/double{
+/obj/effect/spawner/random/bedsheet/any/double{
dir = 1
},
/turf/open/floor/carpet/neon/simple/black/nodots,
@@ -4341,7 +4341,7 @@
/area/ruin/space/has_grav/hotel/guestroom/room_5)
"wG" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/machinery/button/curtain{
id = "HotelRoom7Curtains1";
pixel_x = 24
@@ -6257,7 +6257,7 @@
/obj/structure/bed/double{
dir = 4
},
-/obj/item/bedsheet/random/double{
+/obj/effect/spawner/random/bedsheet/any/double{
dir = 1
},
/turf/open/floor/wood,
diff --git a/_maps/RandomRuins/SpaceRuins/waystation.dmm b/_maps/RandomRuins/SpaceRuins/waystation.dmm
index 9399ee02947..def97102238 100644
--- a/_maps/RandomRuins/SpaceRuins/waystation.dmm
+++ b/_maps/RandomRuins/SpaceRuins/waystation.dmm
@@ -1143,7 +1143,7 @@
/area/ruin/space/has_grav/waystation/dorms)
"rQ" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/wood,
/area/ruin/space/has_grav/waystation/dorms)
"rV" = (
@@ -1889,7 +1889,7 @@
/area/ruin/space/has_grav/waystation/cargobay)
"IS" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/ruin/space/has_grav/waystation/dorms)
diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm
index c6366d62e54..7ad0b42218f 100644
--- a/_maps/RandomZLevels/SnowCabin.dmm
+++ b/_maps/RandomZLevels/SnowCabin.dmm
@@ -2142,7 +2142,7 @@
/area/awaymission/cabin/caves)
"km" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/wood,
/area/awaymission/cabin/caves)
"ko" = (
diff --git a/_maps/RandomZLevels/mothership_astrum.dmm b/_maps/RandomZLevels/mothership_astrum.dmm
index cd780a02fb0..b734d2885eb 100644
--- a/_maps/RandomZLevels/mothership_astrum.dmm
+++ b/_maps/RandomZLevels/mothership_astrum.dmm
@@ -851,7 +851,7 @@
/obj/structure/bed{
name = "Reproduction Bench"
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood,
/area/awaymission/mothership_astrum/deck3)
@@ -859,7 +859,7 @@
/obj/structure/bed{
name = "Reproduction Bench"
},
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/wood,
/area/awaymission/mothership_astrum/deck3)
"oA" = (
diff --git a/_maps/RandomZLevels/museum.dmm b/_maps/RandomZLevels/museum.dmm
new file mode 100644
index 00000000000..7429c0b4538
--- /dev/null
+++ b/_maps/RandomZLevels/museum.dmm
@@ -0,0 +1,71209 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ab" = (
+/obj/machinery/computer/old{
+ name = "replica computer";
+ dir = 8;
+ icon_keyboard = "rd_key";
+ icon_screen = "rdcomp"
+ },
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"ai" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"am" = (
+/obj/structure/table/reinforced,
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/item/storage/toolbox/mechanical/old,
+/turf/open/floor/iron/smooth_corner,
+/area/awaymission/museum)
+"ap" = (
+/turf/cordon,
+/area/awaymission/museum)
+"as" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/item/stack/rods,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"at" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/item/stack/rods,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"av" = (
+/obj/structure/chair/stool/directional/south,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"aw" = (
+/obj/structure/shipping_container/nanotrasen{
+ opacity = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"az" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/entertainment/musical_instrument,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"aG" = (
+/obj/machinery/conveyor{
+ dir = 4
+ },
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"aK" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/preopen,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"aR" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/chair/sofa/bench{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"aW" = (
+/obj/structure/closet/crate/bin,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"bg" = (
+/obj/structure/no_effect_signpost{
+ name = "if youre reading this you stink and also made by jimmyl"
+ },
+/turf/open/floor/bluespace,
+/area/awaymission/museum)
+"bi" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("Sometime long ago, someone accidentally slipped in the design for gloves that work like batons into the basic employee craftsmanship teaching program. Naturally, this was not a good thing and all the ruffians onstation would usually have one of these. As Nanotrasen found out and removed the design, these are no longer ever seen, for nobody knows how to make them.")
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"bj" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/machinery/door/airlock/wood{
+ name = "Bathroom"
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"bk" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"bn" = (
+/obj/structure/hedge/opaque,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"br" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"bs" = (
+/turf/open/misc/dirt/station,
+/area/awaymission/museum/mothroachvoid)
+"bt" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = 12
+ },
+/obj/effect/oneway{
+ dir = 4
+ },
+/turf/open/mirage{
+ dir = 8;
+ target_turf_x = 11;
+ range = 1
+ },
+/area/awaymission/museum)
+"bC" = (
+/obj/structure/closet/secure_closet/freezer/kitchen/all_access,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"bE" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"bF" = (
+/obj/effect/mapping_helpers/bombable_wall,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"bG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/grille/broken,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"bI" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "nothing"
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"bJ" = (
+/mob/living/basic/statue/mannequin{
+ dir = 8;
+ name = "Dale Knox"
+ },
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"bK" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"bM" = (
+/obj/item/kirbyplants/random/dead,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"bQ" = (
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"bV" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"bW" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic/light,
+/obj/effect/landmark/transport/transport_id{
+ specific_transport_id = "museum_cargo"
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"ce" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"cf" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/item/storage/box/stickers/googly,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"cm" = (
+/obj/machinery/door/airlock/grunge,
+/obj/structure/barricade/wooden/crude,
+/obj/effect/turf_decal/stripes/end{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"cn" = (
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"cs" = (
+/obj/effect/spawner/random/food_or_drink/snack,
+/obj/effect/spawner/random/food_or_drink/snack,
+/obj/effect/spawner/random/food_or_drink/snack,
+/obj/structure/table/reinforced,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"ct" = (
+/obj/structure/chair/comfy,
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/obj/machinery/light/dim/directional/north,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"cv" = (
+/obj/effect/turf_decal/bot/left,
+/turf/open/floor/iron/dark/diagonal,
+/area/awaymission/museum)
+"cy" = (
+/obj/effect/decal/cleanable/fuel_pool/hivis,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"cA" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"cB" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"cC" = (
+/turf/open/floor/mineral/silver,
+/area/awaymission/museum/mothroachvoid)
+"cF" = (
+/turf/open/floor/iron/dark/side{
+ dir = 8
+ },
+/area/awaymission/museum)
+"cH" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"cM" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/bureaucracy/pen,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"cN" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/item/toy/balloon/corgi,
+/obj/machinery/status_display/random_message{
+ firstline_to_secondline = list("NO" = "LITTERING","YOU ARE" = "BEING WATCHED", "DO NOT TOUCH" = "THE EXHIBITS");
+ pixel_x = 32
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"cR" = (
+/obj/structure/broken_flooring/side/always_floorplane{
+ dir = 8
+ },
+/obj/structure/lattice,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"cS" = (
+/obj/effect/step_trigger/thrower{
+ direction = 1;
+ facedir = 1;
+ tiles = 10;
+ mobs_only = 1
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"cW" = (
+/obj/machinery/computer/old,
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"cX" = (
+/obj/structure/plaque/static_plaque/golden/commission/dream,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"cZ" = (
+/obj/structure/fluff/divine/nexus,
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"da" = (
+/obj/effect/turf_decal/siding/dark_blue/corner,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"de" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/caution/stand_clear,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"dl" = (
+/obj/structure/sign/warning/fire/directional/west,
+/obj/machinery/portable_atmospherics/pump,
+/obj/effect/turf_decal/delivery/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"dn" = (
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"do" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing,
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"dx" = (
+/obj/structure/fluff/beach_umbrella,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"dF" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/effect/spawner/random/bureaucracy/paper{
+ spawn_loot_count = 7;
+ spawn_random_offset = 6
+ },
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"dH" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/glass/shaker,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"dK" = (
+/turf/open/mirage{
+ range = 2;
+ target_turf_y = -4;
+ dir = 1
+ },
+/area/awaymission/museum)
+"dL" = (
+/obj/structure/sink/directional/west,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"dN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"dR" = (
+/obj/effect/turf_decal/siding/wideplating/corner{
+ dir = 8
+ },
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"dS" = (
+/mob/living/basic/statue/mannequin{
+ dir = 4;
+ held_item = /obj/item/weldingtool;
+ hat = /obj/item/clothing/head/utility/welding
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"dV" = (
+/obj/machinery/door/window/brigdoor/left/directional/south{
+ req_access = list("bartender")
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"dY" = (
+/mob/living/basic/statue/mannequin{
+ hat = /obj/item/clothing/head/helmet/space;
+ dir = 1
+ },
+/turf/open/floor/holofloor/hyperspace/ns,
+/area/awaymission/museum)
+"dZ" = (
+/obj/structure/lattice/catwalk/mining,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"ea" = (
+/obj/structure/flora/rock/icy/style_random,
+/obj/effect/turf_decal/siding{
+ dir = 10
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing/corner,
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"ec" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "museum_secret"
+ },
+/obj/machinery/puzzle_keycardpad/directional/east{
+ id = "museum_secret"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"eg" = (
+/obj/effect/spawner/structure/window/hollow/directional{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ek" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "l";
+ pixel_x = -10
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "i"
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "e";
+ pixel_x = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/dim/directional/west,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"el" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"em" = (
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"en" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 6
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"es" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ev" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"ex" = (
+/obj/structure/chair/stool/bar/directional/west{
+ can_buckle = 1
+ },
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"eA" = (
+/obj/machinery/door/airlock/wood{
+ name = "Dance Room"
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"eD" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/showcase/machinery/implanter,
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"eF" = (
+/obj/structure/showcase/machinery/cloning_pod,
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"eH" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"eM" = (
+/obj/structure/statue/gold/qm{
+ anchored = 1
+ },
+/turf/open/misc/dirt/station,
+/area/awaymission/museum/mothroachvoid)
+"eN" = (
+/obj/machinery/door/poddoor/shutters/window/indestructible{
+ dir = 4;
+ id = "nothing"
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"eO" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/spawner/random/entertainment/dice,
+/obj/structure/fluff/fake_camera{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"eP" = (
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"eQ" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"eR" = (
+/obj/structure/plaque/static_plaque/golden/commission/omega,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"eX" = (
+/obj/effect/turf_decal/siding/wideplating{
+ dir = 4
+ },
+/turf/open/floor/holofloor/beach/coast{
+ dir = 1
+ },
+/area/awaymission/museum)
+"fa" = (
+/obj/effect/turf_decal/sand/plating,
+/mob/living/basic/statue/mannequin{
+ held_item = /obj/item/pickaxe;
+ hat = /obj/item/clothing/suit/hooded/explorer
+ },
+/obj/effect/turf_decal/mining,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"fe" = (
+/turf/closed/indestructible/reinforced/titanium/nodiagonal,
+/area/awaymission/museum)
+"ff" = (
+/turf/open/floor/holofloor/beach/coast{
+ dir = 6
+ },
+/area/awaymission/museum/mothroachvoid)
+"fi" = (
+/obj/structure/table/wood,
+/obj/item/plate,
+/obj/item/kitchen/fork,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"fn" = (
+/turf/open/floor/holofloor/hyperspace/ns,
+/area/awaymission/museum)
+"fo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"fu" = (
+/obj/item/banhammer{
+ force = -200
+ },
+/turf/open/floor/bluespace,
+/area/awaymission/museum)
+"fy" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"fz" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/plate/large,
+/obj/item/food/little_hawaii_hotdog,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"fC" = (
+/obj/machinery/light/small/directional/west,
+/obj/structure/table/wood,
+/obj/item/language_manual/roundstart_species,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"fJ" = (
+/obj/structure/fluff/fake_camera{
+ dir = 10
+ },
+/turf/open/misc/beach/coast{
+ dir = 1
+ },
+/area/awaymission/museum)
+"fK" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/sign/painting{
+ pixel_y = 32;
+ persistence_id = "museumgate"
+ },
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"fT" = (
+/obj/structure/broken_flooring/corner/always_floorplane{
+ dir = 1
+ },
+/obj/structure/lattice,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"fW" = (
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"gf" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"gj" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"gm" = (
+/obj/structure/statue/gold/cmo{
+ anchored = 1
+ },
+/turf/open/floor/mineral/diamond,
+/area/awaymission/museum/mothroachvoid)
+"go" = (
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"gu" = (
+/obj/structure/flora/tree/palm/style_random,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"gA" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"gB" = (
+/obj/structure/table/wood,
+/obj/item/knife,
+/obj/item/kitchen/rollingpin,
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"gC" = (
+/obj/machinery/conveyor{
+ dir = 8
+ },
+/obj/machinery/light/small/dim/directional/south,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"gG" = (
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"gJ" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 8
+ },
+/obj/effect/spawner/random/vending/snackvend,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"gM" = (
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"gN" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/item/stack/rods/ten,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"gQ" = (
+/turf/open/mirage{
+ target_turf_y = 14
+ },
+/area/awaymission/museum)
+"gR" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance/eight,
+/obj/effect/spawner/random/maintenance/eight,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"gT" = (
+/obj/machinery/door/window/left/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"gW" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"hb" = (
+/turf/open/misc/beach/coast{
+ dir = 9
+ },
+/area/awaymission/museum/mothroachvoid)
+"hi" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"hj" = (
+/obj/structure/lattice/catwalk/mining,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"hk" = (
+/obj/effect/smooths_with_walls,
+/turf/open/mirage{
+ target_turf_y = -29;
+ dir = 1
+ },
+/area/awaymission/museum)
+"hl" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "gateway_waste"
+ },
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"hp" = (
+/mob/living/basic/mothroach/bar,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"ht" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/effect/spawner/random/vending/colavend,
+/obj/machinery/light/small/directional/west,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"hw" = (
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"hA" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/bench{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"hC" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("2005 - By the early 2000s, Nanotrasen had long observed the computer gaming industry since its inception during the 1980s, and in 2005 would finally make their own entry into the market via the Nanoplay: the world’s first game console with built-in internet connectivity capabilities, bringing the gamers of the world together.")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"hE" = (
+/obj/machinery/light/floor,
+/turf/open/floor/holofloor/hyperspace/ns,
+/area/awaymission/museum)
+"hM" = (
+/turf/closed/wall/rock/porous,
+/area/awaymission/museum)
+"hT" = (
+/mob/living/basic/statue/mannequin{
+ dir = 8;
+ name = "Dale Knox";
+ held_item = /obj/item/circuitboard
+ },
+/obj/structure/sign/flag/nanotrasen/directional/south,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"hV" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"hX" = (
+/obj/item/circuitboard{
+ icon_state = "flopdrive";
+ name = "microprocessor"
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"hY" = (
+/obj/effect/turf_decal/trimline/yellow/arrow_ccw{
+ dir = 6
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"il" = (
+/obj/structure/table/wood,
+/obj/item/clothing/suit/costume/judgerobe,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"im" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/light/directional/west,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ix" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "l";
+ pixel_x = -10
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "i"
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "e";
+ pixel_x = 12
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"iz" = (
+/obj/machinery/door/airlock/shuttle/glass,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 5
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/awaymission/museum)
+"iB" = (
+/obj/effect/spawner/random/engineering/canister,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/singular/always_floorplane,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"iD" = (
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"iE" = (
+/obj/structure/fluff/wallsign/directional/west{
+ name = "History of Nanotrasen"
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/light/warm/directional/west,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"iF" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/asteroid/line{
+ dir = 1
+ },
+/obj/machinery/button{
+ pixel_y = 32
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"iI" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/sign/painting{
+ pixel_y = 32;
+ persistence_id = "museumgate"
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"iK" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/siding{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/tram/plate,
+/area/awaymission/museum)
+"iN" = (
+/mob/living/basic/mothroach,
+/obj/structure/window/spawner/directional/west,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"iT" = (
+/obj/machinery/door/airlock/engineering,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/mapping_helpers/airlock/access/all/away/generic3,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"iU" = (
+/obj/machinery/telecomms/relay/preset/auto,
+/turf/open/floor/bluespace,
+/area/awaymission/museum)
+"iV" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/binoculars,
+/obj/item/clothing/mask/whistle,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"iW" = (
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"iZ" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/effect/step_trigger/thrower{
+ direction = 1;
+ facedir = 1;
+ tiles = 10;
+ mobs_only = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"jf" = (
+/mob/living/basic/mothroach,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"jm" = (
+/mob/living/basic/mothroach,
+/turf/open/misc/dirt/station,
+/area/awaymission/museum/mothroachvoid)
+"jn" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/awaymission/museum)
+"jo" = (
+/obj/effect/spawner/structure/window/hollow/directional{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"jt" = (
+/obj/structure/fluff/divine/conduit,
+/obj/structure/railing{
+ dir = 9
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"jy" = (
+/mob/living/basic/statue/mannequin{
+ dir = 8;
+ name = "Dale Knox";
+ held_item = /obj/item/circuitboard
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"jB" = (
+/obj/effect/spawner/structure/window,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"jF" = (
+/obj/machinery/suit_storage_unit/open,
+/obj/effect/turf_decal/box,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/iron/white/textured_large,
+/area/awaymission/museum)
+"jG" = (
+/turf/open/floor/carpet/cyan,
+/area/awaymission/museum/mothroachvoid)
+"jH" = (
+/obj/structure/fake_stairs/directional/west,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"jI" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"jL" = (
+/obj/structure/sink/kitchen/directional/west,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"jN" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"jP" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/structure/fluff/fake_camera{
+ dir = 9
+ },
+/obj/item/reagent_containers/cup/glass/coffee,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"jU" = (
+/obj/effect/landmark/transport/nav_beacon/tram/platform{
+ specific_transport_id = "museum_cargo";
+ platform_code = 2;
+ name = "Exhibit Loading Bay"
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"jV" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"jW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table,
+/obj/item/integrated_circuit/loaded/hello_world,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"kd" = (
+/mob/living/basic/mothroach,
+/obj/structure/chair/comfy{
+ dir = 1
+ },
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"ke" = (
+/obj/structure/statue/gold/hos{
+ anchored = 1
+ },
+/turf/open/floor/mineral/diamond,
+/area/awaymission/museum/mothroachvoid)
+"kg" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/effect/spawner/random/structure/crate,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"kh" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/light/small/directional/west,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"kq" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"kr" = (
+/obj/structure/table/wood,
+/obj/structure/window/spawner/directional/west,
+/obj/item/storage/box/fireworks,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"kw" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"kA" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/item/vending_refill/wardrobe/coroner_wardrobe,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"kO" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"kQ" = (
+/obj/structure/fluff/meteor,
+/turf/open/floor/holofloor/hyperspace/ns,
+/area/awaymission/museum)
+"kX" = (
+/obj/structure/girder/displaced,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth_half{
+ dir = 1
+ },
+/area/awaymission/museum)
+"kY" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/random/entertainment/money_medium,
+/obj/effect/spawner/random/entertainment/money_medium,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"la" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"lb" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"lf" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 9
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"lg" = (
+/mob/living/basic/mothroach,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"lh" = (
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/obj/structure/railing,
+/turf/open/floor/catwalk_floor,
+/area/awaymission/museum)
+"lk" = (
+/obj/effect/turf_decal/siding/wideplating{
+ dir = 4
+ },
+/turf/open/floor/holofloor/beach/coast,
+/area/awaymission/museum)
+"ll" = (
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ls" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/arcade/amputation{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"lz" = (
+/obj/effect/landmark/awaystart,
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"lB" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/siding{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/tram/plate,
+/area/awaymission/museum)
+"lC" = (
+/obj/structure/table,
+/obj/item/cigbutt/cigarbutt,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"lG" = (
+/mob/living/basic/mothroach,
+/obj/item/clothing/shoes/sandal/beach,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"lH" = (
+/obj/structure/plaque/static_plaque/golden/commission/uterus,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"lI" = (
+/obj/effect/smooths_with_walls,
+/turf/open/mirage{
+ target_turf_y = 29
+ },
+/area/awaymission/museum)
+"lM" = (
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"lS" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/clothing/beret_or_rabbitears,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"lT" = (
+/obj/structure/chair/office{
+ dir = 1
+ },
+/mob/living/basic/statue/mannequin{
+ hat = /obj/item/clothing/suit/toggle/labcoat/science;
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"lU" = (
+/obj/structure/plasticflaps,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"lV" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic/light,
+/obj/effect/landmark/transport/nav_beacon/tram/nav{
+ specific_transport_id = "museum_cargo"
+ },
+/obj/effect/landmark/transport/nav_beacon/tram/platform{
+ specific_transport_id = "museum_cargo";
+ platform_code = 1;
+ name = "Internal Loading Bay"
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"lZ" = (
+/obj/structure/plaque/static_plaque/golden/commission/cere,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"mg" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/item/reagent_containers/cup/soda_cans/air,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"mj" = (
+/turf/open/mirage{
+ range = 2;
+ target_turf_y = 4
+ },
+/area/awaymission/museum)
+"ml" = (
+/obj/structure/table/wood,
+/obj/item/food/hotcrossbun,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"mn" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"mA" = (
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/holofloor/beach/water,
+/area/awaymission/museum)
+"mC" = (
+/obj/structure/fluff/beach_umbrella,
+/turf/open/floor/carpet/cyan,
+/area/awaymission/museum/mothroachvoid)
+"mK" = (
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/awaymission/museum)
+"mN" = (
+/obj/structure/statue/sandstone/assistant,
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"mQ" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"mS" = (
+/mob/living/basic/statue/mannequin{
+ held_item = /obj/item/wrench;
+ hat = /obj/item/clothing/head/utility/hardhat;
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"mV" = (
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"mX" = (
+/obj/machinery/computer/arcade/battle{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"mZ" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/door/airlock/freezer{
+ req_access = list("bartender")
+ },
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"nb" = (
+/turf/open/misc/beach/coast/corner,
+/area/awaymission/museum/mothroachvoid)
+"nc" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/tram,
+/obj/machinery/transport/tram_controller{
+ configured_transport_id = "museum_cargo";
+ cover_locked = 0
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"ne" = (
+/obj/structure/fluff/preserved_borer,
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"nh" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 5
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"nl" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"nq" = (
+/obj/structure/table/wood,
+/obj/item/paper/fluff/jobs/security/court_judgement,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"nr" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"ns" = (
+/obj/machinery/light/small/directional/south,
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"nu" = (
+/obj/effect/decal/cleanable/glass/titanium,
+/mob/living/basic/mouse/rat,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"nv" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 5
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"nw" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/machinery/computer/terminal/museum{
+ dir = 8;
+ content = list("The so-called Hands Of God, loyal devotees of some illegal eldritch force. Their effect on the world weakened and crumbled as Nanotrasen loyal employees destroyed these so called Gods. Remember, only follow the faith of the chaplain and his regulated religions!")
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"nx" = (
+/obj/structure/chair/plastic{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"nz" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/fluff{
+ icon = 'icons/mob/simple/hivebot.dmi';
+ icon_state = "fab_robot";
+ name = "old plasma extractor"
+ },
+/turf/open/lava/plasma/mafia,
+/area/awaymission/museum)
+"nC" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"nD" = (
+/obj/structure/plaque/static_plaque/golden/commission/efficiency,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"nE" = (
+/obj/machinery/light/warm/dim/directional/north,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark/diagonal,
+/area/awaymission/museum)
+"nF" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/effect/step_trigger/thrower{
+ direction = 1;
+ facedir = 1;
+ tiles = 10;
+ mobs_only = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"nH" = (
+/obj/structure/fluff/minepost,
+/obj/effect/turf_decal/siding{
+ dir = 5
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"nJ" = (
+/obj/structure/fluff/divine/convertaltar,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"nQ" = (
+/obj/effect/spawner/random/vending/colavend,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"nS" = (
+/obj/effect/turf_decal/tile/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"nT" = (
+/obj/effect/mapping_helpers/bombable_wall,
+/turf/closed/indestructible/fakedoor/maintenance,
+/area/awaymission/museum)
+"nW" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/chair/sofa/bench/right{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"od" = (
+/obj/structure/fluff/fake_vent,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"oe" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/item/food/sandwich/cheese/grilled,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"of" = (
+/obj/effect/puzzle_poddoor_open{
+ icon = 'icons/effects/mapping_helpers.dmi';
+ id = "museum_secret";
+ queue_id = "museum_secret"
+ },
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"oo" = (
+/obj/machinery/iv_drip,
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"os" = (
+/obj/item/toy/beach_ball/branded,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"ot" = (
+/obj/structure/grille,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"ow" = (
+/obj/structure/girder/displaced,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ox" = (
+/obj/machinery/computer/terminal/museum{
+ dir = 8;
+ content = list("1998 - Dale Knox, the cofounder of Nanotrasen, would leave for health reasons.")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"oA" = (
+/obj/effect/turf_decal/siding/wideplating{
+ dir = 4
+ },
+/turf/open/floor/holofloor/beach/water,
+/area/awaymission/museum)
+"oC" = (
+/obj/structure/flora/coconuts,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"oI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/floor,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"oQ" = (
+/turf/open/floor/holofloor/beach/coast{
+ dir = 1
+ },
+/area/awaymission/museum)
+"oZ" = (
+/obj/effect/turf_decal/trimline/yellow/arrow_ccw{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"pb" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/sign/poster/official/pda_ad/directional/south,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"pc" = (
+/turf/open/floor/iron/dark/side{
+ dir = 6
+ },
+/area/awaymission/museum)
+"pf" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/gibs/body,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"pg" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 6
+ },
+/obj/structure/hedge/opaque,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"pi" = (
+/mob/living/basic/statue/mannequin{
+ hat = /obj/item/clothing/head/costume/nursehat;
+ held_item = /obj/item/clothing/neck/stethoscope
+ },
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"pp" = (
+/obj/structure/chair/stool/bar/directional/north,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"pt" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"pv" = (
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("Nanotrasen used to have much more volatile welding fuel mixtures because it was cheap. This backfired when a review revealed that infiltrators would use the fuel tanks to destroy bodies of their victims, leading to Nanotrasen developing a less unstable mixture months later.")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"pw" = (
+/obj/effect/spawner/random/vending/snackvend,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"pD" = (
+/obj/structure/broken_flooring/corner/always_floorplane/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/structure/crate_loot,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"pF" = (
+/obj/structure/hedge/opaque,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"pI" = (
+/obj/machinery/suit_storage_unit/open,
+/obj/machinery/light/small/dim/directional/east,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron/white/textured_large,
+/area/awaymission/museum)
+"pL" = (
+/obj/item/clothing/suit/costume/bronze,
+/turf/open/floor/bronze,
+/area/awaymission/museum)
+"pM" = (
+/obj/effect/spawner/random/engineering/canister,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"pX" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/maintenance/two,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/grenade/iedcasing/spawned,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"pY" = (
+/obj/item/pickaxe/drill/diamonddrill,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"qj" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"qo" = (
+/obj/effect/oneway{
+ dir = 8
+ },
+/turf/open/water/beach,
+/area/awaymission/museum/mothroachvoid)
+"qp" = (
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"qt" = (
+/obj/effect/spawner/random/food_or_drink/booze{
+ loot = list(/obj/item/reagent_containers/cup/glass/bottle/beer = 10, /obj/item/reagent_containers/cup/glass/bottle/ale = 10, /obj/item/reagent_containers/cup/glass/bottle/beer/light = 5, /obj/item/reagent_containers/cup/glass/bottle/maltliquor = 5, /obj/item/reagent_containers/cup/glass/bottle/whiskey = 5, /obj/item/reagent_containers/cup/glass/bottle/gin = 5, /obj/item/reagent_containers/cup/glass/bottle/vodka = 5, /obj/item/reagent_containers/cup/glass/bottle/tequila = 5, /obj/item/reagent_containers/cup/glass/bottle/rum = 5, /obj/item/reagent_containers/cup/glass/bottle/vermouth = 5, /obj/item/reagent_containers/cup/glass/bottle/cognac = 5, /obj/item/reagent_containers/cup/glass/bottle/wine = 5, /obj/item/reagent_containers/cup/glass/bottle/kahlua = 5, /obj/item/reagent_containers/cup/glass/bottle/amaretto = 5, /obj/item/reagent_containers/cup/glass/bottle/hcider = 5, /obj/item/reagent_containers/cup/glass/bottle/absinthe = 5, /obj/item/reagent_containers/cup/glass/bottle/sake = 5, /obj/item/reagent_containers/cup/glass/bottle/grappa = 5, /obj/item/reagent_containers/cup/glass/bottle/applejack = 5, /obj/item/reagent_containers/cup/glass/bottle/wine_voltaic = 5, /obj/item/reagent_containers/cup/bottle/ethanol = 2, /obj/item/reagent_containers/cup/glass/bottle/fernet = 2, /obj/item/reagent_containers/cup/glass/bottle/champagne = 2, /obj/item/reagent_containers/cup/glass/bottle/absinthe/premium = 2, /obj/item/reagent_containers/cup/glass/bottle/goldschlager = 2, /obj/item/reagent_containers/cup/glass/bottle/patron = 1, /obj/item/reagent_containers/cup/glass/bottle/kong = 1, /obj/item/reagent_containers/cup/glass/bottle/lizardwine = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka = 1, /obj/item/reagent_containers/cup/glass/bottle/trappist = 1);
+ spawn_random_offset = 2
+ },
+/turf/open/floor/carpet/cyan,
+/area/awaymission/museum/mothroachvoid)
+"qw" = (
+/obj/item/flashlight/flare{
+ start_on = 1;
+ icon_state = "flare-on"
+ },
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"qx" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/fuel_pool/hivis,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"qA" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"qJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"qL" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"qM" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"qP" = (
+/obj/structure/plaque/static_plaque/golden/commission/pubby,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"qQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"qR" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench/right{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"qS" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"qU" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/decal/cleanable/fuel_pool/hivis,
+/obj/effect/turf_decal/delivery/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"qX" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/fluff/fake_camera,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"qY" = (
+/obj/machinery/power/shuttle_engine/heater{
+ dir = 4;
+ opacity = 1
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"rc" = (
+/obj/machinery/light/small/directional/east,
+/obj/structure/girder/displaced,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"re" = (
+/turf/cordon/secret,
+/area/awaymission/museum)
+"rm" = (
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ro" = (
+/obj/structure/railing,
+/turf/open/floor/holofloor/asteroid{
+ icon_state = "asteroid3"
+ },
+/area/awaymission/museum)
+"rp" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"rq" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/gibspawner/human,
+/obj/effect/gibspawner/human,
+/obj/effect/gibspawner/human,
+/obj/effect/gibspawner/human,
+/mob/living/basic/statue/mannequin/suspicious,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"rr" = (
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"rA" = (
+/obj/structure/chair/comfy/beige{
+ dir = 8
+ },
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"rB" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/machinery/light/floor,
+/turf/open/chasm,
+/area/awaymission/museum)
+"rJ" = (
+/obj/structure/broken_flooring/side/always_floorplane{
+ dir = 2
+ },
+/obj/structure/lattice,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"rL" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/holosign/barrier/engineering,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"rO" = (
+/obj/effect/spawner/random/trash/mess,
+/obj/effect/turf_decal/siding/red,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"rP" = (
+/obj/item/clothing/mask/gas/clown_hat,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"rQ" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/railing/corner/end,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"rU" = (
+/mob/living/basic/statue/mannequin{
+ dir = 4;
+ held_item = /obj/item/wrench;
+ name = "Michael Trasen"
+ },
+/obj/structure/sign/flag/nanotrasen/directional/south,
+/obj/machinery/light/small/dim/directional/west,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"rW" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/table/reinforced,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/effect/spawner/random/entertainment/toy_figure,
+/obj/effect/spawner/random/entertainment/toy_figure,
+/obj/structure/desk_bell,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"rX" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"rY" = (
+/obj/machinery/light/small/broken/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/basic/mouse/rat,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"sd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/office,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"sh" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/filingcabinet/chestdrawer,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"sj" = (
+/mob/living/basic/statue{
+ sentience_type = 2
+ },
+/turf/open/floor/black,
+/area/awaymission/museum)
+"sm" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/white,
+/area/awaymission/museum)
+"sp" = (
+/obj/machinery/door/window/left/directional/west,
+/obj/machinery/light/warm/directional/south,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"sq" = (
+/obj/structure/plaque/static_plaque/golden/commission/delta,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"st" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"sy" = (
+/obj/structure/railing/corner,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/fake_camera,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"sz" = (
+/obj/effect/decal/cleanable/glass/titanium,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"sA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/gift{
+ contains_type = /mob/living/basic/pet/cat/feral
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"sC" = (
+/obj/item/toy/figure/dsquad,
+/obj/item/toy/figure/dsquad{
+ pixel_x = -9
+ },
+/obj/item/toy/figure/dsquad{
+ pixel_x = 9
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/holofloor/beach/coast,
+/area/awaymission/museum)
+"sD" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"sE" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "museum_secret"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"sG" = (
+/obj/effect/turf_decal/tile/green,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"sN" = (
+/obj/effect/mine/explosive,
+/obj/item/food/cake/berry_chocolate_cake,
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"sX" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/machinery/light/warm/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"tc" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/structure/chair,
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"tf" = (
+/obj/item/instrument/musicalmoth,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"th" = (
+/obj/structure/flora/rock/icy/style_random,
+/obj/effect/turf_decal/siding{
+ dir = 4
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"tj" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/asteroid/line{
+ dir = 1
+ },
+/mob/living/basic/statue/mannequin{
+ dir = 1;
+ hat = /obj/item/clothing/head/utility/hardhat;
+ held_item = /obj/item/wrench
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"tk" = (
+/obj/structure/plaque/static_plaque/golden/commission/northstar,
+/turf/open/floor/mineral/gold,
+/area/awaymission/museum)
+"tl" = (
+/obj/item/food/cake/mothmallow,
+/obj/structure/table,
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"tq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"ts" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"tt" = (
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"tv" = (
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/obj/structure/railing,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"tx" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/food_or_drink/booze{
+ loot = list(/obj/item/reagent_containers/cup/glass/bottle/beer = 10, /obj/item/reagent_containers/cup/glass/bottle/ale = 10, /obj/item/reagent_containers/cup/glass/bottle/beer/light = 5, /obj/item/reagent_containers/cup/glass/bottle/maltliquor = 5, /obj/item/reagent_containers/cup/glass/bottle/whiskey = 5, /obj/item/reagent_containers/cup/glass/bottle/gin = 5, /obj/item/reagent_containers/cup/glass/bottle/vodka = 5, /obj/item/reagent_containers/cup/glass/bottle/tequila = 5, /obj/item/reagent_containers/cup/glass/bottle/rum = 5, /obj/item/reagent_containers/cup/glass/bottle/vermouth = 5, /obj/item/reagent_containers/cup/glass/bottle/cognac = 5, /obj/item/reagent_containers/cup/glass/bottle/wine = 5, /obj/item/reagent_containers/cup/glass/bottle/kahlua = 5, /obj/item/reagent_containers/cup/glass/bottle/amaretto = 5, /obj/item/reagent_containers/cup/glass/bottle/hcider = 5, /obj/item/reagent_containers/cup/glass/bottle/absinthe = 5, /obj/item/reagent_containers/cup/glass/bottle/sake = 5, /obj/item/reagent_containers/cup/glass/bottle/grappa = 5, /obj/item/reagent_containers/cup/glass/bottle/applejack = 5, /obj/item/reagent_containers/cup/glass/bottle/wine_voltaic = 5, /obj/item/reagent_containers/cup/bottle/ethanol = 2, /obj/item/reagent_containers/cup/glass/bottle/fernet = 2, /obj/item/reagent_containers/cup/glass/bottle/champagne = 2, /obj/item/reagent_containers/cup/glass/bottle/absinthe/premium = 2, /obj/item/reagent_containers/cup/glass/bottle/goldschlager = 2, /obj/item/reagent_containers/cup/glass/bottle/patron = 1, /obj/item/reagent_containers/cup/glass/bottle/kong = 1, /obj/item/reagent_containers/cup/glass/bottle/lizardwine = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka = 1, /obj/item/reagent_containers/cup/glass/bottle/trappist = 1);
+ spawn_random_offset = 2
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"ty" = (
+/obj/structure/table,
+/obj/item/clothing/gloves/color/yellow{
+ siemens_coefficient = 10;
+ name = "fake stungloves";
+ desc = "A crude replica of stungloves. Essentially gloves wrapped with wire. Extremely unsafe."
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"tB" = (
+/obj/effect/turf_decal/siding/thinplating_new,
+/turf/open/chasm,
+/area/awaymission/museum)
+"tC" = (
+/obj/structure/sign/departments/lawyer/directional/south,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"tD" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"tG" = (
+/obj/structure/barricade/wooden/crude,
+/turf/closed/indestructible/fakedoor,
+/area/awaymission/museum)
+"tI" = (
+/obj/effect/turf_decal/siding{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/holofloor/asteroid{
+ icon_state = "asteroid5"
+ },
+/area/awaymission/museum)
+"tK" = (
+/obj/structure/sign/warning,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"tM" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/contraband/cannabis,
+/obj/effect/spawner/random/contraband/cannabis,
+/obj/effect/spawner/random/contraband/cannabis,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"tN" = (
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/tram/plate,
+/area/awaymission/museum)
+"tS" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/closet/crate/bin,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"tU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"uc" = (
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/awaymission/museum)
+"ud" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/middle,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ue" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/machinery/light/small/dim/directional/north,
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"uf" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ul" = (
+/obj/effect/oneway{
+ dir = 8
+ },
+/turf/open/floor/holofloor/beach/coast{
+ dir = 2
+ },
+/area/awaymission/museum/mothroachvoid)
+"up" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/door/airlock/wood{
+ name = "Bathroom"
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"uu" = (
+/obj/structure/rack,
+/obj/effect/spawner/random/engineering/material,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"uE" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"uM" = (
+/obj/structure/fluff/fake_camera{
+ dir = 10
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"uN" = (
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"uR" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/dim/directional/east,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"uT" = (
+/obj/effect/spawner/structure/window/reinforced/shuttle/indestructible,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"uY" = (
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"vb" = (
+/obj/structure/grille/indestructible,
+/obj/effect/decal/cleanable/fuel_pool/hivis,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"vc" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/sign/painting/large{
+ persistence_id = "museumgate_big";
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ve" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/holosign/barrier/engineering,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"vg" = (
+/obj/structure/puzzle_blockade/oneway{
+ dir = 8
+ },
+/obj/structure/broken_flooring/side/always_floorplane/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"vh" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/item/reagent_containers/cup/soda_cans/sol_dry,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"vj" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table,
+/obj/item/phone,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"vp" = (
+/obj/structure/girder/displaced,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"vs" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/holosign/barrier/engineering,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"vw" = (
+/obj/structure/window/bronze/spawner/directional/south,
+/obj/structure/window/bronze/spawner/directional/west,
+/obj/structure/window/bronze/spawner/directional/north,
+/obj/structure/grille,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"vx" = (
+/obj/structure/sign/poster/random/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"vy" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"vC" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/chair/plastic,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"vE" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 5
+ },
+/obj/structure/filingcabinet,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"vM" = (
+/mob/living/basic/statue/mannequin{
+ dir = 1;
+ hat = /obj/item/clothing/suit/costume/bronze
+ },
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/bronze,
+/area/awaymission/museum)
+"vO" = (
+/turf/open/floor/iron/stairs/left{
+ dir = 4
+ },
+/area/awaymission/museum)
+"vU" = (
+/obj/machinery/door/airlock/wood{
+ name = "Dance Room"
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"vZ" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"wh" = (
+/obj/structure/broken_flooring/corner/always_floorplane/directional/west,
+/obj/structure/lattice,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"wi" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 8;
+ id = "nothing"
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"wk" = (
+/obj/machinery/vending/dinnerware,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"wy" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"wA" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"wC" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wideplating{
+ dir = 1
+ },
+/turf/open/floor/iron/dark/diagonal,
+/area/awaymission/museum)
+"wE" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 6
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"wG" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/obj/structure/broken_flooring/corner/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"wH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"wI" = (
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/awaymission/museum)
+"wJ" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/fluff/dnamod,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"wL" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"wN" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/structure/sign/painting/large{
+ persistence_id = "museumgate_big";
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"wO" = (
+/obj/item/kirbyplants/random,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"wZ" = (
+/turf/open/misc/beach/coast{
+ dir = 1
+ },
+/area/awaymission/museum/mothroachvoid)
+"xb" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench/left{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"xc" = (
+/obj/structure/falsewall/reinforced,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"xd" = (
+/obj/structure/table/reinforced,
+/obj/structure/window/spawner/directional/west,
+/obj/effect/spawner/random/bureaucracy/paper{
+ spawn_random_offset = 7;
+ spawn_loot_count = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"xf" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/sign/poster/official/random/directional/south,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"xg" = (
+/obj/structure/table/reinforced,
+/obj/item/circuitboard{
+ icon_state = "bluespacearray";
+ name = "fancy replica tech"
+ },
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"xj" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/turf/open/floor/holofloor/asteroid{
+ icon_state = "asteroid3"
+ },
+/area/awaymission/museum)
+"xm" = (
+/turf/open/floor/holofloor/beach/coast{
+ dir = 2
+ },
+/area/awaymission/museum/mothroachvoid)
+"xn" = (
+/obj/effect/oneway{
+ dir = 8
+ },
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"xr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/freezer/food,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"xt" = (
+/obj/item/kirbyplants/random,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"xu" = (
+/turf/closed/indestructible/rock,
+/area/awaymission/museum/mothroachvoid)
+"xv" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"xx" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"xB" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/lamp{
+ start_on = 0
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"xD" = (
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/fluff/balloon_nuke,
+/turf/open/floor/holofloor/beach,
+/area/awaymission/museum)
+"xE" = (
+/turf/open/floor/mineral/gold,
+/area/awaymission/museum/mothroachvoid)
+"xF" = (
+/mob/living/basic/statue/mannequin{
+ dir = 1;
+ held_item = /obj/item/weldingtool
+ },
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"xI" = (
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"xJ" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/computer/terminal/museum{
+ dir = 1;
+ content = list("1995 - By the early 90s, as computers became smaller and technology more compact, Trasen-Knox saw the need to create more of a recognisable brand. They would officially change their name to Nanotrasen in 1995, and the name would stick for the company.")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"xP" = (
+/obj/structure/closet/crate/cardboard,
+/obj/item/storage/toolbox/artistic,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"xR" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"xT" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/storage/box/party_poppers,
+/obj/structure/table/wood,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"ya" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/plate,
+/obj/item/food/kebab/fiesta,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"yf" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/machinery/light/small/directional/north,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"yi" = (
+/obj/structure/chair/comfy/beige{
+ dir = 1
+ },
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"yl" = (
+/turf/open/lava/plasma/mafia,
+/area/awaymission/museum)
+"yn" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"yo" = (
+/obj/machinery/conveyor/inverted{
+ dir = 10
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"yq" = (
+/obj/structure/fluff/meteor/large,
+/turf/open/floor/holofloor/hyperspace/ns,
+/area/awaymission/museum)
+"yr" = (
+/obj/structure/chair/comfy,
+/obj/effect/mapping_helpers/mob_buckler,
+/mob/living/basic/mothroach,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"yu" = (
+/turf/open/floor/catwalk_floor/iron_dark,
+/area/awaymission/museum)
+"yw" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"yx" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"yA" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"yE" = (
+/obj/item/pickaxe/diamond,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"yF" = (
+/obj/machinery/light/small/broken/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"yG" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/machinery/button/door/directional/east{
+ id = "gateway_waste"
+ },
+/obj/structure/railing,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"yK" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/structure/fluff/fokoff_sign,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"yM" = (
+/obj/machinery/door/poddoor{
+ id = "gatewayfake"
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"yN" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/computer/terminal/museum{
+ dir = 8;
+ content = list("Galaxywise Shipyards (Field: General Aerospace) - Much of Nanotrasen's strength as a megacorporation comes from their ability to practice what is essentially autarky- the production of all required goods from raw material to finalised item, with little to no reliance on external companies or factors. To this end, Galaxywise is critical to Nanotrasen's practice of autarky- from their orbital shipyards above Adasta, Nanotrasen is able to produce a wide range of important vessels, from small single-man scouting vessels to large-scale freighters and everything inbetween. Unfortunately for Nanotrasen, however, their autarky chain is broken by limitations imposed by TerraGov stating that only licensed corporations are capable of producing heavily armed vessels (the Merchant Marine Act states that any vessel capable of bearing armaments in excess of Class 2, the highest legal civilian grade, may be produced by licensed companies only)- a license Galaxywise has been unable to secure due to politicking by corporate rivals at the senate. ")
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"yS" = (
+/turf/closed/wall/space,
+/area/awaymission/museum)
+"zc" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/stripes,
+/obj/structure/fluff/fake_camera{
+ dir = 8
+ },
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"zd" = (
+/obj/effect/landmark/awaystart,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"zg" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 6
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"zh" = (
+/obj/machinery/conveyor{
+ dir = 9
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"zr" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"zz" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/girder/bronze,
+/turf/open/floor/bronze/flat,
+/area/awaymission/museum)
+"zA" = (
+/obj/effect/mapping_helpers/ztrait_injector/museum,
+/turf/open/floor/bluespace,
+/area/awaymission/museum)
+"zC" = (
+/obj/machinery/vending/boozeomat/all_access,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"zE" = (
+/turf/closed/indestructible/rock,
+/area/awaymission/museum)
+"zG" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/red,
+/mob/living/basic/statue/mannequin{
+ dir = 8;
+ hat = /obj/item/clothing/head/fedora
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"zI" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/window/bronze/spawner/directional/north,
+/obj/machinery/computer/terminal/museum{
+ pixel_y = -6;
+ content = list("Ratvar was once a powerful entity competing with the likes of Nar-Sie. It resided on a plane known as “Reebee” or the “City of cogs.” Supposedly, it was a clockwork city made of brass in which its cultists could enter once they had realized its power. However, this plane was also Ratvar’s prison from which it yearned to escape. While Reebee is gone, it is assumed that other structures such as temples or engines of the cult's creation still exist although it is unknown if they still have the power once bestowed to them by Ratvar. The fall of Reebe was an event in which Reebe, Ratvar, and all of its cultists were struck down by Nanotrasen. The cult was preparing Reebe for the freeing of Ratvar where the Veil was weak. Outpost 17, a small nanotrasen asteroid mining station was the target. Brave crewmembers managed to slip through the cracks in the veil and into the heart of Reebe with a bluespace artillery beacon in tow. With a desperate plea being sent out to a nearby security outpost, Reebe was obliterated along with the crewmembers of Outpost 17.")
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"zK" = (
+/obj/machinery/computer/arcade/battle{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"zL" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table,
+/obj/item/stamp/denied{
+ pixel_y = 12
+ },
+/obj/item/stamp/granted{
+ pixel_y = 12;
+ pixel_x = 8
+ },
+/obj/effect/spawner/random/bureaucracy/paper{
+ spawn_random_offset = 12;
+ spawn_scatter_radius = 1;
+ spawn_loot_count = 8
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"zM" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/structure/broken_flooring/side/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"zR" = (
+/obj/structure/statue/gold/hop{
+ anchored = 1
+ },
+/turf/open/floor/mineral/diamond,
+/area/awaymission/museum/mothroachvoid)
+"zU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/generic,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"zX" = (
+/obj/machinery/door/poddoor/shutters/preopen,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"zY" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/machinery/light/warm/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Ab" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/glass/titanium,
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/structure/fluff/fake_vent,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"Ag" = (
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"Ah" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/tram/alt/titanium,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Ai" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/obj/machinery/door/window/elevator/left/directional/south{
+ transport_linked_id = "museum_cargo"
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Ak" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/chair/sofa/bench/right{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Am" = (
+/obj/structure/window/spawner/directional/west,
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/awaymission/museum)
+"Aq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/sign/poster/random/directional/east,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"Ar" = (
+/turf/open/water/beach,
+/area/awaymission/museum/mothroachvoid)
+"As" = (
+/mob/living/basic/statue/mannequin{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/effect/turf_decal/trimline/yellow/corner,
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"At" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Ay" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 1
+ },
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"AC" = (
+/obj/machinery/door/airlock/shuttle/glass,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 9
+ },
+/turf/open/floor/mineral/plastitanium,
+/area/awaymission/museum)
+"AE" = (
+/obj/structure/fluff/divine/powerpylon,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"AG" = (
+/obj/machinery/oven,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"AI" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/machinery/light/small/dim/directional/east,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"AM" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = -30
+ },
+/turf/open/mirage{
+ target_turf_y = -29;
+ dir = 1
+ },
+/area/awaymission/museum)
+"AP" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"AR" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/grille/broken,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"AS" = (
+/obj/effect/smooths_with_walls,
+/turf/open/mirage{
+ dir = 1;
+ target_turf_x = -9
+ },
+/area/awaymission/museum)
+"AY" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/machinery/door/airlock/grunge{
+ name = "Souvenir Shop"
+ },
+/obj/effect/turf_decal/siding/green,
+/obj/effect/mapping_helpers/airlock/access/all/away/generic3,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"AZ" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/machinery/light/warm/directional/south,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Be" = (
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Bj" = (
+/obj/structure/closet/lawcloset,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Bo" = (
+/obj/machinery/jukebox,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Bq" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/machinery/light/warm/directional/east,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Bu" = (
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 1
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"BF" = (
+/turf/open/misc/beach/coast{
+ dir = 6
+ },
+/area/awaymission/museum/mothroachvoid)
+"BK" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"BO" = (
+/obj/structure/sign/poster/random/directional/south,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"BQ" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"BX" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Cb" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Cc" = (
+/obj/structure/hedge/opaque,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Cd" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = 14
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Cf" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/effect/spawner/random/bureaucracy/crayon{
+ spawn_loot_count = 5;
+ spawn_random_offset = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Ci" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/clothing/mask/party_horn,
+/obj/item/clothing/mask/party_horn,
+/obj/structure/table/wood,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Cj" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Co" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Cq" = (
+/obj/structure/statue/gold/rd{
+ anchored = 1
+ },
+/turf/open/floor/mineral/diamond,
+/area/awaymission/museum/mothroachvoid)
+"Cu" = (
+/turf/open/misc/beach/coast{
+ dir = 10
+ },
+/area/awaymission/museum/mothroachvoid)
+"Cy" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/food_or_drink/booze{
+ loot = list(/obj/item/reagent_containers/cup/glass/bottle/beer = 10, /obj/item/reagent_containers/cup/glass/bottle/ale = 10, /obj/item/reagent_containers/cup/glass/bottle/beer/light = 5, /obj/item/reagent_containers/cup/glass/bottle/maltliquor = 5, /obj/item/reagent_containers/cup/glass/bottle/whiskey = 5, /obj/item/reagent_containers/cup/glass/bottle/gin = 5, /obj/item/reagent_containers/cup/glass/bottle/vodka = 5, /obj/item/reagent_containers/cup/glass/bottle/tequila = 5, /obj/item/reagent_containers/cup/glass/bottle/rum = 5, /obj/item/reagent_containers/cup/glass/bottle/vermouth = 5, /obj/item/reagent_containers/cup/glass/bottle/cognac = 5, /obj/item/reagent_containers/cup/glass/bottle/wine = 5, /obj/item/reagent_containers/cup/glass/bottle/kahlua = 5, /obj/item/reagent_containers/cup/glass/bottle/amaretto = 5, /obj/item/reagent_containers/cup/glass/bottle/hcider = 5, /obj/item/reagent_containers/cup/glass/bottle/absinthe = 5, /obj/item/reagent_containers/cup/glass/bottle/sake = 5, /obj/item/reagent_containers/cup/glass/bottle/grappa = 5, /obj/item/reagent_containers/cup/glass/bottle/applejack = 5, /obj/item/reagent_containers/cup/glass/bottle/wine_voltaic = 5, /obj/item/reagent_containers/cup/bottle/ethanol = 2, /obj/item/reagent_containers/cup/glass/bottle/fernet = 2, /obj/item/reagent_containers/cup/glass/bottle/champagne = 2, /obj/item/reagent_containers/cup/glass/bottle/absinthe/premium = 2, /obj/item/reagent_containers/cup/glass/bottle/goldschlager = 2, /obj/item/reagent_containers/cup/glass/bottle/patron = 1, /obj/item/reagent_containers/cup/glass/bottle/kong = 1, /obj/item/reagent_containers/cup/glass/bottle/lizardwine = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka = 1, /obj/item/reagent_containers/cup/glass/bottle/trappist = 1);
+ spawn_random_offset = 2;
+ spawn_loot_count = 2
+ },
+/obj/machinery/light/warm/directional/west,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"CB" = (
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"CC" = (
+/obj/effect/turf_decal/siding/wideplating,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"CD" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/fluff/wallsign/directional/west{
+ name = "Exit";
+ dir = 2
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"CF" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "nothing"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"CI" = (
+/obj/effect/turf_decal/caution,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"CK" = (
+/obj/item/bedsheet/medical,
+/obj/structure/bed,
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"CL" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"CT" = (
+/mob/living/basic/mothroach,
+/mob/living/basic/mothroach,
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"CV" = (
+/obj/structure/sink/directional/south,
+/obj/structure/mirror/directional/north{
+ pixel_y = 32
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"CW" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/fluff/fake_camera{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"De" = (
+/obj/effect/oneway{
+ dir = 8
+ },
+/turf/open/misc/beach/coast{
+ dir = 1
+ },
+/area/awaymission/museum/mothroachvoid)
+"Dk" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"Dl" = (
+/turf/open/misc/beach/coast/corner{
+ dir = 4
+ },
+/area/awaymission/museum/mothroachvoid)
+"Dr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/fake_scrubber,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"Du" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/insectguts,
+/obj/structure/closet/crate/preopen,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Dx" = (
+/obj/effect/mine/sound,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"DA" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"DD" = (
+/turf/open/floor/bluespace,
+/area/awaymission/museum)
+"DE" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/fluff/fake_camera{
+ dir = 10
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"DI" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner,
+/obj/structure/chair/sofa/bench/right{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"DL" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"DS" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/spawner/random/structure/girder,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"DT" = (
+/obj/structure/broken_flooring/side/always_floorplane/directional/south,
+/turf/open/floor/black,
+/area/awaymission/museum)
+"DU" = (
+/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"DV" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 9
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"DY" = (
+/turf/closed/indestructible/reinforced/titanium,
+/area/awaymission/museum)
+"Ea" = (
+/obj/machinery/light/small/broken/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Ec" = (
+/mob/living/basic/mothroach,
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"Ef" = (
+/obj/machinery/computer/old{
+ name = "replica computer";
+ dir = 4;
+ icon_keyboard = "rd_key";
+ icon_screen = "rdcomp"
+ },
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"Ek" = (
+/obj/structure/table/wood,
+/obj/structure/window/spawner/directional/east,
+/obj/item/plate,
+/obj/item/kitchen/fork,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"El" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4
+ },
+/obj/structure/fluff/wallsign/directional/south{
+ dir = 4;
+ name = "Oddities"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Eo" = (
+/mob/living/basic/statue/mannequin{
+ held_item = /obj/item/wrench;
+ hat = /obj/item/clothing/head/utility/hardhat
+ },
+/obj/machinery/light/directional/north,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Er" = (
+/obj/structure/chair/comfy/beige,
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/obj/machinery/light/warm/directional/west,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"EA" = (
+/obj/machinery/door/airlock/shuttle/glass,
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"ED" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/obj/machinery/light/floor,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"EE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/secure/freezer,
+/obj/item/food/pizza/flatbread/fish,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"EG" = (
+/obj/item/flashlight/flare{
+ start_on = 1;
+ icon_state = "flare-on";
+ light_range = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"EK" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"EM" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/food_or_drink/booze{
+ loot = list(/obj/item/reagent_containers/cup/glass/bottle/beer = 10, /obj/item/reagent_containers/cup/glass/bottle/ale = 10, /obj/item/reagent_containers/cup/glass/bottle/beer/light = 5, /obj/item/reagent_containers/cup/glass/bottle/maltliquor = 5, /obj/item/reagent_containers/cup/glass/bottle/whiskey = 5, /obj/item/reagent_containers/cup/glass/bottle/gin = 5, /obj/item/reagent_containers/cup/glass/bottle/vodka = 5, /obj/item/reagent_containers/cup/glass/bottle/tequila = 5, /obj/item/reagent_containers/cup/glass/bottle/rum = 5, /obj/item/reagent_containers/cup/glass/bottle/vermouth = 5, /obj/item/reagent_containers/cup/glass/bottle/cognac = 5, /obj/item/reagent_containers/cup/glass/bottle/wine = 5, /obj/item/reagent_containers/cup/glass/bottle/kahlua = 5, /obj/item/reagent_containers/cup/glass/bottle/amaretto = 5, /obj/item/reagent_containers/cup/glass/bottle/hcider = 5, /obj/item/reagent_containers/cup/glass/bottle/absinthe = 5, /obj/item/reagent_containers/cup/glass/bottle/sake = 5, /obj/item/reagent_containers/cup/glass/bottle/grappa = 5, /obj/item/reagent_containers/cup/glass/bottle/applejack = 5, /obj/item/reagent_containers/cup/glass/bottle/wine_voltaic = 5, /obj/item/reagent_containers/cup/bottle/ethanol = 2, /obj/item/reagent_containers/cup/glass/bottle/fernet = 2, /obj/item/reagent_containers/cup/glass/bottle/champagne = 2, /obj/item/reagent_containers/cup/glass/bottle/absinthe/premium = 2, /obj/item/reagent_containers/cup/glass/bottle/goldschlager = 2, /obj/item/reagent_containers/cup/glass/bottle/patron = 1, /obj/item/reagent_containers/cup/glass/bottle/kong = 1, /obj/item/reagent_containers/cup/glass/bottle/lizardwine = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka = 1, /obj/item/reagent_containers/cup/glass/bottle/trappist = 1);
+ spawn_random_offset = 2;
+ spawn_loot_count = 2
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"EO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"EQ" = (
+/obj/item/circuitboard{
+ icon_state = "secmodschematic"
+ },
+/obj/item/screwdriver,
+/obj/structure/table/reinforced,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"ET" = (
+/obj/structure/chair/stool/directional/north,
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 1
+ },
+/mob/living/basic/statue/mannequin{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"EU" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 4
+ },
+/obj/structure/fluff/wallsign/directional/north{
+ dir = 4;
+ name = "Oddities"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"EX" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"EY" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner,
+/obj/item/kirbyplants/random,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Fa" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Fc" = (
+/obj/item/food/sandwich/cheese,
+/turf/open/floor/carpet/cyan,
+/area/awaymission/museum/mothroachvoid)
+"Fg" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Fh" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/closet/crate/bin,
+/obj/structure/sign/departments/restroom/directional/west,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Fi" = (
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"Fj" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Fq" = (
+/obj/machinery/light/warm/directional/north,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Fr" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing/corner/end{
+ dir = 4
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Fv" = (
+/obj/effect/smooths_with_walls,
+/turf/open/mirage{
+ target_turf_y = -19
+ },
+/area/awaymission/museum)
+"Fw" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ should_dry = 0;
+ name = "replica blood"
+ },
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"FA" = (
+/obj/structure/table/reinforced,
+/obj/item/circuitboard{
+ icon_state = "printer";
+ name = "fancy replica tech"
+ },
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"FD" = (
+/obj/structure/girder,
+/obj/structure/grille,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"FE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"FG" = (
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"FH" = (
+/obj/structure/plaque/static_plaque/golden/commission/box,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"FJ" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/turf_decal/stripes/red/line,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"FK" = (
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"FM" = (
+/obj/structure/sign/departments/restroom/directional/south,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Gh" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 10
+ },
+/obj/machinery/light/floor,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Gi" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/closet/crate/miningcar,
+/turf/open/floor/tram/plate,
+/area/awaymission/museum)
+"Gv" = (
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "l";
+ pixel_x = -10
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "i"
+ },
+/obj/effect/decal/cleanable/crayon{
+ icon_state = "e";
+ pixel_x = 12
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"Gx" = (
+/obj/machinery/vending/coffee,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"GE" = (
+/obj/structure/plaque/static_plaque/golden/commission/meta,
+/turf/open/floor/mineral/gold,
+/area/awaymission/museum)
+"GG" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/mob/living/basic/statue/mannequin{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"GO" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/plate/large,
+/obj/item/food/kurry_ok_subsando,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"GQ" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/middle{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"GS" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"GT" = (
+/obj/structure/table/wood,
+/obj/structure/window/spawner/directional/north,
+/obj/structure/window/spawner/directional/west,
+/obj/item/book/manual/wiki/security_space_law,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"GU" = (
+/mob/living/basic/mothroach,
+/turf/open/water/beach,
+/area/awaymission/museum/mothroachvoid)
+"GV" = (
+/obj/structure/plaque/static_plaque/golden/commission/disc,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"GY" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/structure/fluff/fake_camera{
+ dir = 9
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Hf" = (
+/obj/structure/table/wood,
+/obj/item/language_manual/roundstart_species,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Hi" = (
+/obj/structure/fluff/fake_scrubber,
+/turf/open/floor/mineral/titanium/white,
+/area/awaymission/museum)
+"Hj" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench/left{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Hk" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/corner/always_floorplane,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Hn" = (
+/mob/living/basic/statue/mannequin{
+ hat = /obj/item/clothing/head/costume/kitty;
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/effect/turf_decal/trimline/yellow/corner{
+ dir = 4
+ },
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"Ho" = (
+/obj/structure/fluff/divine/powerpylon,
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"Hs" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 4;
+ id = "nothing"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Hw" = (
+/obj/machinery/computer/terminal/museum{
+ content = list("Early 1970s, 1978 - With the introduction of the microprocessor in the early 1970s, the world of computers became accessible to the masses via the introduction of the personal computer. Seizing on the opportunity to expand their horizons, Trasen-Knox would introduce their first personal computer, the TKC Personal Computer, in 1978, becoming a household name as well as the favourite computer producer of scientific groups in North America.")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"HA" = (
+/obj/machinery/status_display/random_message{
+ firstline_to_secondline = list("NO" = "LITTERING","YOU ARE" = "BEING WATCHED", "DO NOT TOUCH" = "THE EXHIBITS")
+ },
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"HD" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 8;
+ id = "nothing"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"HE" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/showcase/perfect_employee,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"HJ" = (
+/obj/structure/hedge/opaque,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"HL" = (
+/obj/structure/table/reinforced,
+/obj/item/toy/beach_ball/branded{
+ pixel_y = 10
+ },
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/machinery/light/directional/north,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"HP" = (
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"HU" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"HY" = (
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Ic" = (
+/obj/machinery/light/warm/dim/directional/north,
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"Ij" = (
+/obj/machinery/door/airlock/external,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Im" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/holosign/barrier/engineering,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Iu" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"Iz" = (
+/obj/structure/disposalpipe/broken,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"IB" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic/light,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/obj/item/clothing/gloves/color/yellow,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"IC" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"IF" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/food_or_drink/refreshing_beverage,
+/obj/item/food/grilled_beef_gyro,
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"IH" = (
+/obj/machinery/portable_atmospherics/canister/water_vapor,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"IP" = (
+/turf/open/floor/holofloor/beach/coast,
+/area/awaymission/museum)
+"IV" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/stripes,
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"IZ" = (
+/obj/structure/chair/comfy/beige{
+ dir = 4
+ },
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Jb" = (
+/turf/open/floor/iron/dark/side,
+/area/awaymission/museum)
+"Jc" = (
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"Jd" = (
+/obj/machinery/vending/cigarette/beach,
+/obj/machinery/light/warm/directional/north,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Je" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"Jg" = (
+/obj/structure/statue/sandstone/assistant,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Jj" = (
+/mob/living/basic/mothroach,
+/turf/open/floor/mineral/gold,
+/area/awaymission/museum/mothroachvoid)
+"Jk" = (
+/obj/item/toy/plush/moth,
+/obj/machinery/light/small/dim/directional/west,
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"Jn" = (
+/obj/structure/table/reinforced,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/turf_decal/siding/dark_blue,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"Js" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/machinery/computer/terminal/museum{
+ dir = 8;
+ content = list("This exhibit is of a preserved cortical borer. Cortical borers went extinct in the Spinward sector due to almost every of them starving as they could not find enough food in the brains of the crewmembers, as they are usually pretty small or damaged by plasma exposure.")
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Jv" = (
+/obj/machinery/light/warm/dim/directional/south,
+/obj/structure/fluff/divine/shrine,
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"Jx" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/machinery/door/poddoor/shutters/preopen{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Jz" = (
+/obj/machinery/light/floor,
+/turf/open/floor/mineral/silver,
+/area/awaymission/museum)
+"JF" = (
+/obj/machinery/gateway/away,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark/diagonal,
+/area/awaymission/museum)
+"JK" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = 18
+ },
+/turf/open/mirage{
+ dir = 1;
+ target_turf_x = -9
+ },
+/area/awaymission/museum)
+"JU" = (
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("1963 - Founded in the city of Fresno by Michael Trasen and Dale Knox, Trasen-Knox Computing (as it was known at the time) would get its start producing scientific computers for academia. Trasen-Knox computers quickly gained a reputation for quality and reliability, and the company would gain a decent market share with American and Canadian universities over the coming decade. Trasen-Knox would also work closely with NASA in producing equipment for the space race- giving them an early start in Humanity’s push to the stars. ")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"JV" = (
+/turf/open/floor/bronze,
+/area/awaymission/museum)
+"JW" = (
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 8
+ },
+/turf/open/floor/black,
+/area/awaymission/museum)
+"JY" = (
+/turf/open/floor/iron/stairs{
+ dir = 8
+ },
+/area/awaymission/museum/mothroachvoid)
+"Kb" = (
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Kd" = (
+/obj/structure/chair/stool/bar/directional/east{
+ can_buckle = 1
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Kh" = (
+/turf/closed/indestructible/fakeglass,
+/area/awaymission/museum)
+"Ko" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/marker_beacon/burgundy,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Ks" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/item/keycard/blue{
+ puzzle_id = "museum_secret"
+ },
+/turf/open/floor/carpet/executive,
+/area/awaymission/museum)
+"Kt" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Kv" = (
+/obj/effect/turf_decal/stripes{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 1
+ },
+/turf/open/floor/catwalk_floor,
+/area/awaymission/museum)
+"Kx" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/basic/skeleton,
+/obj/effect/spawner/random/maintenance/three,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"KI" = (
+/turf/open/floor/iron/dark/side{
+ dir = 10
+ },
+/area/awaymission/museum)
+"KN" = (
+/obj/effect/landmark/awaystart,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Le" = (
+/obj/structure/fluff/fake_vent,
+/turf/open/floor/mineral/titanium/white,
+/area/awaymission/museum)
+"Lg" = (
+/obj/machinery/griddle,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"Lk" = (
+/obj/machinery/light/directional/north,
+/obj/structure/showcase/mecha/marauder,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"Lm" = (
+/turf/open/floor/black,
+/area/awaymission/museum)
+"Lp" = (
+/obj/machinery/status_display/random_message{
+ firstline_to_secondline = list("NO" = "LITTERING","YOU ARE" = "BEING WATCHED", "DO NOT TOUCH" = "THE EXHIBITS")
+ },
+/turf/closed/indestructible/reinforced/titanium/nodiagonal,
+/area/awaymission/museum)
+"Lq" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Ls" = (
+/obj/structure/table/reinforced,
+/obj/item/instrument/piano_synth/headphones,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Lt" = (
+/obj/structure/plaque/static_plaque/golden/commission/asteroid,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"Lv" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"Lw" = (
+/turf/open/floor/mineral/silver,
+/area/awaymission/museum)
+"Ly" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"LB" = (
+/turf/open/floor/iron/stairs/right{
+ dir = 8
+ },
+/area/awaymission/museum)
+"LC" = (
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("Mothroach")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"LN" = (
+/obj/effect/decal/cleanable/glass/titanium,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"LQ" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = -12
+ },
+/obj/effect/oneway{
+ dir = 8
+ },
+/turf/open/mirage{
+ dir = 4;
+ range = 1;
+ target_turf_x = -11
+ },
+/area/awaymission/museum)
+"LS" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"LY" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Ma" = (
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Mg" = (
+/obj/structure/plaque/static_plaque/golden/commission/tram,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"Mn" = (
+/obj/machinery/light/warm/directional/south,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Ms" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/side/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Mv" = (
+/mob/living/basic/statue/mannequin{
+ dir = 4;
+ held_item = /obj/item/wrench;
+ name = "Michael Trasen"
+ },
+/obj/effect/turf_decal/stripes{
+ dir = 4
+ },
+/turf/open/floor/iron/smooth_large,
+/area/awaymission/museum)
+"Mx" = (
+/obj/structure/table,
+/obj/item/phone,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"MB" = (
+/obj/structure/railing,
+/turf/open/floor/holofloor/asteroid{
+ icon_state = "asteroid5"
+ },
+/area/awaymission/museum)
+"MC" = (
+/obj/effect/turf_decal/tile/blue/opposingcorners,
+/obj/machinery/light/floor,
+/turf/open/floor/holofloor/white,
+/area/awaymission/museum)
+"ME" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"MF" = (
+/turf/closed/indestructible/wood,
+/area/awaymission/museum)
+"MI" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/mecha_parts/mecha_equipment/generator,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"MV" = (
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"MZ" = (
+/obj/structure/fluff/divine/defensepylon,
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"Na" = (
+/obj/structure/girder,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Nc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"Nd" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Ng" = (
+/obj/item/stack/sheet/bronze/thirty,
+/obj/structure/table/bronze,
+/turf/open/floor/bronze,
+/area/awaymission/museum)
+"Ni" = (
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("Primarily an advanced research and development conglomerate, but also has skin in many other fields. While a great deal of their income still comes from producing public research funded by government research grants, their operations also include directly producing and selling their most profitable designs, leasing their asset protection forces to governments and private organizations (both space fleets and ground troops), logistics management with a specialization in remote settlement self-sufficiency, and maintaining interstellar communication infrastructures to name a few. The common theme that runs through most of their business ventures is taking the lessons they've learned from operating on such a massive scale and helping smaller organizations stretch themselves.")
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"Nm" = (
+/obj/structure/plaque/static_plaque/golden/commission/birdboat,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"Ns" = (
+/obj/structure/table/wood,
+/obj/effect/spawner/random/food_or_drink/booze{
+ loot = list(/obj/item/reagent_containers/cup/glass/bottle/beer = 10, /obj/item/reagent_containers/cup/glass/bottle/ale = 10, /obj/item/reagent_containers/cup/glass/bottle/beer/light = 5, /obj/item/reagent_containers/cup/glass/bottle/maltliquor = 5, /obj/item/reagent_containers/cup/glass/bottle/whiskey = 5, /obj/item/reagent_containers/cup/glass/bottle/gin = 5, /obj/item/reagent_containers/cup/glass/bottle/vodka = 5, /obj/item/reagent_containers/cup/glass/bottle/tequila = 5, /obj/item/reagent_containers/cup/glass/bottle/rum = 5, /obj/item/reagent_containers/cup/glass/bottle/vermouth = 5, /obj/item/reagent_containers/cup/glass/bottle/cognac = 5, /obj/item/reagent_containers/cup/glass/bottle/wine = 5, /obj/item/reagent_containers/cup/glass/bottle/kahlua = 5, /obj/item/reagent_containers/cup/glass/bottle/amaretto = 5, /obj/item/reagent_containers/cup/glass/bottle/hcider = 5, /obj/item/reagent_containers/cup/glass/bottle/absinthe = 5, /obj/item/reagent_containers/cup/glass/bottle/sake = 5, /obj/item/reagent_containers/cup/glass/bottle/grappa = 5, /obj/item/reagent_containers/cup/glass/bottle/applejack = 5, /obj/item/reagent_containers/cup/glass/bottle/wine_voltaic = 5, /obj/item/reagent_containers/cup/bottle/ethanol = 2, /obj/item/reagent_containers/cup/glass/bottle/fernet = 2, /obj/item/reagent_containers/cup/glass/bottle/champagne = 2, /obj/item/reagent_containers/cup/glass/bottle/absinthe/premium = 2, /obj/item/reagent_containers/cup/glass/bottle/goldschlager = 2, /obj/item/reagent_containers/cup/glass/bottle/patron = 1, /obj/item/reagent_containers/cup/glass/bottle/kong = 1, /obj/item/reagent_containers/cup/glass/bottle/lizardwine = 1, /obj/item/reagent_containers/cup/glass/bottle/vodka/badminka = 1, /obj/item/reagent_containers/cup/glass/bottle/trappist = 1);
+ spawn_random_offset = 2
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Ny" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/structure/closet/crate/bin,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"NB" = (
+/obj/effect/turf_decal/siding/wideplating/corner,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"ND" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing,
+/obj/structure/table,
+/obj/item/clothing/mask/cigarette/cigar{
+ lit = 1;
+ icon_state = "cigaron"
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"NK" = (
+/obj/machinery/door/airlock/maintenance_hatch,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/all/away/generic3,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"NO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"NT" = (
+/obj/machinery/light/floor,
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/asteroid/line{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"NV" = (
+/obj/structure/bed/pod{
+ dir = 1
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"NY" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Oi" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/spawner/random/trash/cigbutt,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Ok" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Ol" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Oo" = (
+/obj/structure/closet/secure_closet/bar/lavaland_bartender_booze{
+ anchored = 1
+ },
+/turf/open/floor/wood/tile,
+/area/awaymission/museum)
+"Op" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/machinery/computer/terminal/museum{
+ dir = 4;
+ content = list("The DNA Manipulator, oh how great you were. Phased out several years ago because a study discovered that plants modified by the DNA Manipulator usually gave you cancer. Naturally, this was the botanists fault.")
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Ov" = (
+/turf/open/chasm,
+/area/awaymission/museum)
+"OD" = (
+/obj/machinery/computer/terminal/museum{
+ dir = 8;
+ content = list("2560 - The Nanotrasen Cloning Incident; Did you know that Nanotrasen used to provide cloning for profitable employees? No? Good! Because in 2560, there was a terrorist backed sabotage on one of our cloning material supply facilities, resulting in a Feline serum being dumped into the carefully curated output. This resulted in horrible cat mutations for anyone who got cloned, weeks later. Facing outlash, Nanotrasen had to shut down all cloning clinics.")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"OI" = (
+/obj/machinery/light/floor,
+/turf/open/floor/bronze/filled,
+/area/awaymission/museum)
+"OP" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"OS" = (
+/obj/structure/chair/stool/bar/directional/east{
+ can_buckle = 1
+ },
+/obj/effect/mapping_helpers/mob_buckler,
+/mob/living/basic/mothroach,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"OT" = (
+/obj/structure/marker_beacon/burgundy,
+/obj/structure/lattice/catwalk/mining,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"OZ" = (
+/obj/item/toy/figure/syndie,
+/obj/item/toy/figure/syndie{
+ pixel_x = -9
+ },
+/obj/item/toy/figure/syndie{
+ pixel_x = 9
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/floor/holofloor/beach/coast{
+ dir = 1
+ },
+/area/awaymission/museum)
+"Pb" = (
+/mob/living/basic/mothroach,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/awaymission/museum)
+"Pc" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Pd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 2
+ },
+/obj/structure/broken_flooring/corner/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Pf" = (
+/obj/structure/table/wood,
+/obj/item/food/kebab/pineapple_skewer,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"Pi" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench/left{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Pl" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Pp" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/machinery/light/small/dim/directional/north,
+/obj/structure/chair/stool/directional/east,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Pq" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/plate,
+/obj/item/food/kebab/pineapple_skewer,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Ps" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"PB" = (
+/turf/closed/indestructible/fakedoor/engineering,
+/area/awaymission/museum)
+"PC" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"PF" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/mining,
+/obj/item/flashlight/lantern{
+ icon_state = "lantern-on";
+ start_on = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"PK" = (
+/obj/machinery/door/poddoor{
+ id = "gatewayfake"
+ },
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"PN" = (
+/obj/structure/girder/bronze,
+/turf/open/floor/bronze/flat,
+/area/awaymission/museum)
+"PP" = (
+/obj/effect/decal/cleanable/fuel_pool/hivis,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"PR" = (
+/obj/structure/fluff/minepost,
+/obj/effect/turf_decal/siding{
+ dir = 9
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"PU" = (
+/obj/machinery/shower/directional/east,
+/obj/effect/decal/cleanable/plastic,
+/turf/open/floor/iron/white/textured_large,
+/area/awaymission/museum)
+"PW" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = -18
+ },
+/turf/open/mirage{
+ target_turf_y = -19
+ },
+/area/awaymission/museum)
+"PX" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic/light,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"PZ" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/item/flashlight/flare{
+ start_on = 1;
+ icon_state = "flare-on"
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Qa" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 1
+ },
+/obj/item/kirbyplants/random,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Qb" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"Qc" = (
+/obj/item/kirbyplants/random/dead,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Qe" = (
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 4
+ },
+/turf/open/floor/black,
+/area/awaymission/museum)
+"Qf" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green,
+/obj/structure/table,
+/obj/machinery/coffeemaker,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Qi" = (
+/obj/effect/spawner/structure/window/reinforced/indestructible,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Qj" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Qk" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Qo" = (
+/obj/structure/closet/crate/cardboard/mothic,
+/obj/item/food/pizza/mothic_white_pie,
+/obj/item/toy/plush/moth,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Qs" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/machinery/light/floor,
+/obj/effect/replica_spawner{
+ target_path = /obj/structure/reagent_dispensers/fueltank
+ },
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Qt" = (
+/obj/effect/mapping_helpers/burnt_floor,
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Qv" = (
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/awaymission/museum)
+"Qw" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"QB" = (
+/obj/structure/plaque/static_plaque/golden/commission/birdshot,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"QD" = (
+/obj/structure/fluff/broken_canister_frame,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"QF" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"QG" = (
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark/diagonal,
+/area/awaymission/museum)
+"QI" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small/dim/directional/north,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"QK" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/flora/bush/sparsegrass/style_random,
+/obj/structure/closet/crate/bin,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"QN" = (
+/obj/structure/table/wood,
+/obj/item/food/grilled_beef_gyro,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"QP" = (
+/obj/effect/playeronly_barrier,
+/obj/machinery/door/airlock/public/glass,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"QU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/side/always_floorplane{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"QX" = (
+/obj/structure/sign/poster/party_game/directional/south,
+/turf/open/floor/iron/dark/side,
+/area/awaymission/museum)
+"Re" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Ri" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/remains/human,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Rl" = (
+/obj/structure/railing{
+ dir = 10
+ },
+/obj/structure/fluff{
+ name = "replica prototype autolathe";
+ icon = 'icons/obj/machines/lathes.dmi';
+ icon_state = "autolathe";
+ desc = "A non-functional replica of a prototype Autolathe."
+ },
+/turf/open/floor/iron/smooth_corner{
+ dir = 4
+ },
+/area/awaymission/museum)
+"Rq" = (
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Rs" = (
+/mob/living/basic/mothroach,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"Rz" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/end{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"RC" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 10
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"RD" = (
+/obj/effect/turf_decal/trimline/yellow/arrow_ccw{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"RJ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/maintenance/three,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"RL" = (
+/obj/effect/spawner/random/vending/colavend,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"RR" = (
+/obj/machinery/suit_storage_unit/open,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron/white/textured_large,
+/area/awaymission/museum)
+"RU" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/obj/structure/closet/crate/engineering,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Sa" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/door/airlock/freezer,
+/turf/open/floor/iron/freezer,
+/area/awaymission/museum)
+"Sc" = (
+/obj/effect/baseturf_helper{
+ baseturf_to_replace = list(/turf/open/space/basic);
+ baseturf = /turf/open/indestructible/plating
+ },
+/turf/open/floor/bluespace,
+/area/awaymission/museum)
+"Se" = (
+/obj/structure/chair/comfy/beige,
+/mob/living/basic/mothroach,
+/obj/effect/mapping_helpers/mob_buckler,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Sh" = (
+/obj/effect/turf_decal/siding,
+/obj/structure/railing,
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"So" = (
+/obj/machinery/shower/directional/east,
+/turf/open/floor/iron/white/textured_large,
+/area/awaymission/museum)
+"Sr" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Sv" = (
+/obj/machinery/status_display/random_message{
+ firstline_to_secondline = list("SOUVENIR" = "SHOP")
+ },
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"SA" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table,
+/obj/item/wirecutters,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"SN" = (
+/obj/structure/fluff/divine/conduit,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"SQ" = (
+/mob/living/basic/mothroach,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"ST" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 8;
+ id = "nothing"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"SU" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/stack/spacecash/c1000,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Tr" = (
+/obj/structure/plaque/static_plaque/golden/commission/kilo,
+/obj/machinery/light/floor,
+/turf/open/floor/mineral/gold,
+/area/awaymission/museum)
+"Tt" = (
+/obj/structure/holosign/barrier/engineering,
+/turf/open/misc/grass,
+/area/awaymission/museum/mothroachvoid)
+"Tu" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 8
+ },
+/obj/structure/chair/sofa/bench/left{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Tz" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"TB" = (
+/obj/item/stack/rods,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/corner/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"TF" = (
+/turf/open/floor/iron/stairs/right{
+ dir = 4
+ },
+/area/awaymission/museum)
+"TI" = (
+/obj/structure/chair/bronze{
+ dir = 8
+ },
+/turf/open/floor/bronze/flat,
+/area/awaymission/museum)
+"TJ" = (
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/replica_spawner{
+ target_path = /obj/machinery/autolathe
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"TM" = (
+/obj/machinery/light/floor,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"TN" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/item/kirbyplants/random/fullysynthetic,
+/turf/open/floor/mineral/titanium/blue,
+/area/awaymission/museum)
+"TO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/structure/crate_abandoned,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"TQ" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"TR" = (
+/obj/structure/window/spawner/directional/east,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/awaymission/museum)
+"TV" = (
+/obj/structure/sign/poster/random/directional/east,
+/obj/structure/grille,
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"TY" = (
+/turf/open/floor/iron/showroomfloor,
+/area/awaymission/museum)
+"Ue" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/obj/machinery/door/window/elevator/right/directional/south{
+ transport_linked_id = "museum_cargo"
+ },
+/obj/effect/spawner/random/maintenance/seven,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Um" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/structure/fluff/wallsign/directional/east{
+ dir = 2;
+ name = "Exit"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Un" = (
+/obj/structure/fluff/wallsign/directional/west{
+ name = "History of Nanotrasen"
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/machinery/light/warm/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Uo" = (
+/obj/structure/fluff/fake_scrubber,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Uq" = (
+/obj/effect/smooths_with_walls,
+/turf/cordon/secret,
+/area/awaymission/museum)
+"Ut" = (
+/mob/living/basic/statue/mannequin{
+ held_item = /obj/item/banner/command;
+ hat = /obj/item/clothing/head/helmet/space
+ },
+/turf/open/floor/holofloor/hyperspace/ns,
+/area/awaymission/museum)
+"Uu" = (
+/turf/open/floor/mineral/titanium/white,
+/area/awaymission/museum)
+"Ux" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/table,
+/obj/item/computer_disk{
+ icon_state = "datadisk_hydro";
+ name = "plant data disk"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"UB" = (
+/obj/structure/fluff/minepost,
+/obj/effect/turf_decal/siding{
+ dir = 6
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"UD" = (
+/obj/item/reagent_containers/pill/patch/ondansetron,
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/pill/patch/libital,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"UG" = (
+/mob/living/basic/mothroach,
+/turf/open/misc/beach/sand,
+/area/awaymission/museum/mothroachvoid)
+"UI" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"UK" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/preopen,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"UP" = (
+/obj/structure/table/bronze,
+/obj/item/clothing/suit/costume/bronze,
+/obj/item/clothing/suit/costume/bronze,
+/obj/item/clothing/shoes/bronze,
+/obj/item/clothing/head/costume/bronze,
+/turf/open/floor/bronze/flat,
+/area/awaymission/museum)
+"UR" = (
+/obj/structure/railing,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"US" = (
+/obj/machinery/computer/old{
+ name = "replica computer";
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"UT" = (
+/obj/machinery/status_display/random_message{
+ firstline_to_secondline = list("NO" = "LITTERING","YOU ARE" = "BEING WATCHED", "DO NOT TOUCH" = "THE EXHIBITS");
+ pixel_x = 32
+ },
+/turf/open/floor/carpet,
+/area/awaymission/museum)
+"UU" = (
+/obj/effect/turf_decal/siding{
+ dir = 1
+ },
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"UV" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/item/storage/toolbox/emergency/old,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"UY" = (
+/obj/effect/spawner/random/trash/mess,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/smooth_half,
+/area/awaymission/museum)
+"Vc" = (
+/obj/machinery/light/warm/directional/east,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Vh" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing/corner,
+/obj/machinery/light/small/directional/east,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Vk" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Vq" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/fluff/fokoff_sign,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Vz" = (
+/obj/structure/grille/broken,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"VA" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"VD" = (
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = 30
+ },
+/turf/open/mirage{
+ target_turf_y = 29
+ },
+/area/awaymission/museum)
+"VE" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/railing/corner,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"VH" = (
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/server,
+/turf/open/floor/holofloor/beach,
+/area/awaymission/museum)
+"VK" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/fake_camera{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"VL" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"VM" = (
+/obj/machinery/conveyor{
+ dir = 1
+ },
+/obj/item/clothing/under/rank/medical/scrubs/coroner,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"VS" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"VT" = (
+/obj/effect/turf_decal/tile/dark_blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"VW" = (
+/turf/open/floor/holofloor/beach/water,
+/area/awaymission/museum)
+"VZ" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Wc" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ dir = 4;
+ id = "nothing"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"We" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Wf" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Wg" = (
+/mob/living/basic/mothroach,
+/obj/structure/window/spawner/directional/north,
+/obj/structure/window/spawner/directional/east,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/awaymission/museum)
+"Wj" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"Wo" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 1
+ },
+/obj/machinery/light/directional/south,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Wr" = (
+/obj/effect/light_emitter{
+ light_color = "#FFF4AA";
+ set_cap = 1
+ },
+/turf/closed/indestructible/rock,
+/area/awaymission/museum)
+"Wt" = (
+/obj/machinery/computer/old{
+ name = "replica computer";
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 5
+ },
+/turf/open/floor/circuit/green,
+/area/awaymission/museum)
+"Wu" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/turf_decal/stripes/end,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/floor/engine,
+/area/awaymission/museum)
+"Wy" = (
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"WB" = (
+/obj/structure/chair/stool/bar/directional/east,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"WD" = (
+/obj/effect/mob_spawn/corpse/human/assistant,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"WE" = (
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/obj/structure/fluff/fake_scrubber,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"WH" = (
+/obj/structure/fluff/divine/defensepylon,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/cult,
+/area/awaymission/museum)
+"WJ" = (
+/obj/structure/transport/linear/tram/slow,
+/obj/structure/thermoplastic,
+/obj/effect/spawner/random/maintenance/seven,
+/obj/item/storage/pill_bottle/maintenance_pill/full,
+/obj/effect/spawner/random/structure/closet_empty/crate/with_loot,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"WM" = (
+/obj/structure/flora/bush/sparsegrass/style_random,
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"WQ" = (
+/obj/effect/spawner/random/vending/snackvend,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"WT" = (
+/obj/machinery/computer/terminal/museum{
+ content = list("2008 - Nanotrasen would buy out and merge with the Wulfe Group, a German company known for their manufacture of industrial equipment. Rebranding the company as Nanotrasen Heavy Industry (or NTHI), this would be Nanotrasen’s first step towards new horizons beyond computing. In a series of purchases, Nanotrasen would expand its range of products considerably, acquiring a chemical and oil subsidiary in Texas Chemical (now Nanotrasen Chemical Supply), a consumer goods subsidiary in Seowon Appliances (now Nanotrasen Consumer Goods)")
+ },
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"WU" = (
+/obj/machinery/light/warm/directional/south,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"WX" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue/corner{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Xa" = (
+/obj/structure/broken_flooring/corner/always_floorplane{
+ dir = 2
+ },
+/obj/structure/lattice,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Xc" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/plate,
+/obj/item/food/kitzushi,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Xh" = (
+/turf/closed/indestructible/fakedoor/maintenance,
+/area/awaymission/museum)
+"Xo" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing,
+/obj/structure/table,
+/obj/item/pen/red,
+/obj/item/paper/fluff/museum/noend,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Xs" = (
+/obj/structure/fluff/broken_canister_frame,
+/obj/structure/fluff/fake_camera{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Xt" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/random/contraband/cannabis,
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"XB" = (
+/obj/effect/turf_decal/bot/right,
+/turf/open/floor/iron/dark/diagonal,
+/area/awaymission/museum)
+"XC" = (
+/obj/structure/plaque/static_plaque/golden/commission/mini,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"XD" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = 14
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"XF" = (
+/obj/structure/fluff/fake_vent,
+/turf/open/floor/iron/white,
+/area/awaymission/museum)
+"XK" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"XM" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/stripes/red/line{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"XP" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "nothing"
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"XR" = (
+/obj/structure/filingcabinet/chestdrawer,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/corner/always_floorplane,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"XW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/floor/iron/dark/textured_large,
+/area/awaymission/museum)
+"Yb" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/plate/large,
+/obj/item/food/khachapuri,
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"Yd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/broken_flooring/side/directional/east,
+/obj/machinery/door/airlock/atmos/glass,
+/obj/structure/barricade/wooden,
+/obj/effect/mapping_helpers/airlock/locked,
+/obj/effect/mapping_helpers/airlock/access/all/away/generic3,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Ye" = (
+/obj/structure/sign/nanotrasen,
+/turf/closed/indestructible/reinforced/titanium/nodiagonal,
+/area/awaymission/museum)
+"Yg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/mob/living/basic/cockroach,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Yk" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "museum_secret"
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Yr" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/siding/dark_blue,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/effect/spawner/random/entertainment/toy,
+/obj/item/reagent_containers/cup/glass/mug/nanotrasen,
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Yz" = (
+/obj/effect/turf_decal/siding,
+/mob/living/basic/statue/mannequin{
+ dir = 8;
+ held_item = /obj/item/pickaxe;
+ hat = /obj/item/clothing/suit/hooded/explorer
+ },
+/obj/structure/railing,
+/turf/open/floor/holofloor/asteroid,
+/area/awaymission/museum)
+"YC" = (
+/obj/item/storage/box/mothic_cans_sauces,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"YD" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/middle{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"YF" = (
+/obj/structure/hedge,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/grass,
+/area/awaymission/museum)
+"YP" = (
+/obj/structure/broken_flooring/singular/always_floorplane{
+ dir = 1
+ },
+/turf/open/floor/black,
+/area/awaymission/museum)
+"YY" = (
+/turf/open/floor/iron/stairs/left{
+ dir = 8
+ },
+/area/awaymission/museum)
+"YZ" = (
+/obj/machinery/light/warm/dim/directional/south,
+/obj/effect/turf_decal/tile/green/opposingcorners,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/siding/green,
+/obj/structure/table,
+/obj/item/coffee_cartridge/bootleg,
+/obj/item/reagent_containers/cup/glass/coffee/no_lid{
+ pixel_x = 12
+ },
+/turf/open/floor/iron,
+/area/awaymission/museum)
+"Zf" = (
+/obj/structure/plaque/static_plaque/golden/commission/donut,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"Zg" = (
+/obj/machinery/light/warm/directional/west,
+/turf/open/floor/holofloor/beach/water,
+/area/awaymission/museum)
+"Zk" = (
+/obj/effect/decal/cleanable/fuel_pool/hivis,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"Zn" = (
+/obj/structure/lattice,
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"Zp" = (
+/obj/structure/plaque/static_plaque/golden/commission/icebox,
+/turf/closed/indestructible/reinforced,
+/area/awaymission/museum)
+"Zr" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 8
+ },
+/obj/effect/step_trigger/teleporter/offset{
+ teleport_y_offset = 14
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"Zw" = (
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 4
+ },
+/obj/structure/chair/sofa/bench{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ZB" = (
+/obj/machinery/door/airlock/maintenance_hatch,
+/obj/structure/broken_flooring/side/always_floorplane/directional/east,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/mapping_helpers/airlock/access/all/away/generic3,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ZF" = (
+/mob/living/basic/mothroach,
+/turf/open/misc/beach/coast/corner{
+ dir = 1
+ },
+/area/awaymission/museum/mothroachvoid)
+"ZH" = (
+/obj/structure/lattice/catwalk/mining,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/chasm/true/no_smooth,
+/area/awaymission/museum)
+"ZI" = (
+/obj/structure/railing,
+/obj/effect/turf_decal/tile/neutral/opposingcorners,
+/obj/effect/turf_decal/siding/dark_blue{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/awaymission/museum)
+"ZP" = (
+/obj/structure/statue/gold/ce{
+ anchored = 1
+ },
+/turf/open/floor/mineral/diamond,
+/area/awaymission/museum/mothroachvoid)
+"ZW" = (
+/obj/machinery/door/airlock/wood/glass,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/large,
+/area/awaymission/museum)
+"ZY" = (
+/obj/structure/window/bronze/spawner/directional/south,
+/obj/structure/window/bronze/spawner/directional/east,
+/obj/structure/window/bronze/spawner/directional/north,
+/obj/structure/grille,
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+"ZZ" = (
+/obj/item/stack/rods,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/awaymission/museum)
+
+(1,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(2,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(3,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(4,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(5,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(6,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(7,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(8,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(9,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(10,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(11,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(12,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(13,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(14,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(15,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(16,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(17,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(18,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(19,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(20,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(21,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(22,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(23,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(24,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(25,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(26,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(27,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(28,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(29,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(30,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(31,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(32,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(33,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(34,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(35,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(36,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(37,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(38,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(39,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(40,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(41,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(42,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(43,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(44,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(45,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(46,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(47,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(48,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(49,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(50,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(51,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(52,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(53,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(54,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(55,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(56,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(57,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(58,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(59,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(60,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(61,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(62,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(63,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(64,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(65,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(66,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(67,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(68,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(69,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(70,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(71,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(72,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(73,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(74,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(75,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(76,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(77,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+Lm
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(78,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Lm
+Lm
+Lm
+Lm
+Qe
+Lm
+Qe
+Lm
+Lm
+Lm
+Lm
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(79,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Lm
+Lm
+Lm
+Qe
+Lm
+Qe
+Lm
+YP
+Lm
+Lm
+Lm
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(80,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Lm
+Lm
+Lm
+Lm
+Qe
+Lm
+JW
+Lm
+Lm
+Lm
+sj
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(81,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+yS
+yS
+yS
+yS
+yS
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+DT
+DT
+DT
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(82,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+yS
+yS
+fn
+kQ
+fn
+yS
+yS
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+re
+FK
+xx
+TM
+Wy
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(83,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+yS
+fn
+fn
+fn
+fn
+kQ
+yS
+re
+re
+re
+FK
+FK
+FK
+IP
+Zg
+fJ
+FK
+FK
+FK
+Hs
+eN
+Wc
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(84,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+yS
+fn
+Ut
+hE
+dY
+fn
+yS
+re
+re
+re
+FK
+jH
+mX
+IP
+VW
+oQ
+br
+NV
+FK
+aa
+qj
+fy
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(85,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+yS
+yq
+fn
+fn
+fn
+fn
+yS
+re
+re
+re
+FK
+UY
+zG
+IP
+VW
+oQ
+GG
+rr
+FK
+lb
+TM
+tD
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(86,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+yS
+fe
+uT
+uT
+uT
+fe
+yS
+re
+re
+re
+FK
+cs
+rO
+lk
+oA
+eX
+zK
+IF
+FK
+lb
+uY
+tD
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(87,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+fe
+Mx
+Ni
+lC
+fe
+fe
+FK
+FK
+FK
+FK
+GQ
+yx
+xR
+hC
+xR
+GS
+GQ
+FK
+lb
+uY
+tD
+FK
+HA
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(88,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+Ns
+yi
+Er
+EM
+yi
+Se
+Cy
+yi
+Ns
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+fe
+fe
+fe
+HL
+Iu
+Uu
+Iu
+uM
+iz
+VL
+hV
+LS
+hV
+hV
+hV
+VL
+hV
+hV
+hV
+hV
+hV
+zg
+uY
+nh
+hV
+hV
+hV
+hV
+VK
+im
+hV
+hV
+VL
+CF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(89,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+rA
+gM
+gM
+gM
+gM
+gM
+gM
+gM
+rA
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+FA
+Ef
+zc
+Iu
+Uu
+Hi
+Uu
+Iu
+EA
+uY
+TM
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+qj
+od
+qj
+uY
+HY
+qj
+qj
+qj
+uY
+uY
+uY
+uY
+uY
+TM
+qj
+bI
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Uq
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(90,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+MF
+MF
+MF
+MF
+MF
+WB
+WB
+WB
+WB
+WB
+WB
+gM
+gM
+wO
+MF
+re
+re
+re
+re
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+xg
+lT
+IV
+da
+jn
+jn
+jn
+gG
+AC
+bV
+gW
+bV
+RC
+uY
+DV
+bV
+bV
+bV
+Gh
+uY
+lf
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+RC
+qj
+Ok
+bV
+es
+XP
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+yM
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(91,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+ml
+Pf
+Lg
+Lg
+MF
+fi
+fi
+fi
+fi
+fi
+fi
+pp
+gM
+IZ
+MF
+re
+re
+re
+re
+Zn
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+ab
+lM
+IV
+Fi
+iW
+go
+iW
+TN
+Ye
+FK
+FK
+FK
+GY
+uY
+tD
+am
+kX
+Rl
+lb
+uY
+sy
+FK
+FK
+PR
+tI
+iK
+ea
+FK
+lb
+uY
+tD
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+aG
+FK
+Gv
+ek
+Gv
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(92,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+gB
+HP
+HP
+HP
+MF
+fW
+rr
+rr
+rr
+rr
+Ek
+pp
+gM
+EM
+MF
+re
+re
+re
+DS
+wh
+Ma
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+jo
+jo
+Lp
+vZ
+Ag
+VT
+Ag
+HE
+fe
+FK
+cW
+Lv
+lb
+qj
+tD
+cn
+Mv
+tv
+lb
+uY
+ZI
+rU
+FK
+UU
+fa
+Gi
+Yz
+Sr
+lb
+uY
+pb
+FK
+EE
+Yg
+vj
+SA
+FK
+Ma
+Ma
+DA
+Ma
+Ma
+as
+PK
+EK
+yo
+Kh
+Gv
+sN
+Gv
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(93,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+AG
+HP
+HP
+HP
+mZ
+rr
+Oo
+zC
+dH
+rr
+dV
+gM
+gM
+rA
+MF
+MF
+re
+re
+DS
+Re
+wh
+Ma
+Ma
+Zn
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+eg
+eg
+fe
+Jn
+nS
+xI
+xI
+eD
+fe
+FK
+hX
+Lv
+lb
+uY
+tD
+Kv
+jy
+lh
+lb
+uY
+ZI
+hT
+FK
+xj
+PF
+tN
+Sh
+WT
+lb
+uY
+xf
+FK
+xr
+XK
+Yg
+XK
+FD
+ZH
+Qk
+Ma
+Ma
+Ma
+tK
+FK
+FK
+Kh
+Kh
+ix
+ix
+ix
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(94,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+wk
+jL
+HP
+bC
+MF
+dL
+rr
+rr
+hp
+rr
+kr
+pp
+gM
+gM
+aW
+MF
+MF
+MF
+MF
+Re
+PZ
+Ma
+Ma
+dZ
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+hM
+iF
+ro
+Fi
+DU
+iW
+iW
+Ny
+Ye
+FK
+FK
+FK
+Hw
+uY
+tD
+Wt
+EQ
+US
+lb
+uY
+xJ
+FK
+FK
+nH
+th
+lB
+UB
+FK
+lb
+qj
+xf
+FK
+FK
+bF
+FK
+We
+tK
+Ma
+VE
+zr
+Ma
+Ma
+Ri
+nT
+Dx
+XK
+XK
+XK
+uR
+SU
+Xh
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(95,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+MF
+MF
+MF
+MF
+Sa
+MF
+MF
+MF
+tx
+tx
+tx
+tx
+tx
+pp
+gM
+jf
+gM
+bj
+TY
+cH
+cH
+vs
+cR
+Ma
+Ma
+Zn
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+yl
+NT
+MB
+tt
+sm
+sm
+sm
+Bu
+iz
+hV
+hV
+hV
+zg
+uY
+nv
+hV
+JU
+hV
+wE
+uY
+nh
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+zg
+uY
+xf
+FK
+Na
+ow
+FK
+FK
+FK
+Ma
+do
+Ma
+Ma
+Ma
+tK
+FK
+FK
+Kh
+Kh
+FK
+FK
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(96,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+cF
+cF
+cF
+cF
+cF
+KI
+Ci
+MF
+ex
+ex
+ex
+ex
+ex
+gM
+gM
+gM
+FM
+MF
+nr
+TY
+cH
+vs
+cR
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+nz
+tj
+UR
+Iu
+Uu
+Le
+Uu
+Iu
+EA
+uY
+TM
+uY
+qj
+Uo
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+oI
+uY
+uY
+uY
+qj
+qj
+qj
+Uo
+xf
+FK
+XK
+XK
+pX
+bF
+kh
+sD
+at
+Ma
+Ma
+Ma
+kA
+PK
+EK
+EK
+zh
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(97,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+YY
+LB
+Am
+iN
+uc
+Jb
+Ps
+eA
+gM
+gM
+gM
+gM
+gM
+gM
+gM
+gM
+Mn
+MF
+CV
+TY
+gA
+MF
+Zn
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+fe
+fe
+fe
+Lk
+Uu
+Uu
+Uu
+Iu
+AC
+bV
+es
+bV
+OD
+bV
+bV
+RC
+qj
+lf
+bV
+bV
+ox
+bV
+es
+es
+bV
+bV
+yN
+bV
+bV
+bV
+Wo
+FK
+QI
+XK
+XK
+Xh
+dZ
+dZ
+yG
+Ma
+Ma
+Ma
+VM
+PK
+EK
+zh
+gC
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(98,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+qp
+Ls
+Ec
+uc
+CT
+Jb
+xT
+MF
+Jd
+Kd
+OS
+Kd
+OS
+OS
+Kd
+gM
+gM
+MF
+MF
+up
+MF
+MF
+Zn
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+fe
+VH
+sC
+mA
+OZ
+xD
+fe
+FK
+FK
+EX
+EX
+EX
+yn
+lb
+uY
+tD
+yn
+eH
+kO
+kO
+FK
+AR
+BK
+DL
+ai
+rX
+ai
+ai
+TJ
+FK
+HU
+AP
+HU
+FK
+Kh
+Kh
+FK
+Kh
+Kh
+FK
+FK
+FK
+FK
+yM
+yM
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(99,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+ct
+Bo
+wI
+Rs
+mK
+QX
+MF
+MF
+MF
+Pq
+ya
+Yb
+Xc
+GO
+fz
+la
+la
+MF
+Fh
+la
+ht
+MF
+qS
+Ma
+Ma
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+FK
+re
+fe
+qY
+qY
+qY
+qY
+qY
+fe
+ap
+FK
+Hn
+eF
+As
+ud
+lb
+uY
+fy
+ud
+pi
+MC
+bQ
+FK
+Eo
+Iz
+fo
+yu
+yu
+yu
+Dk
+BQ
+ll
+BX
+BX
+BX
+hl
+EK
+EK
+EK
+qM
+EK
+hl
+EK
+kg
+EK
+EK
+EK
+yM
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(100,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+qp
+az
+Jc
+Pb
+FG
+Jb
+MF
+eP
+eP
+eP
+nb
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+mV
+mV
+mV
+mV
+mV
+qS
+qS
+Ko
+re
+re
+re
+re
+re
+re
+FK
+Ov
+Ov
+Ov
+tB
+FK
+re
+FK
+sA
+XK
+bG
+XK
+XK
+FK
+ap
+FK
+RD
+oZ
+hY
+FK
+lb
+TM
+qL
+FK
+oo
+bJ
+CK
+FK
+QD
+Xs
+fo
+MV
+dS
+MV
+MV
+UV
+ll
+BX
+BX
+BX
+hl
+EK
+qM
+AI
+EK
+EK
+hl
+EK
+EK
+EK
+EK
+EK
+yM
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(101,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+TF
+vO
+Wg
+TR
+Pb
+Jb
+vU
+eP
+gu
+nb
+ff
+Ar
+Ar
+hb
+Dl
+eP
+SQ
+mV
+mV
+mV
+mV
+SQ
+MF
+MF
+MF
+MF
+MF
+re
+re
+re
+re
+FK
+Ov
+rB
+Ov
+tB
+FK
+re
+FK
+FK
+iT
+FK
+UD
+uu
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+Jx
+gj
+uf
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+DY
+Ij
+DY
+Ij
+DY
+DY
+FK
+TB
+ZZ
+XK
+tK
+Kh
+Kh
+FK
+Kh
+Kh
+FK
+FK
+lU
+lU
+lU
+tK
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(102,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+Qv
+Qv
+Qv
+Qv
+Qv
+pc
+MF
+oC
+nb
+BF
+Ar
+GU
+Ar
+wZ
+gu
+eP
+mV
+mV
+mC
+jG
+mV
+mV
+ZW
+gM
+wO
+Bj
+MF
+re
+re
+re
+re
+FK
+Ov
+Ov
+Ov
+tB
+FK
+re
+FK
+iB
+Ol
+FK
+FK
+FK
+FK
+Cc
+eO
+cf
+mg
+Cc
+FK
+lb
+uY
+tD
+FK
+Cc
+Cc
+Cc
+Cc
+Cc
+FK
+FK
+XK
+XK
+XK
+FK
+re
+FK
+TO
+wG
+XK
+VA
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Cb
+ED
+bk
+Ue
+tU
+PB
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(103,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+MF
+eP
+xm
+Ar
+Ar
+Ar
+hb
+Dl
+eP
+oC
+mV
+mV
+Fc
+jG
+mV
+tC
+MF
+gM
+gM
+gM
+MF
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+FK
+re
+FK
+IH
+XK
+Hk
+MI
+FK
+pF
+Cc
+DI
+Zw
+Hj
+VL
+Un
+qA
+uY
+nh
+iE
+xb
+Co
+Co
+qR
+Cc
+Cc
+FK
+YC
+dN
+tf
+FK
+re
+FK
+sh
+ts
+Pd
+Fj
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+bk
+bW
+IB
+Ah
+tU
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(104,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+os
+eP
+eP
+mV
+mV
+jG
+qt
+mV
+mV
+jB
+gM
+GT
+sp
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+TQ
+QU
+sd
+Xt
+FK
+fK
+VS
+zg
+qj
+uY
+qj
+qj
+uY
+uY
+uY
+uY
+uY
+uY
+qj
+nh
+Pi
+Cc
+FK
+FK
+FK
+FK
+FK
+re
+FK
+jW
+EO
+ME
+zM
+Ma
+jU
+Ma
+Ma
+Ma
+Ma
+Ma
+bk
+lV
+PX
+nc
+tU
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(105,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+xu
+xu
+xu
+dx
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+eP
+mV
+mV
+SQ
+mV
+mV
+mV
+jB
+yr
+nq
+kd
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+pM
+XR
+xB
+lS
+FK
+vc
+lb
+uY
+od
+qj
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+Uo
+uY
+aR
+HJ
+FK
+re
+re
+re
+re
+re
+FK
+zL
+qj
+qj
+Ms
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+RU
+ED
+WJ
+Ai
+tU
+PB
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(106,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+xu
+xu
+mV
+eP
+xm
+GU
+Ar
+Ar
+wZ
+eP
+eP
+mV
+mV
+mV
+mV
+mV
+mV
+mV
+jB
+gM
+il
+gM
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+FK
+jN
+lb
+uY
+uY
+Gx
+uE
+ev
+VZ
+VZ
+LY
+ev
+Lq
+WQ
+uY
+uY
+aR
+Cc
+FK
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+tK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+PB
+PB
+tK
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(107,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+xu
+xu
+mV
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+gu
+eP
+zE
+Wr
+zE
+zE
+zE
+zE
+zE
+MF
+MF
+MF
+MF
+MF
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+fK
+lb
+uY
+uY
+uE
+QF
+uN
+WM
+uN
+uN
+uN
+Fg
+Lq
+uY
+uY
+nW
+Cc
+FK
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(108,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+xu
+mV
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+NB
+zE
+FK
+Fv
+re
+re
+re
+re
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+AS
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+zY
+uY
+uY
+IC
+Qw
+wL
+Qw
+Pc
+WM
+uN
+uN
+Qj
+qj
+uY
+AZ
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(109,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+mV
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+CC
+QP
+nh
+PW
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+JK
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+sE
+VK
+zg
+uY
+uY
+wC
+XB
+QG
+cv
+KN
+zd
+zd
+WM
+At
+qj
+uY
+nh
+CD
+st
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+gQ
+XD
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+hV
+iZ
+Vq
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(110,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+mV
+eP
+ZF
+Cu
+Ar
+Ar
+wZ
+lG
+CC
+QP
+TM
+PW
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+JK
+uY
+TM
+uY
+uY
+uY
+TM
+uY
+Yk
+qj
+uY
+uY
+Rq
+FK
+nE
+JF
+QG
+KN
+lz
+zd
+uN
+Wf
+qj
+qj
+uY
+uY
+zX
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+gQ
+Cd
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+cS
+rP
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(111,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+xu
+mV
+dx
+eP
+xm
+Ar
+Ar
+wZ
+eP
+CC
+QP
+lf
+PW
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+JK
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+ec
+es
+yA
+uY
+uY
+wC
+cv
+QG
+XB
+KN
+zd
+lz
+WM
+At
+qj
+uY
+lf
+Um
+UK
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+gQ
+Zr
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+bV
+nF
+yK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(112,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+mV
+eP
+gu
+xm
+Ar
+Ar
+wZ
+dx
+dR
+zE
+FK
+Fv
+re
+re
+re
+re
+zE
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+AS
+FK
+FK
+FK
+FK
+FK
+FK
+of
+FK
+FK
+zY
+qj
+uY
+uE
+QK
+VZ
+VZ
+Wj
+uN
+uN
+uN
+Qj
+qj
+uY
+sX
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(113,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+JY
+iV
+eP
+oC
+xm
+Ar
+Ar
+wZ
+eP
+eP
+zE
+Wr
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+iI
+aa
+qj
+uY
+IC
+YF
+WM
+uN
+WM
+WM
+uN
+mQ
+xv
+qj
+uY
+fy
+Cc
+Sv
+Nd
+Cj
+cA
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(114,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+hj
+tc
+eP
+eP
+xm
+Ar
+Ar
+wZ
+eP
+oC
+SQ
+mV
+SQ
+mV
+SQ
+mV
+mV
+mV
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+Xh
+FK
+FK
+FK
+wN
+lb
+uY
+uY
+nQ
+IC
+Tz
+Qw
+Qw
+Qw
+Tz
+xv
+Gx
+uY
+uY
+fy
+el
+Yr
+kw
+UI
+eQ
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+FK
+QN
+fC
+tM
+FK
+FK
+tG
+tG
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(115,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+xu
+mV
+eP
+nb
+BF
+Ar
+Ar
+wZ
+eP
+eP
+mV
+SQ
+mV
+SQ
+mV
+jm
+bs
+bs
+xu
+zE
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+qw
+XK
+PP
+PP
+xP
+FK
+hi
+lb
+uY
+Uo
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+od
+uY
+fy
+el
+rW
+ET
+WE
+YZ
+FK
+en
+Vk
+CB
+FK
+tS
+dZ
+Xo
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+FK
+Hf
+Ab
+XW
+FK
+xt
+wy
+wy
+yF
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(116,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+zE
+xu
+mV
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+gu
+mV
+SQ
+ZP
+Jj
+zR
+xE
+eM
+bs
+xu
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+YD
+Vz
+PP
+Qo
+FK
+iI
+WX
+RC
+uY
+qj
+qj
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+Ok
+bK
+el
+AY
+kw
+cB
+Qf
+FK
+ue
+rq
+FJ
+FK
+yf
+vC
+ND
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+ud
+qQ
+Dr
+qQ
+kq
+qQ
+Dr
+sz
+Qb
+tG
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(117,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+eP
+xm
+Ar
+GU
+Ar
+wZ
+oC
+eP
+mV
+mV
+xE
+cC
+cC
+cC
+xE
+bs
+mV
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+XK
+XK
+PP
+kY
+FK
+pF
+Cc
+Tu
+hA
+Ak
+es
+Bq
+RC
+uY
+lf
+Bq
+bV
+bV
+bV
+bK
+Cc
+Cc
+FK
+vE
+NY
+pg
+FK
+hw
+Be
+XM
+FK
+dZ
+dZ
+PC
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+ud
+nx
+qQ
+Pl
+FK
+Ea
+xI
+xI
+RL
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(118,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+oC
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+mV
+mV
+xE
+cC
+cC
+cC
+xE
+mV
+mV
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+ls
+XK
+qx
+FK
+FK
+FK
+Cc
+Oi
+cN
+vh
+Cc
+FK
+lb
+uY
+qX
+FK
+Cc
+Cc
+bn
+Cc
+Cc
+FK
+FK
+FK
+NK
+FK
+FK
+FK
+FK
+Yd
+FK
+NO
+dZ
+mn
+yw
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+FK
+FK
+FK
+FK
+FK
+vx
+nu
+FK
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(119,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+UG
+mV
+mV
+gm
+xE
+ke
+xE
+Cq
+mV
+xu
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+vg
+bF
+FK
+gR
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+EU
+vy
+El
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+Ks
+aw
+XK
+aK
+Du
+bF
+dl
+CI
+tq
+jI
+dZ
+dZ
+mn
+rL
+sD
+sD
+sD
+gN
+gN
+gN
+sD
+Ma
+Ma
+dZ
+Ma
+sD
+Ma
+dZ
+Ma
+Ma
+Ma
+Ma
+Ma
+sD
+sD
+Ma
+sD
+Ma
+sD
+dZ
+FK
+So
+PU
+So
+FK
+qQ
+xI
+gT
+Qb
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(120,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+gu
+xm
+Ar
+Ar
+Ar
+wZ
+gu
+oC
+mV
+mV
+mV
+mV
+mV
+mV
+mV
+mV
+xu
+zE
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+Kt
+qj
+pD
+FK
+XK
+RJ
+Kx
+FK
+Fa
+OP
+pf
+ud
+lb
+uY
+tD
+ud
+Jg
+Jg
+mN
+FK
+tl
+Jk
+CL
+rm
+Zk
+EG
+XK
+bF
+qU
+CI
+tq
+jI
+dZ
+dZ
+dZ
+ve
+dZ
+Ko
+dZ
+dZ
+dZ
+dZ
+Ko
+dZ
+Ma
+dZ
+OT
+dZ
+Ma
+dZ
+Ko
+dZ
+dZ
+dZ
+Ko
+dZ
+dZ
+dZ
+Ko
+Ma
+Ma
+dZ
+cm
+jV
+jV
+qJ
+Wu
+qQ
+xI
+xd
+ns
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(121,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+mV
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+mV
+mV
+mV
+mV
+Tt
+Tt
+Tt
+Tt
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+qj
+wH
+mS
+FK
+xc
+FK
+FK
+FK
+Fw
+Qs
+xF
+ud
+lb
+TM
+tD
+ud
+wA
+ty
+sG
+FK
+lg
+FE
+rp
+rm
+PP
+zU
+XK
+bF
+PP
+CI
+tq
+de
+dZ
+dZ
+Fr
+Im
+zr
+zr
+zr
+zr
+zr
+zr
+zr
+zr
+zr
+dZ
+zr
+zr
+zr
+dZ
+zr
+zr
+Ma
+Ma
+Ma
+Ma
+zr
+Ma
+zr
+zr
+zr
+dZ
+FK
+RR
+pI
+jF
+FK
+qp
+xI
+cM
+BO
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(122,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+xu
+xu
+xu
+xu
+yE
+mV
+pY
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+ZB
+FK
+FK
+FK
+Ux
+Op
+wJ
+FK
+em
+Qt
+iD
+Rz
+lb
+uY
+tD
+Rz
+gf
+Ly
+Ly
+FK
+GQ
+GQ
+FK
+FK
+vb
+FK
+FK
+FK
+PP
+CI
+tq
+jI
+dZ
+dZ
+PC
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+FK
+FK
+FK
+FK
+FK
+LN
+Nc
+FK
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(123,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+xu
+xn
+ul
+qo
+qo
+qo
+De
+xn
+xn
+xu
+zE
+zE
+zE
+xu
+xu
+xu
+xu
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+zz
+pL
+PN
+ZY
+VS
+hV
+hV
+DE
+hV
+pv
+hV
+hV
+zg
+uY
+nh
+hV
+hV
+bi
+hV
+CW
+hV
+hV
+LC
+FK
+cy
+PP
+PP
+vb
+PP
+CI
+Aq
+nl
+dZ
+Vh
+ce
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Zn
+Zn
+fT
+Qc
+FK
+rY
+xI
+xI
+pw
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(124,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+gu
+xm
+Ar
+Ar
+Ar
+wZ
+gu
+oC
+xu
+zE
+re
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+Ng
+OI
+JV
+zI
+lb
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+od
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+uY
+tD
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+FK
+PB
+FK
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Zn
+Ma
+Ma
+fT
+bE
+qQ
+XF
+xI
+Qb
+tG
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(125,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+UP
+vM
+TI
+vw
+lb
+uY
+lf
+Vc
+bV
+bV
+bV
+bV
+RC
+uY
+lf
+bV
+bV
+bV
+bV
+Vc
+RC
+uY
+tD
+HA
+re
+re
+re
+FK
+re
+re
+re
+re
+re
+FK
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Ma
+Zn
+rJ
+rJ
+Xa
+FK
+bM
+Kb
+Kb
+yF
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(126,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+hk
+FK
+FK
+FK
+FK
+FK
+lb
+uY
+tD
+FK
+GQ
+GQ
+GQ
+FK
+Fq
+uY
+WU
+FK
+GQ
+GQ
+GQ
+FK
+lb
+uY
+tD
+FK
+FK
+FK
+FK
+FK
+lI
+re
+re
+re
+re
+FK
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+LQ
+FK
+vp
+WD
+vp
+FK
+FK
+tG
+tG
+FK
+FK
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(127,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+AM
+Sr
+Sr
+Sr
+Sr
+Sr
+lb
+Uo
+tD
+sq
+Lw
+Lw
+Lw
+qP
+lb
+uY
+tD
+XC
+Lw
+tk
+Lw
+FH
+lb
+Uo
+tD
+Sr
+Sr
+Sr
+Sr
+Sr
+VD
+re
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+ot
+rc
+TV
+FK
+re
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(128,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+gu
+xm
+Ar
+Ar
+Ar
+wZ
+gu
+oC
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+hk
+FK
+FK
+FK
+FK
+FK
+lb
+uY
+tD
+GV
+Lw
+Tr
+Lw
+ud
+lb
+uY
+tD
+ud
+Lw
+Jz
+Lw
+QB
+lb
+uY
+tD
+FK
+FK
+FK
+FK
+FK
+lI
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(129,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+HA
+lb
+uY
+tD
+Zf
+Lw
+Lw
+Lw
+Mg
+lb
+uY
+tD
+eR
+Lw
+GE
+Lw
+Nm
+lb
+uY
+tD
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Uq
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(130,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+gJ
+Vc
+Qa
+FK
+Zp
+nD
+lH
+FK
+lb
+uY
+qL
+FK
+Lt
+lZ
+cX
+FK
+gJ
+Vc
+Ay
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(131,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+EY
+hV
+hV
+hV
+zg
+uY
+nh
+hV
+hV
+hV
+Cf
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(132,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+gu
+xm
+Ar
+Ar
+Ar
+wZ
+gu
+oC
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+Pp
+uY
+uY
+uY
+uY
+Uo
+uY
+uY
+uY
+av
+dF
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(133,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+eP
+xm
+Ar
+Ar
+Ar
+wZ
+eP
+eP
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+jP
+bV
+Js
+bV
+RC
+uY
+lf
+bV
+nw
+bV
+oe
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(134,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+xu
+xu
+xu
+xu
+xu
+xu
+xu
+xu
+xu
+xu
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+pt
+pt
+Je
+lb
+uY
+tD
+jt
+WH
+AE
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(135,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+zE
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+Ic
+ne
+nC
+lb
+uY
+tD
+nJ
+cZ
+Jv
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(136,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+dn
+UT
+nC
+lb
+uY
+tD
+SN
+MZ
+Ho
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(137,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+lb
+uY
+rQ
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(138,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+re
+re
+dK
+Qi
+lb
+uY
+tD
+Qi
+mj
+re
+re
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(139,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+re
+re
+dK
+Qi
+lb
+TM
+tD
+Qi
+mj
+re
+re
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(140,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+re
+re
+dK
+Qi
+lb
+uY
+tD
+Qi
+mj
+re
+re
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(141,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+re
+re
+dK
+Qi
+lb
+uY
+tD
+Qi
+mj
+re
+re
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(142,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+re
+re
+dK
+Qi
+lb
+TM
+tD
+Qi
+mj
+re
+re
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(143,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+re
+re
+dK
+Qi
+lb
+uY
+tD
+Qi
+mj
+re
+re
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(144,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+FK
+FK
+FK
+FK
+lb
+uY
+qX
+FK
+FK
+FK
+FK
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(145,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+FK
+HD
+wi
+ST
+FK
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(146,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+Uq
+re
+re
+re
+Uq
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(147,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(148,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(149,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(150,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(151,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(152,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(153,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(154,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(155,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(156,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(157,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(158,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(159,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(160,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(161,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(162,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(163,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(164,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(165,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(166,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(167,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(168,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(169,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(170,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(171,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(172,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(173,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(174,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(175,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(176,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(177,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(178,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(179,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(180,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(181,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(182,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(183,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(184,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(185,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(186,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(187,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(188,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(189,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(190,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(191,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(192,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(193,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(194,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(195,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(196,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(197,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(198,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(199,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(200,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(201,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(202,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(203,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(204,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(205,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(206,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(207,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(208,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(209,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(210,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(211,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(212,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(213,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(214,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(215,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(216,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(217,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(218,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(219,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(220,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(221,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(222,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(223,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(224,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(225,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(226,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(227,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(228,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(229,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(230,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(231,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(232,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(233,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(234,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(235,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(236,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(237,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(238,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(239,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(240,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(241,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(242,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(243,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(244,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(245,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(246,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(247,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(248,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(249,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(250,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(251,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
+(252,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+bg
+DD
+fu
+re
+"}
+(253,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+DD
+Ov
+zA
+re
+"}
+(254,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+iU
+DD
+Sc
+re
+"}
+(255,1,1) = {"
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+re
+"}
diff --git a/_maps/map_files/Basketball/beach_bums.dmm b/_maps/map_files/Basketball/beach_bums.dmm
index 768a436e094..f5d5ecca73e 100644
--- a/_maps/map_files/Basketball/beach_bums.dmm
+++ b/_maps/map_files/Basketball/beach_bums.dmm
@@ -1,6 +1,6 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"af" = (
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
pixel_x = 6;
pixel_y = 11
},
@@ -340,7 +340,7 @@
/turf/open/misc/beach/sand,
/area/centcom/basketball)
"Jb" = (
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
pixel_x = 6;
pixel_y = 11
},
@@ -356,7 +356,7 @@
/turf/open/misc/beach/sand,
/area/centcom/basketball)
"Lu" = (
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
pixel_x = 6;
pixel_y = 11
},
diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm
index 09563ab1868..b2fad9e88d2 100644
--- a/_maps/map_files/Birdshot/birdshot.dmm
+++ b/_maps/map_files/Birdshot/birdshot.dmm
@@ -9299,7 +9299,7 @@
/area/station/maintenance/department/medical/central)
"dBA" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/small/directional/east,
/turf/open/floor/carpet/royalblack,
/area/station/commons/dorms)
@@ -11067,7 +11067,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/machinery/light/small/directional/west,
@@ -18462,10 +18462,10 @@
/obj/machinery/door/airlock/maintenance{
name = "Maintenance"
},
-/obj/effect/mapping_helpers/airlock/access/all/supply/general,
/obj/effect/mapping_helpers/airlock/unres{
dir = 1
},
+/obj/effect/mapping_helpers/airlock/access/any/supply/maintenance,
/turf/open/floor/plating,
/area/station/maintenance/port/fore)
"gKL" = (
@@ -19620,13 +19620,9 @@
/obj/effect/turf_decal/siding/wood{
dir = 9
},
-/obj/structure/rack{
- icon = 'icons/obj/fluff/general.dmi';
- icon_state = "minibar";
- name = "skeletal minibar"
- },
/obj/item/storage/fancy/candle_box,
/obj/machinery/light_switch/directional/west,
+/obj/structure/rack/skeletal,
/turf/open/floor/iron/grimy,
/area/station/service/library)
"hei" = (
@@ -22243,7 +22239,7 @@
/obj/machinery/conveyor{
id = "mining"
},
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/turf/open/floor/iron,
/area/station/cargo/miningfoundry)
"hZP" = (
@@ -35810,10 +35806,7 @@
location = "QM #1"
},
/obj/effect/turf_decal/delivery,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/storage)
"mKD" = (
@@ -39810,7 +39803,7 @@
/area/station/security/checkpoint/customs)
"ohO" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/light/small/directional/east,
/turf/open/floor/carpet/red,
/area/station/commons/dorms)
@@ -61170,6 +61163,21 @@
dir = 1
},
/area/station/command/heads_quarters/hop)
+"vdl" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door/directional/east{
+ id = "qm_warehouse_aft";
+ name = "Warehouse Door Control";
+ pixel_x = -24;
+ pixel_y = -23;
+ req_access = list("cargo")
+ },
+/turf/open/floor/plating,
+/area/station/maintenance/port/fore)
"vdm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/broken_flooring/pile/directional/east,
@@ -62674,7 +62682,8 @@
/obj/machinery/door/airlock/command{
name = "Centcom Dock"
},
-/obj/effect/mapping_helpers/airlock/access/all/command/general,
+/obj/effect/mapping_helpers/airlock/access/any/command/general,
+/obj/effect/mapping_helpers/airlock/access/any/admin/general,
/turf/open/floor/iron/textured_half,
/area/station/command/corporate_dock)
"vzY" = (
@@ -66400,10 +66409,11 @@
},
/area/station/science/xenobiology)
"wIm" = (
-/obj/effect/mapping_helpers/airlock/access/all/command/general,
/obj/machinery/door/airlock/hatch{
name = "Centcom Dock"
},
+/obj/effect/mapping_helpers/airlock/access/any/command/general,
+/obj/effect/mapping_helpers/airlock/access/any/admin/general,
/turf/open/floor/plating,
/area/station/maintenance/department/science/xenobiology)
"wIp" = (
@@ -70066,7 +70076,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/machinery/light/small/directional/west,
@@ -88522,7 +88532,7 @@ pJQ
wZF
pqv
wZF
-sxA
+vdl
slY
ueX
rVQ
diff --git a/_maps/map_files/Deathmatch/Maint_Mania.dmm b/_maps/map_files/Deathmatch/Maint_Mania.dmm
new file mode 100644
index 00000000000..ec04776ae83
--- /dev/null
+++ b/_maps/map_files/Deathmatch/Maint_Mania.dmm
@@ -0,0 +1,1499 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aD" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"aP" = (
+/obj/machinery/door/airlock/centcom,
+/turf/open/space/basic,
+/area/deathmatch)
+"bI" = (
+/obj/machinery/light/no_nightlight/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"cn" = (
+/turf/open/indestructible,
+/area/deathmatch)
+"cx" = (
+/obj/machinery/vending/wallmed/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"cy" = (
+/obj/structure/table/reinforced/ctf,
+/obj/item/gun/ballistic/shotgun/riot,
+/turf/open/indestructible,
+/area/deathmatch)
+"eX" = (
+/obj/item/ammo_casing/shotgun/frag12,
+/turf/open/indestructible,
+/area/deathmatch)
+"fh" = (
+/obj/structure/table/reinforced/ctf,
+/obj/item/storage/backpack/duffelbag/syndie/ammo,
+/turf/open/indestructible,
+/area/deathmatch)
+"ga" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/template_noop)
+"gJ" = (
+/obj/item/ammo_casing/shotgun/stunslug,
+/turf/open/indestructible,
+/area/deathmatch)
+"ho" = (
+/obj/effect/spawner/structure/window/reinforced/indestructible,
+/turf/open/floor/plating,
+/area/deathmatch)
+"hB" = (
+/turf/closed/indestructible/fakedoor,
+/area/deathmatch)
+"hN" = (
+/obj/structure/lattice,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/template_noop,
+/area/template_noop)
+"ih" = (
+/obj/item/reagent_containers/pill/maintenance,
+/turf/open/indestructible,
+/area/deathmatch)
+"iC" = (
+/obj/machinery/light/small/directional/south,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"jc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible,
+/area/deathmatch)
+"jX" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"jY" = (
+/obj/item/stack/medical/gauze{
+ amount = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"ka" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible,
+/area/deathmatch)
+"kp" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"kx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"lA" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"lJ" = (
+/obj/item/crowbar,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"lN" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/caution/stand_clear,
+/turf/open/indestructible,
+/area/deathmatch)
+"mS" = (
+/obj/effect/turf_decal/caution/stand_clear,
+/turf/open/indestructible,
+/area/deathmatch)
+"mZ" = (
+/obj/structure/grille,
+/turf/open/indestructible,
+/area/deathmatch)
+"nQ" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"nS" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/gibs/old,
+/turf/open/indestructible,
+/area/deathmatch)
+"pT" = (
+/obj/structure/rack,
+/obj/item/grenade/chem_grenade/cleaner,
+/turf/open/indestructible,
+/area/deathmatch)
+"pZ" = (
+/obj/structure/sign/poster/random/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"qK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/reagent_containers/pill/maintenance,
+/turf/open/indestructible,
+/area/deathmatch)
+"sk" = (
+/obj/structure/sign/poster/random/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"sl" = (
+/obj/machinery/door/airlock/public/glass,
+/obj/effect/mapping_helpers/airlock/abandoned,
+/turf/open/indestructible,
+/area/deathmatch)
+"sF" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"sV" = (
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"sX" = (
+/obj/structure/rack,
+/obj/machinery/light/small/directional/north,
+/obj/item/reagent_containers/cup/soda_cans/lemon_lime,
+/turf/open/indestructible,
+/area/deathmatch)
+"tT" = (
+/obj/structure/rack,
+/obj/item/stack/cable_coil,
+/obj/item/assembly/igniter,
+/turf/open/indestructible,
+/area/deathmatch)
+"ur" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/template_noop)
+"vB" = (
+/obj/machinery/light/small/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"wi" = (
+/obj/item/screwdriver,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"wC" = (
+/obj/item/weldingtool,
+/obj/structure/rack,
+/obj/item/flashlight/flare,
+/turf/open/indestructible,
+/area/deathmatch)
+"zd" = (
+/obj/machinery/vending/medical{
+ desc = "Go on, smash this vending machine. You want free healing right? Do it."
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"zF" = (
+/obj/item/ammo_casing/shotgun/improvised,
+/turf/open/indestructible,
+/area/deathmatch)
+"AG" = (
+/obj/structure/lattice/catwalk,
+/obj/item/storage/toolbox/mechanical/old/clean{
+ desc = "An old, blue toolbox, it looks soulful."
+ },
+/turf/open/space/basic,
+/area/template_noop)
+"Bs" = (
+/obj/machinery/light/small/directional/west,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"BU" = (
+/obj/item/chainsaw,
+/turf/open/indestructible,
+/area/deathmatch)
+"BV" = (
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"Dh" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/mob_spawn/corpse/human/engineer/mod,
+/turf/template_noop,
+/area/template_noop)
+"Dt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Er" = (
+/obj/item/clothing/head/utility/welding,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ew" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/reagent_containers/pill/maintenance,
+/turf/open/indestructible,
+/area/deathmatch)
+"EK" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+"EN" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible,
+/area/deathmatch)
+"EW" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"Fp" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/pill/maintenance,
+/obj/item/spear,
+/turf/open/indestructible,
+/area/deathmatch)
+"FH" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/indestructible,
+/area/deathmatch)
+"FL" = (
+/turf/template_noop,
+/area/template_noop)
+"Gi" = (
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/turf/open/indestructible,
+/area/deathmatch)
+"GA" = (
+/obj/item/stack/medical/mesh{
+ amount = 4
+ },
+/obj/item/spear,
+/obj/structure/closet/emcloset,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"GF" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"Hd" = (
+/obj/machinery/light/small/directional/north,
+/obj/item/soap/nanotrasen,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"Hp" = (
+/obj/item/reagent_containers/pill/maintenance,
+/obj/structure/sign/poster/random/directional/north,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"HE" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/statue/sandstone/assistant,
+/turf/template_noop,
+/area/template_noop)
+"Ij" = (
+/turf/open/space/basic,
+/area/template_noop)
+"It" = (
+/obj/item/gun/ballistic/rifle/boltaction/pipegun/prime,
+/obj/effect/turf_decal/box,
+/turf/open/indestructible,
+/area/deathmatch)
+"Kt" = (
+/obj/structure/table/reinforced/ctf,
+/obj/item/weldingtool,
+/turf/open/indestructible,
+/area/deathmatch)
+"KW" = (
+/obj/machinery/space_heater,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible,
+/area/deathmatch)
+"La" = (
+/obj/structure/sign/poster/random/directional/south,
+/obj/item/flashlight/flare,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"LJ" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible,
+/area/deathmatch)
+"Mt" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"MC" = (
+/obj/effect/mob_spawn/corpse/human/assistant,
+/turf/template_noop,
+/area/template_noop)
+"Na" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/cup/soda_cans/starkist,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ns" = (
+/obj/item/stack/cable_coil,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"NO" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"NU" = (
+/obj/effect/decal/cleanable/blood,
+/turf/open/indestructible,
+/area/deathmatch)
+"NY" = (
+/obj/item/screwdriver,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ok" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/machinery/light/small/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+"Om" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sign/poster/random/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+"OA" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/indestructible,
+/area/deathmatch)
+"OO" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/structure/sign/poster/random/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"OR" = (
+/obj/item/stack/medical/suture{
+ amount = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Pp" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"PW" = (
+/obj/effect/decal/cleanable/blood/gibs/torso,
+/turf/open/indestructible,
+/area/deathmatch)
+"Qr" = (
+/obj/structure/closet/wardrobe,
+/turf/open/floor/plating/airless,
+/area/template_noop)
+"QN" = (
+/obj/item/razor,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"QQ" = (
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/turf_decal/box,
+/turf/open/indestructible,
+/area/deathmatch)
+"Rm" = (
+/obj/item/weldingtool,
+/obj/structure/rack,
+/turf/open/indestructible,
+/area/deathmatch)
+"Su" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/box,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"SN" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/turf_decal/caution/stand_clear,
+/turf/open/indestructible,
+/area/deathmatch)
+"Tu" = (
+/obj/machinery/light/small/directional/north,
+/obj/structure/table/reinforced,
+/turf/open/indestructible,
+/area/deathmatch)
+"TB" = (
+/obj/structure/closet/firecloset,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"TP" = (
+/obj/effect/mapping_helpers/airlock/abandoned,
+/obj/machinery/door/airlock/public/glass,
+/turf/open/indestructible,
+/area/deathmatch)
+"Un" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/indestructible,
+/area/deathmatch)
+"Vb" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 5
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"Xb" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"XC" = (
+/obj/item/assembly/igniter,
+/turf/open/indestructible,
+/area/deathmatch)
+"XD" = (
+/obj/item/holosign_creator/security,
+/obj/machinery/light/small/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+
+(1,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+"}
+(2,1,1) = {"
+FL
+FL
+FL
+FL
+ur
+ur
+hN
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+HE
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+FL
+FL
+FL
+"}
+(3,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+"}
+(4,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+FL
+"}
+(5,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+aD
+aD
+aD
+aD
+aD
+ho
+ho
+ho
+ho
+ho
+ho
+ho
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+FL
+FL
+FL
+FL
+"}
+(6,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+cn
+lN
+cn
+pZ
+nQ
+zF
+zF
+zF
+It
+zF
+zF
+zF
+jc
+cn
+sk
+nQ
+mS
+cn
+aD
+FL
+FL
+FL
+FL
+"}
+(7,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+iC
+aD
+aD
+aD
+aD
+aD
+aD
+BV
+lJ
+Ns
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+Tu
+aD
+FL
+FL
+FL
+FL
+"}
+(8,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+cn
+mS
+nQ
+cn
+cn
+cn
+cn
+cn
+jc
+cn
+NO
+cn
+cn
+nQ
+cn
+ih
+mS
+cn
+aD
+FL
+FL
+FL
+FL
+"}
+(9,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+ho
+aD
+aD
+aD
+sX
+cn
+EN
+mZ
+EN
+cn
+EK
+aD
+aD
+mZ
+aD
+aD
+aD
+TP
+aD
+FL
+FL
+FL
+FL
+"}
+(10,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+Ew
+mS
+Mt
+nQ
+sk
+cn
+mZ
+GA
+mZ
+cn
+NU
+OA
+OO
+EW
+OA
+OA
+SN
+Un
+aD
+FL
+FL
+FL
+FL
+"}
+(11,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+cn
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+nQ
+aD
+aD
+ho
+ho
+aD
+aD
+Vb
+hB
+ur
+Dh
+FL
+FL
+"}
+(12,1,1) = {"
+aD
+aD
+aD
+aD
+aD
+aD
+jX
+aD
+Ij
+Ij
+Ij
+ga
+Ij
+Ij
+Ij
+aD
+NY
+aD
+TB
+cn
+cn
+Rm
+aD
+Xb
+aD
+FL
+FL
+FL
+FL
+"}
+(13,1,1) = {"
+aD
+bI
+cy
+cy
+cn
+ho
+jY
+ho
+Ij
+Ij
+Ij
+AG
+Ij
+Ij
+Ij
+ho
+Ok
+aD
+jX
+jc
+cn
+EK
+aD
+jc
+aD
+FL
+FL
+FL
+FL
+"}
+(14,1,1) = {"
+aP
+cn
+cn
+cn
+gJ
+ho
+ka
+aD
+Ij
+Ij
+Ij
+ga
+Ij
+Ij
+Ij
+aD
+jc
+aD
+jY
+PW
+nQ
+cn
+aD
+jX
+aD
+FL
+FL
+FL
+FL
+"}
+(15,1,1) = {"
+aD
+cn
+cn
+cn
+cn
+aD
+kp
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+aD
+cn
+aD
+sl
+aD
+QN
+BV
+aD
+ih
+aD
+FL
+FL
+FL
+FL
+"}
+(16,1,1) = {"
+aD
+cx
+cn
+cn
+cn
+hB
+kx
+mZ
+cn
+sk
+cn
+Bs
+cn
+cn
+cn
+pZ
+cn
+cn
+nQ
+cn
+QQ
+Su
+aD
+cn
+aD
+FL
+FL
+ur
+FL
+"}
+(17,1,1) = {"
+aD
+cn
+eX
+cn
+cn
+aD
+lA
+aD
+ih
+aD
+tT
+cn
+EN
+aD
+aD
+aD
+cn
+aD
+EN
+cn
+cn
+cn
+cn
+nQ
+aD
+ur
+ur
+ur
+ur
+"}
+(18,1,1) = {"
+aP
+cn
+cn
+cn
+cn
+ho
+cn
+aD
+cn
+aD
+aD
+aD
+aD
+aD
+sV
+GF
+cn
+aD
+aD
+ho
+ho
+aD
+aD
+Mt
+aD
+FL
+FL
+ur
+FL
+"}
+(19,1,1) = {"
+aD
+bI
+fh
+fh
+cn
+ho
+cn
+cn
+cn
+hB
+vB
+BU
+Fp
+aD
+Kt
+cn
+Om
+aD
+Ij
+ga
+Ij
+Ij
+aD
+mZ
+aD
+FL
+FL
+ur
+FL
+"}
+(20,1,1) = {"
+aD
+aD
+aD
+aD
+aD
+aD
+lJ
+aD
+nQ
+aD
+aD
+BV
+aD
+aD
+KW
+cn
+cn
+ho
+ga
+Qr
+ga
+Ij
+ho
+cn
+ho
+FL
+FL
+ur
+FL
+"}
+(21,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+aD
+aD
+aD
+cn
+aD
+Mt
+Dt
+cn
+aD
+aD
+aD
+cn
+ho
+Ij
+Ij
+ga
+ga
+ho
+nQ
+ho
+FL
+FL
+ur
+MC
+"}
+(22,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+aD
+cn
+sl
+cn
+cn
+FH
+GF
+La
+aD
+cn
+aD
+Ij
+Ij
+ga
+Ij
+aD
+XC
+aD
+FL
+FL
+ur
+FL
+"}
+(23,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+aD
+cn
+aD
+jX
+cn
+cn
+nQ
+LJ
+mZ
+Mt
+aD
+aD
+ho
+ho
+aD
+aD
+cn
+aD
+FL
+FL
+ur
+FL
+"}
+(24,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+aD
+nS
+aD
+wi
+Er
+Gi
+cn
+Na
+aD
+jX
+jc
+jc
+cn
+qK
+cn
+sk
+XD
+aD
+ur
+ur
+ur
+ur
+"}
+(25,1,1) = {"
+FL
+FL
+FL
+FL
+ur
+ur
+ur
+aD
+cn
+aD
+aD
+aD
+aD
+sl
+aD
+aD
+cn
+aD
+sl
+aD
+aD
+aD
+aD
+aD
+aD
+FL
+FL
+ur
+FL
+"}
+(26,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+ho
+cn
+cn
+pZ
+nQ
+cn
+cn
+cn
+cn
+cn
+aD
+OR
+aD
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
+(27,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+ho
+pT
+sF
+Mt
+mZ
+aD
+aD
+mZ
+aD
+aD
+aD
+Pp
+aD
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
+(28,1,1) = {"
+FL
+FL
+FL
+FL
+ur
+ur
+ur
+aD
+aD
+aD
+cn
+cn
+aD
+Hd
+nQ
+cn
+cn
+cn
+cn
+ho
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
+(29,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+aD
+wC
+EK
+aD
+Hp
+cn
+aD
+aD
+ho
+aD
+aD
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
+(30,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+aD
+zd
+nQ
+aD
+EN
+cn
+ho
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
+(31,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+aD
+mZ
+cn
+cn
+jc
+cn
+aD
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
+(32,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+aD
+aD
+ho
+ho
+ho
+aD
+aD
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+ur
+"}
+(33,1,1) = {"
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+FL
+FL
+ur
+FL
+"}
diff --git a/_maps/map_files/Deathmatch/OSHA_Violator.dmm b/_maps/map_files/Deathmatch/OSHA_Violator.dmm
new file mode 100644
index 00000000000..fc8291d1814
--- /dev/null
+++ b/_maps/map_files/Deathmatch/OSHA_Violator.dmm
@@ -0,0 +1,2168 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ac" = (
+/obj/structure/closet/crate/medical,
+/turf/open/space/basic,
+/area/template_noop)
+"ae" = (
+/obj/effect/mob_spawn/corpse/human/cargo_tech,
+/turf/open/space/basic,
+/area/template_noop)
+"ai" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"aE" = (
+/turf/closed/indestructible/fakedoor,
+/area/deathmatch)
+"bl" = (
+/turf/closed/indestructible/fakeglass,
+/area/deathmatch)
+"bW" = (
+/obj/structure/closet/secure_closet/engineering_welding,
+/turf/open/indestructible,
+/area/deathmatch)
+"cA" = (
+/turf/open/indestructible,
+/area/deathmatch)
+"cR" = (
+/obj/machinery/field/generator/starts_on,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"do" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"dt" = (
+/obj/machinery/light/no_nightlight/directional/north,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/field/generator/starts_on,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"dy" = (
+/obj/structure/sign/poster/official/random/directional/north,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"er" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"fH" = (
+/obj/machinery/light/no_nightlight/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"fN" = (
+/obj/structure/sign/directions/engineering,
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"gd" = (
+/obj/machinery/power/energy_accumulator/grounding_rod/anchored,
+/turf/open/indestructible,
+/area/deathmatch)
+"go" = (
+/obj/machinery/power/energy_accumulator/grounding_rod/anchored,
+/obj/machinery/light/red/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"gC" = (
+/obj/machinery/power/emitter/energycannon,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"gG" = (
+/obj/structure/cable,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"gN" = (
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"gU" = (
+/obj/structure/cable,
+/obj/machinery/conveyor/auto/inverted{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"hj" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"hR" = (
+/obj/structure/cable,
+/obj/machinery/conveyor/auto/inverted{
+ dir = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"hU" = (
+/obj/machinery/light/no_nightlight/directional/east,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"ig" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"iE" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/loading_area,
+/turf/open/indestructible,
+/area/deathmatch)
+"je" = (
+/turf/open/space/basic,
+/area/template_noop)
+"jn" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/deathmatch)
+"jC" = (
+/obj/structure/cable,
+/obj/structure/sign/poster/official/random/directional/east,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"kh" = (
+/obj/structure/closet/secure_closet/engineering_electrical,
+/turf/open/indestructible,
+/area/deathmatch)
+"kB" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"kP" = (
+/obj/machinery/conveyor/auto,
+/turf/open/indestructible,
+/area/deathmatch)
+"lu" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"ly" = (
+/obj/machinery/conveyor/auto/inverted{
+ dir = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"lU" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"mg" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"mj" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/indestructible,
+/area/deathmatch)
+"mw" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/structure/closet,
+/obj/item/soap/nanotrasen,
+/turf/open/indestructible,
+/area/deathmatch)
+"mK" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/machinery/conveyor/auto/inverted{
+ dir = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"mO" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/deathmatch)
+"np" = (
+/obj/structure/reflector/double/mapping{
+ dir = 6
+ },
+/obj/effect/turf_decal/bot/left,
+/turf/open/indestructible,
+/area/deathmatch)
+"nV" = (
+/obj/item/stack/cable_coil,
+/turf/open/indestructible,
+/area/deathmatch)
+"or" = (
+/obj/machinery/conveyor/auto,
+/obj/structure/closet/firecloset,
+/turf/open/indestructible,
+/area/deathmatch)
+"oT" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/indestructible,
+/area/deathmatch)
+"pe" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/clothing/glasses/meson/engine/tray,
+/turf/open/indestructible,
+/area/deathmatch)
+"pf" = (
+/obj/structure/reflector/single/mapping{
+ dir = 10
+ },
+/obj/effect/turf_decal/bot/left,
+/turf/open/indestructible,
+/area/deathmatch)
+"pO" = (
+/obj/structure/table/reinforced,
+/obj/item/assembly/prox_sensor,
+/turf/open/indestructible,
+/area/deathmatch)
+"qn" = (
+/obj/structure/reflector/single/mapping{
+ dir = 6
+ },
+/obj/effect/turf_decal/bot/left,
+/turf/open/indestructible,
+/area/deathmatch)
+"qo" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/caution/stand_clear,
+/turf/open/indestructible,
+/area/deathmatch)
+"rz" = (
+/obj/machinery/power/emitter/energycannon{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"sa" = (
+/turf/cordon,
+/area/template_noop)
+"sb" = (
+/obj/structure/frame/machine/secured,
+/turf/open/indestructible,
+/area/deathmatch)
+"sp" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"sx" = (
+/obj/item/clothing/suit/hazardvest,
+/turf/open/indestructible,
+/area/deathmatch)
+"sP" = (
+/obj/item/stack/rods/fifty,
+/obj/structure/rack,
+/turf/open/indestructible,
+/area/deathmatch)
+"sX" = (
+/obj/machinery/conveyor/auto,
+/obj/item/stack/sheet/cardboard,
+/turf/open/indestructible,
+/area/deathmatch)
+"sZ" = (
+/obj/structure/cable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"ta" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/utility/welding,
+/turf/open/indestructible,
+/area/deathmatch)
+"tc" = (
+/obj/machinery/light/red/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"th" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"tT" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/structure/disposaloutlet{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"tU" = (
+/obj/item/storage/toolbox/drone{
+ pixel_y = 5
+ },
+/obj/item/storage/toolbox/electrical,
+/obj/structure/rack,
+/obj/item/crowbar,
+/turf/open/indestructible,
+/area/deathmatch)
+"ub" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/machinery/light/no_nightlight/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"uv" = (
+/obj/structure/table/reinforced,
+/obj/item/weldingtool/largetank,
+/turf/open/indestructible,
+/area/deathmatch)
+"uY" = (
+/obj/structure/closet/crate/engineering,
+/turf/open/indestructible,
+/area/deathmatch)
+"vD" = (
+/obj/machinery/power/energy_accumulator/tesla_coil/anchored,
+/turf/open/indestructible,
+/area/deathmatch)
+"vG" = (
+/obj/item/tank/internals/plasma/full,
+/obj/structure/rack,
+/turf/open/indestructible,
+/area/deathmatch)
+"vK" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"vT" = (
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/indestructible,
+/area/deathmatch)
+"wb" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"wy" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"wI" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"wK" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"wL" = (
+/obj/machinery/conveyor/auto,
+/obj/item/shard,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xa" = (
+/obj/machinery/conveyor/auto,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xg" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"xj" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xs" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/crowbar/red,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xF" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xN" = (
+/obj/structure/rack,
+/obj/item/wrench,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xW" = (
+/obj/structure/reflector/single/mapping{
+ dir = 9
+ },
+/obj/effect/turf_decal/bot/left,
+/turf/open/indestructible,
+/area/deathmatch)
+"xY" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yj" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/structure/closet,
+/obj/item/toy/crayon/spraycan,
+/turf/open/indestructible,
+/area/deathmatch)
+"yo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"ys" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"yB" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yX" = (
+/obj/structure/reflector/single/mapping{
+ dir = 5
+ },
+/obj/effect/turf_decal/bot/left,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yY" = (
+/obj/structure/reflector/single/mapping{
+ dir = 9
+ },
+/obj/effect/turf_decal/bot/left,
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"zb" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/hemostat/supermatter,
+/turf/open/indestructible,
+/area/deathmatch)
+"zj" = (
+/obj/machinery/disposal/delivery_chute,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"zl" = (
+/obj/machinery/button/door/directional/north{
+ id = "deathmatch_shutter_1";
+ name = "Water Vapour Shutter"
+ },
+/obj/structure/table/reinforced,
+/obj/item/clothing/glasses/meson/engine/tray,
+/turf/open/indestructible,
+/area/deathmatch)
+"zw" = (
+/obj/item/kirbyplants,
+/obj/machinery/light/no_nightlight/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"zL" = (
+/obj/structure/rack,
+/obj/item/extinguisher/mini,
+/turf/open/indestructible,
+/area/deathmatch)
+"Aa" = (
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/caution/stand_clear,
+/turf/open/indestructible,
+/area/deathmatch)
+"Am" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Room"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ax" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"AF" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"AZ" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Bf" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/floor/plating,
+/area/deathmatch)
+"Bv" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/field/generator/starts_on,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"CC" = (
+/obj/machinery/vending/engineering,
+/turf/open/indestructible,
+/area/deathmatch)
+"CH" = (
+/obj/structure/reflector/single/mapping{
+ dir = 5
+ },
+/obj/effect/turf_decal/bot/left,
+/turf/open/indestructible,
+/area/deathmatch)
+"CI" = (
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"CR" = (
+/obj/machinery/conveyor/auto,
+/obj/structure/closet/crate,
+/obj/item/toy/spinningtoy,
+/turf/open/indestructible,
+/area/deathmatch)
+"DY" = (
+/obj/structure/cable,
+/obj/machinery/power/rtg/advanced{
+ power_gen = 50000
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ea" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Eb" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/nuke_core_container/supermatter,
+/obj/machinery/light/no_nightlight/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ec" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "deathmatch_shutter_2"
+ },
+/obj/effect/turf_decal/caution/stand_clear,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible,
+/area/deathmatch)
+"Em" = (
+/obj/structure/chair/comfy/black,
+/turf/open/indestructible,
+/area/deathmatch)
+"EY" = (
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Control Room"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/mapping_helpers/airlock/access/all/engineering/general,
+/turf/open/indestructible,
+/area/deathmatch)
+"Fd" = (
+/obj/structure/reflector/box/mapping{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible,
+/area/deathmatch)
+"Fv" = (
+/obj/machinery/power/supermatter_crystal/hugbox,
+/turf/open/indestructible,
+/area/deathmatch)
+"FM" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"FV" = (
+/obj/structure/cable,
+/obj/machinery/light/no_nightlight/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"Gq" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light/no_nightlight/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"Gx" = (
+/obj/machinery/conveyor/auto,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Gz" = (
+/obj/machinery/conveyor/auto,
+/obj/item/multitool,
+/turf/open/indestructible,
+/area/deathmatch)
+"GB" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/tank/internals/oxygen,
+/turf/open/indestructible,
+/area/deathmatch)
+"GH" = (
+/obj/structure/reflector/single/mapping{
+ dir = 6
+ },
+/obj/effect/turf_decal/bot/right,
+/turf/open/indestructible,
+/area/deathmatch)
+"GP" = (
+/obj/structure/reflector/single/mapping{
+ dir = 10
+ },
+/obj/effect/turf_decal/bot/right,
+/turf/open/indestructible,
+/area/deathmatch)
+"GT" = (
+/obj/structure/cable,
+/obj/item/clothing/suit/hazardvest,
+/turf/open/indestructible,
+/area/deathmatch)
+"GV" = (
+/obj/structure/cable,
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"Hn" = (
+/obj/structure/table/wood/fancy/black,
+/obj/item/scalpel/supermatter,
+/turf/open/indestructible,
+/area/deathmatch)
+"HL" = (
+/obj/item/clothing/gloves/color/yellow{
+ desc = "This is it. The only reason of your existence. Grab it, put them on and enjoy your newfound godhood!"
+ },
+/obj/structure/rack,
+/turf/open/indestructible,
+/area/deathmatch)
+"HP" = (
+/obj/machinery/computer/operating{
+ desc = "You start to get the feeling this is the wrong operating console....";
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"HY" = (
+/obj/structure/reflector/single/mapping{
+ dir = 9
+ },
+/obj/effect/turf_decal/bot/right,
+/turf/open/indestructible,
+/area/deathmatch)
+"Js" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/pill/patch/aiuri,
+/turf/open/indestructible,
+/area/deathmatch)
+"JF" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Kd" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"KY" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"LK" = (
+/obj/structure/reflector/single/mapping{
+ dir = 10
+ },
+/obj/effect/turf_decal/bot/right,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Mm" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/item/clothing/suit/armor/vest,
+/turf/open/indestructible,
+/area/deathmatch)
+"Mp" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"Mu" = (
+/obj/structure/cable,
+/obj/structure/sign/poster/official/random/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"My" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"MC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"MP" = (
+/obj/structure/cable,
+/obj/machinery/power/floodlight,
+/turf/open/indestructible,
+/area/deathmatch)
+"MV" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/structure/disposaloutlet,
+/turf/open/indestructible,
+/area/deathmatch)
+"NJ" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/disposal/delivery_chute,
+/turf/open/indestructible,
+/area/deathmatch)
+"NY" = (
+/obj/machinery/power/emitter/energycannon{
+ dir = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"OL" = (
+/obj/machinery/conveyor/auto/inverted{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Pg" = (
+/obj/machinery/field/generator/starts_on,
+/obj/machinery/light/no_nightlight/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"Pu" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Px" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"QA" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"QG" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/cup/bucket,
+/obj/item/pen,
+/turf/open/indestructible,
+/area/deathmatch)
+"QQ" = (
+/obj/machinery/door/poddoor/shutters/indestructible{
+ id = "deathmatch_shutter_1"
+ },
+/obj/effect/turf_decal/caution/stand_clear,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible,
+/area/deathmatch)
+"Rj" = (
+/obj/machinery/portable_atmospherics/canister/water_vapor{
+ desc = "You monster."
+ },
+/obj/machinery/button/door/directional/east{
+ id = "deathmatch_shutter_2";
+ name = "Supermatter Sampling Shutter"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Rk" = (
+/obj/effect/mob_spawn/corpse/human/assistant,
+/turf/open/indestructible,
+/area/deathmatch)
+"Rv" = (
+/obj/structure/table/reinforced,
+/obj/item/weldingtool/mini,
+/turf/open/indestructible,
+/area/deathmatch)
+"RF" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/structure/closet/crate,
+/obj/item/stack/medical/suture{
+ amount = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Sc" = (
+/obj/structure/reflector/double/mapping{
+ dir = 5
+ },
+/obj/effect/turf_decal/bot/right,
+/turf/open/indestructible,
+/area/deathmatch)
+"Sh" = (
+/obj/effect/spawner/structure/window/reinforced/plasma,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Si" = (
+/obj/item/clothing/head/utility/welding,
+/turf/open/indestructible,
+/area/deathmatch)
+"SR" = (
+/obj/machinery/conveyor/auto,
+/obj/item/tank/internals/oxygen,
+/turf/open/indestructible,
+/area/deathmatch)
+"SW" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/structure/closet/cardboard,
+/obj/item/dualsaber/toy,
+/turf/open/indestructible,
+/area/deathmatch)
+"Tu" = (
+/obj/structure/table/reinforced,
+/obj/item/bodypart/arm/left/robot,
+/turf/open/indestructible,
+/area/deathmatch)
+"TO" = (
+/obj/structure/reflector/single/mapping{
+ dir = 5
+ },
+/obj/effect/turf_decal/bot/right,
+/turf/open/indestructible,
+/area/deathmatch)
+"TY" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/loading_area{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ue" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/mask/gas/welding/up,
+/turf/open/indestructible,
+/area/deathmatch)
+"Uu" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/structure/closet,
+/obj/item/pizzabox/meat{
+ desc = "In honor of those who fell during the infamous Pizza Riot."
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"UI" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/field/generator/starts_on,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Vr" = (
+/obj/machinery/conveyor/auto/inverted{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Vu" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"VC" = (
+/obj/machinery/conveyor/auto/inverted{
+ dir = 10
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"VG" = (
+/obj/item/wrench,
+/turf/open/indestructible,
+/area/deathmatch)
+"WI" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/machinery/conveyor/auto/inverted{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Xp" = (
+/obj/structure/cable,
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/item/clothing/suit/armor/vest,
+/turf/open/indestructible,
+/area/deathmatch)
+"XU" = (
+/obj/structure/cable,
+/obj/machinery/conveyor/auto/inverted{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Yn" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Yz" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/item/clothing/glasses/meson/engine/tray,
+/turf/open/indestructible,
+/area/deathmatch)
+"YA" = (
+/obj/structure/cable,
+/turf/closed/indestructible/fakeglass,
+/area/deathmatch)
+"YJ" = (
+/obj/structure/cable,
+/obj/machinery/conveyor/auto/inverted{
+ dir = 10
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"YU" = (
+/obj/structure/cable,
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"YY" = (
+/obj/machinery/light/no_nightlight/directional/south,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/field/generator/starts_on,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Zi" = (
+/obj/structure/sign/poster/official/random/directional/south,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Zr" = (
+/obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle,
+/turf/open/space/basic,
+/area/template_noop)
+"Zz" = (
+/obj/machinery/power/singularity_beacon/syndicate,
+/turf/open/space/basic,
+/area/template_noop)
+"ZD" = (
+/obj/item/storage/toolbox/syndicate,
+/turf/open/space/basic,
+/area/template_noop)
+
+(1,1,1) = {"
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+"}
+(2,1,1) = {"
+sa
+je
+je
+je
+je
+je
+je
+je
+je
+je
+ai
+ai
+ai
+ai
+ai
+je
+je
+je
+je
+je
+je
+je
+je
+je
+sa
+"}
+(3,1,1) = {"
+sa
+je
+ai
+ai
+fN
+ai
+ai
+ai
+ai
+ai
+ai
+zb
+Eb
+Hn
+ai
+ai
+ai
+ai
+je
+je
+je
+je
+je
+je
+sa
+"}
+(4,1,1) = {"
+sa
+je
+ai
+bW
+cA
+cA
+cA
+cA
+tc
+cA
+aE
+cA
+cA
+cA
+aE
+cA
+cA
+aE
+je
+je
+je
+je
+je
+je
+sa
+"}
+(5,1,1) = {"
+sa
+je
+ai
+cA
+cA
+sb
+cA
+sb
+cA
+cA
+er
+zj
+cA
+cA
+ai
+cA
+cA
+aE
+je
+je
+je
+je
+je
+je
+sa
+"}
+(6,1,1) = {"
+sa
+je
+aE
+cA
+sb
+sb
+sb
+sb
+cA
+uY
+ys
+ai
+Ec
+ai
+ai
+cA
+cA
+ai
+je
+je
+je
+je
+je
+je
+sa
+"}
+(7,1,1) = {"
+sa
+je
+aE
+cA
+cA
+cA
+cA
+sb
+cA
+vD
+ys
+zl
+cA
+HL
+ai
+cA
+Rk
+ai
+ai
+ai
+ai
+ai
+ai
+je
+sa
+"}
+(8,1,1) = {"
+sa
+je
+ai
+cA
+gd
+cA
+cA
+cA
+cA
+vD
+ys
+zw
+Em
+HP
+ai
+Pg
+cA
+cA
+cA
+cA
+cA
+cA
+aE
+je
+sa
+"}
+(9,1,1) = {"
+sa
+je
+ai
+cA
+go
+kh
+kh
+bW
+cA
+vG
+ys
+zL
+cA
+Js
+ai
+vG
+cA
+bW
+kh
+kh
+cA
+cA
+aE
+je
+sa
+"}
+(10,1,1) = {"
+sa
+je
+ai
+aE
+ai
+bl
+bl
+bl
+aE
+bl
+ys
+bl
+EY
+bl
+ai
+bl
+aE
+bl
+bl
+bl
+ai
+aE
+ai
+je
+sa
+"}
+(11,1,1) = {"
+sa
+je
+ai
+cR
+ai
+gN
+gN
+sp
+th
+vK
+wK
+gN
+gN
+gN
+Mu
+sp
+th
+vK
+gN
+gN
+ai
+cR
+ai
+je
+sa
+"}
+(12,1,1) = {"
+sa
+je
+ai
+YA
+ai
+gN
+cA
+np
+cA
+vT
+yB
+Aa
+Fd
+Aa
+My
+Pu
+cA
+Sc
+cA
+gN
+ai
+YA
+ai
+je
+sa
+"}
+(13,1,1) = {"
+sa
+je
+ai
+Ea
+gG
+gN
+cA
+cA
+tT
+wb
+mO
+Am
+oT
+Am
+Bf
+Px
+cA
+cA
+nV
+gN
+Xp
+yo
+ai
+je
+sa
+"}
+(14,1,1) = {"
+sa
+je
+ai
+do
+gN
+kB
+cA
+sx
+cA
+wy
+mO
+Ax
+th
+JF
+Bf
+Px
+cA
+cA
+cA
+kB
+gN
+Px
+ai
+je
+sa
+"}
+(15,1,1) = {"
+sa
+je
+ai
+dt
+gN
+cA
+np
+cA
+cA
+wy
+mO
+AF
+Fv
+Kd
+Bf
+Px
+cA
+cA
+Sc
+cA
+gN
+YY
+ai
+je
+sa
+"}
+(16,1,1) = {"
+sa
+je
+ai
+do
+gN
+cA
+cA
+cA
+cA
+wy
+mO
+AZ
+FM
+KY
+Bf
+Px
+cA
+Si
+cA
+cA
+gN
+Px
+ai
+je
+sa
+"}
+(17,1,1) = {"
+sa
+je
+ai
+do
+gN
+cA
+nV
+cA
+cA
+wy
+mO
+Bf
+jn
+Bf
+Bf
+Px
+cA
+cA
+cA
+cA
+gN
+Px
+ai
+je
+sa
+"}
+(18,1,1) = {"
+sa
+je
+ai
+dy
+gN
+kB
+cA
+sP
+tU
+wI
+yW
+MC
+Gq
+MC
+MC
+QA
+tU
+sP
+cA
+cA
+gN
+Px
+ai
+je
+sa
+"}
+(19,1,1) = {"
+sa
+je
+bl
+do
+gN
+gN
+gN
+gN
+gN
+wK
+wK
+gN
+sZ
+gN
+gN
+gN
+gN
+gN
+TY
+TY
+gN
+Px
+bl
+je
+sa
+"}
+(20,1,1) = {"
+sa
+je
+bl
+do
+gU
+kP
+or
+kP
+kP
+wL
+xa
+kP
+Gx
+kP
+kP
+kP
+kP
+SR
+kP
+kP
+XU
+Px
+bl
+Zr
+sa
+"}
+(21,1,1) = {"
+sa
+je
+bl
+do
+hj
+OL
+kP
+sX
+kP
+xa
+xa
+kP
+Gz
+kP
+kP
+kP
+kP
+kP
+kP
+Vr
+Yn
+Px
+bl
+Zz
+sa
+"}
+(22,1,1) = {"
+sa
+je
+bl
+Bv
+hj
+lu
+Sh
+Sh
+Sh
+xg
+xg
+Sh
+Sh
+Sh
+Sh
+Sh
+Sh
+Sh
+Sh
+Vu
+Yn
+UI
+bl
+je
+sa
+"}
+(23,1,1) = {"
+sa
+je
+bl
+do
+hj
+ly
+pe
+lU
+ub
+xj
+xj
+lU
+GB
+lU
+lU
+lU
+ub
+SW
+lU
+VC
+Yz
+Px
+bl
+je
+sa
+"}
+(24,1,1) = {"
+sa
+je
+bl
+do
+hR
+lU
+lU
+lU
+lU
+xs
+xj
+lU
+lU
+lU
+lU
+lU
+lU
+lU
+lU
+lU
+YJ
+Px
+bl
+ZD
+sa
+"}
+(25,1,1) = {"
+sa
+ac
+bl
+do
+ig
+mg
+pf
+cA
+cA
+xF
+yX
+CC
+kB
+GH
+cA
+cA
+cA
+cA
+HY
+VG
+gN
+Px
+bl
+je
+sa
+"}
+(26,1,1) = {"
+sa
+ae
+ai
+do
+gN
+cA
+cA
+pf
+cA
+xF
+xF
+CH
+GH
+cA
+cA
+cA
+cA
+HY
+cA
+cA
+gN
+Px
+ai
+je
+sa
+"}
+(27,1,1) = {"
+sa
+je
+ai
+do
+gN
+gN
+gN
+sZ
+gN
+wK
+wK
+gN
+gN
+gN
+gN
+gN
+gN
+sZ
+gN
+gN
+gN
+Zi
+ai
+je
+sa
+"}
+(28,1,1) = {"
+sa
+je
+ai
+do
+gN
+mj
+pO
+ta
+uv
+xN
+xF
+cA
+cA
+cA
+MP
+QG
+Rv
+Tu
+Ue
+mj
+gN
+Px
+ai
+je
+sa
+"}
+(29,1,1) = {"
+sa
+je
+ai
+dt
+gN
+cA
+cA
+cA
+cA
+xF
+xY
+CI
+CI
+CI
+MV
+cA
+nV
+cA
+cA
+cA
+gN
+YY
+ai
+je
+sa
+"}
+(30,1,1) = {"
+sa
+je
+ai
+do
+gN
+OL
+kP
+kP
+kP
+xa
+kP
+CR
+kP
+kP
+kP
+or
+kP
+kP
+kP
+WI
+gN
+Px
+ai
+je
+sa
+"}
+(31,1,1) = {"
+sa
+je
+ai
+do
+iE
+mw
+qn
+cA
+cA
+xY
+yY
+CI
+CI
+LK
+cA
+cA
+cA
+cA
+TO
+Vu
+ig
+Px
+ai
+je
+sa
+"}
+(32,1,1) = {"
+sa
+je
+ai
+do
+iE
+Mm
+cA
+qn
+cA
+cA
+cA
+xW
+GP
+xF
+cA
+cA
+cA
+TO
+cA
+Vu
+ig
+Px
+ai
+je
+sa
+"}
+(33,1,1) = {"
+sa
+je
+ai
+do
+gN
+mK
+lU
+lU
+lU
+yj
+lU
+lU
+lU
+xj
+lU
+lU
+RF
+lU
+Uu
+VC
+gN
+Px
+ai
+je
+sa
+"}
+(34,1,1) = {"
+sa
+je
+ai
+do
+YU
+gN
+qo
+qo
+FV
+gN
+gN
+jC
+GT
+wK
+gN
+gN
+FV
+qo
+qo
+gN
+YU
+Px
+ai
+je
+sa
+"}
+(35,1,1) = {"
+sa
+je
+ai
+bl
+ai
+ai
+Bf
+Bf
+ai
+ai
+ai
+ai
+GV
+ys
+ai
+QQ
+ai
+Bf
+Bf
+ai
+ai
+bl
+ai
+je
+sa
+"}
+(36,1,1) = {"
+sa
+je
+ai
+cR
+NY
+ai
+rz
+rz
+ai
+gN
+DY
+DY
+gN
+Mp
+NJ
+Rj
+ai
+rz
+rz
+ai
+gC
+cR
+ai
+je
+sa
+"}
+(37,1,1) = {"
+sa
+je
+aE
+cA
+gN
+ai
+ai
+GV
+ai
+gN
+cA
+cA
+gN
+ai
+ai
+ai
+ai
+GV
+ai
+ai
+gN
+cA
+aE
+je
+sa
+"}
+(38,1,1) = {"
+sa
+je
+ai
+fH
+gN
+gN
+gN
+hU
+gN
+gN
+cA
+cA
+hU
+gN
+gN
+gN
+gN
+hU
+gN
+gN
+gN
+fH
+ai
+je
+sa
+"}
+(39,1,1) = {"
+sa
+je
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+ai
+je
+sa
+"}
+(40,1,1) = {"
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+sa
+"}
diff --git a/_maps/map_files/Deathmatch/SecuRing.dmm b/_maps/map_files/Deathmatch/SecuRing.dmm
new file mode 100644
index 00000000000..615103813fa
--- /dev/null
+++ b/_maps/map_files/Deathmatch/SecuRing.dmm
@@ -0,0 +1,567 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"e" = (
+/obj/structure/barricade/security/ctf,
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+"l" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+"n" = (
+/turf/open/floor/pod/light,
+/area/deathmatch)
+"o" = (
+/obj/machinery/recharger,
+/turf/open/floor/pod/light,
+/area/deathmatch)
+"t" = (
+/obj/structure/barricade/security/ctf,
+/turf/open/floor/pod/light,
+/area/deathmatch)
+"u" = (
+/turf/open/floor/pod,
+/area/deathmatch)
+"G" = (
+/obj/structure/barricade/security/ctf,
+/turf/open/floor/pod/dark,
+/area/deathmatch)
+"H" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/pod,
+/area/deathmatch)
+"I" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"M" = (
+/obj/machinery/light,
+/turf/open/floor/pod,
+/area/deathmatch)
+"N" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/pod,
+/area/deathmatch)
+"O" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+"R" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/pod,
+/area/deathmatch)
+"S" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+"T" = (
+/obj/machinery/light,
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+"W" = (
+/turf/open/floor/pod/dark,
+/area/deathmatch)
+"X" = (
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+"Y" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/mineral/plastitanium/red,
+/area/deathmatch)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+I
+I
+I
+I
+I
+I
+I
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+I
+I
+I
+X
+X
+O
+X
+X
+I
+I
+I
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+I
+I
+X
+X
+X
+X
+Y
+X
+X
+X
+X
+I
+I
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+I
+I
+X
+X
+X
+X
+n
+o
+n
+X
+X
+X
+X
+I
+I
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+I
+I
+e
+X
+X
+n
+n
+t
+t
+t
+n
+n
+X
+X
+e
+I
+I
+a
+a
+"}
+(6,1,1) = {"
+a
+I
+I
+X
+X
+e
+n
+n
+t
+n
+W
+n
+t
+n
+n
+e
+X
+X
+I
+I
+a
+"}
+(7,1,1) = {"
+a
+I
+X
+X
+X
+n
+o
+n
+W
+W
+W
+W
+W
+n
+o
+n
+X
+X
+X
+I
+a
+"}
+(8,1,1) = {"
+I
+I
+X
+X
+n
+n
+n
+W
+W
+G
+G
+G
+W
+W
+n
+n
+n
+X
+X
+I
+I
+"}
+(9,1,1) = {"
+I
+X
+X
+X
+n
+t
+W
+W
+W
+u
+u
+u
+W
+W
+W
+t
+n
+X
+X
+X
+I
+"}
+(10,1,1) = {"
+I
+X
+X
+n
+t
+n
+W
+G
+u
+u
+N
+u
+u
+G
+W
+n
+t
+n
+X
+X
+I
+"}
+(11,1,1) = {"
+I
+l
+Y
+o
+t
+W
+W
+G
+u
+M
+I
+R
+u
+G
+W
+W
+t
+o
+Y
+T
+I
+"}
+(12,1,1) = {"
+I
+X
+X
+n
+t
+n
+W
+G
+u
+u
+H
+u
+u
+G
+W
+n
+t
+n
+X
+X
+I
+"}
+(13,1,1) = {"
+I
+X
+X
+X
+n
+t
+W
+W
+W
+u
+u
+u
+W
+W
+W
+t
+n
+X
+X
+X
+I
+"}
+(14,1,1) = {"
+I
+I
+X
+X
+n
+n
+n
+W
+W
+G
+G
+G
+W
+W
+n
+n
+n
+X
+X
+I
+I
+"}
+(15,1,1) = {"
+a
+I
+X
+X
+X
+n
+o
+n
+W
+W
+W
+W
+W
+n
+o
+n
+X
+X
+X
+I
+a
+"}
+(16,1,1) = {"
+a
+I
+I
+X
+X
+e
+n
+n
+t
+n
+W
+n
+t
+n
+n
+e
+X
+X
+I
+I
+a
+"}
+(17,1,1) = {"
+a
+a
+I
+I
+e
+X
+X
+n
+n
+t
+t
+t
+n
+n
+X
+X
+e
+I
+I
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+I
+I
+X
+X
+X
+X
+n
+o
+n
+X
+X
+X
+X
+I
+I
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+I
+I
+X
+X
+X
+X
+Y
+X
+X
+X
+X
+I
+I
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+I
+I
+I
+X
+X
+S
+X
+X
+I
+I
+I
+a
+a
+a
+a
+a
+"}
+(21,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+I
+I
+I
+I
+I
+I
+I
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/map_files/Deathmatch/Sniper_elite.dmm b/_maps/map_files/Deathmatch/Sniper_elite.dmm
new file mode 100644
index 00000000000..3882bd4a814
--- /dev/null
+++ b/_maps/map_files/Deathmatch/Sniper_elite.dmm
@@ -0,0 +1,802 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"b" = (
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"c" = (
+/turf/open/floor/fake_snow,
+/area/deathmatch)
+"e" = (
+/obj/structure/statue/snow/snowman,
+/obj/item/toy/balloon/syndicate{
+ pixel_y = 11;
+ pixel_x = 5
+ },
+/turf/open/floor/fake_snow,
+/area/deathmatch)
+"f" = (
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"g" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"i" = (
+/obj/structure/table/reinforced/plastitaniumglass,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"k" = (
+/obj/structure/rack,
+/obj/item/ammo_box/magazine/sniper_rounds/penetrator,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"n" = (
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"o" = (
+/obj/item/stack/medical/suture,
+/turf/open/floor/fake_snow,
+/area/deathmatch)
+"p" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"q" = (
+/obj/item/crowbar,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"r" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/barricade/wooden,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"t" = (
+/obj/structure/barricade/wooden,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"u" = (
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"v" = (
+/obj/structure/rack,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"x" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"y" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"z" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"A" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"B" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/fakeice/slippery,
+/area/deathmatch)
+"C" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/chasm,
+/area/deathmatch)
+"D" = (
+/turf/open/floor/fakeice/slippery,
+/area/deathmatch)
+"F" = (
+/obj/structure/closet/crate/secure/science,
+/obj/item/toy/plush/lizard_plushie/green,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"H" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"J" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"K" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/fake_snow,
+/area/deathmatch)
+"L" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/fakeice/slippery,
+/area/deathmatch)
+"M" = (
+/obj/machinery/door/airlock/freezer,
+/obj/structure/barricade/wooden/crude,
+/turf/open/floor/iron/freezer,
+/area/deathmatch)
+"N" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"O" = (
+/obj/machinery/door/airlock/freezer,
+/turf/open/floor/iron/freezer,
+/area/deathmatch)
+"P" = (
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"Q" = (
+/obj/structure/rack,
+/obj/item/reagent_containers/hypospray/medipen/stimulants,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"R" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"U" = (
+/obj/structure/barricade/wooden,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"V" = (
+/obj/structure/rack,
+/obj/item/ammo_box/magazine/sniper_rounds/penetrator,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"W" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/iron/freezer,
+/area/deathmatch)
+"Y" = (
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+"Z" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/obj/item/ammo_casing/spent,
+/turf/open/floor/carpet/neon,
+/area/deathmatch)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+F
+r
+Y
+p
+Y
+Y
+Y
+z
+H
+Y
+Y
+p
+Y
+H
+Y
+z
+Y
+Y
+i
+Y
+H
+Y
+Y
+Y
+Y
+z
+Y
+Y
+Y
+a
+"}
+(3,1,1) = {"
+a
+p
+H
+Y
+i
+Y
+H
+Y
+i
+Y
+Y
+Y
+p
+Y
+Y
+Y
+i
+Y
+Y
+p
+Y
+Y
+i
+Y
+Y
+H
+Y
+Y
+J
+n
+a
+"}
+(4,1,1) = {"
+a
+Y
+Y
+H
+p
+Y
+Y
+Y
+i
+Y
+Y
+Y
+i
+Y
+H
+Y
+i
+H
+Y
+p
+Y
+Y
+i
+H
+Y
+Y
+i
+Y
+P
+P
+a
+"}
+(5,1,1) = {"
+a
+i
+i
+Y
+a
+Y
+H
+Y
+p
+Y
+H
+Y
+i
+Y
+Y
+Y
+p
+Y
+Y
+a
+Y
+Y
+a
+n
+J
+n
+p
+n
+Y
+H
+a
+"}
+(6,1,1) = {"
+a
+Y
+Y
+Y
+a
+n
+R
+J
+a
+n
+n
+n
+N
+n
+n
+n
+p
+b
+b
+y
+b
+x
+a
+b
+b
+x
+p
+Y
+H
+Y
+a
+"}
+(7,1,1) = {"
+a
+a
+p
+i
+a
+P
+P
+U
+a
+a
+P
+P
+p
+p
+P
+P
+a
+a
+P
+P
+P
+U
+a
+f
+f
+t
+a
+a
+p
+a
+a
+"}
+(8,1,1) = {"
+a
+n
+J
+n
+U
+c
+c
+c
+c
+e
+c
+c
+c
+c
+c
+c
+L
+D
+D
+c
+c
+c
+c
+c
+D
+D
+P
+J
+Y
+H
+a
+"}
+(9,1,1) = {"
+a
+A
+n
+n
+P
+c
+c
+D
+D
+c
+o
+D
+D
+D
+c
+D
+D
+D
+D
+D
+D
+c
+D
+D
+D
+D
+P
+n
+Y
+v
+a
+"}
+(10,1,1) = {"
+a
+k
+n
+n
+P
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+c
+D
+D
+D
+D
+D
+D
+D
+c
+a
+A
+H
+V
+a
+"}
+(11,1,1) = {"
+a
+Q
+n
+J
+U
+D
+D
+c
+K
+D
+D
+c
+c
+D
+D
+c
+c
+c
+c
+c
+D
+D
+B
+c
+c
+c
+p
+Y
+Y
+Y
+a
+"}
+(12,1,1) = {"
+a
+p
+p
+a
+U
+U
+P
+P
+a
+U
+P
+P
+p
+P
+P
+P
+a
+U
+P
+P
+P
+P
+a
+p
+i
+i
+a
+a
+p
+a
+a
+"}
+(13,1,1) = {"
+a
+Y
+Y
+Y
+n
+n
+R
+n
+p
+n
+n
+n
+R
+n
+n
+n
+p
+x
+n
+n
+n
+n
+a
+Z
+u
+u
+p
+Y
+Y
+H
+a
+"}
+(14,1,1) = {"
+a
+Y
+Y
+H
+Y
+Y
+Y
+Y
+a
+Y
+Y
+Y
+Y
+Y
+Y
+H
+a
+Y
+Y
+H
+Y
+Y
+i
+Y
+Y
+H
+p
+p
+i
+Y
+a
+"}
+(15,1,1) = {"
+a
+q
+Y
+Y
+a
+Y
+Y
+Y
+i
+Y
+Y
+H
+a
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+Y
+p
+Y
+Y
+Y
+i
+Y
+H
+Y
+a
+"}
+(16,1,1) = {"
+a
+M
+a
+O
+a
+Y
+Y
+H
+i
+Y
+Y
+Y
+i
+Y
+Y
+Y
+g
+Y
+Y
+i
+Y
+Y
+H
+Y
+Y
+Y
+g
+Y
+i
+i
+a
+"}
+(17,1,1) = {"
+a
+C
+a
+W
+p
+Y
+Y
+Y
+g
+Y
+Y
+Y
+i
+Y
+H
+Y
+a
+Y
+Y
+i
+Y
+Y
+Y
+Y
+H
+Y
+a
+Y
+Y
+Y
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/map_files/Deathmatch/The_Brig.dmm b/_maps/map_files/Deathmatch/The_Brig.dmm
new file mode 100644
index 00000000000..15048da48e2
--- /dev/null
+++ b/_maps/map_files/Deathmatch/The_Brig.dmm
@@ -0,0 +1,4779 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aa" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm16";
+ name = "Visitation Shutters"
+ },
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/table,
+/turf/open/indestructible,
+/area/deathmatch)
+"ad" = (
+/obj/structure/rack,
+/obj/item/storage/briefcase{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"al" = (
+/obj/structure/marker_beacon/burgundy,
+/obj/structure/lattice/catwalk,
+/turf/template_noop,
+/area/template_noop)
+"an" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space)
+"ao" = (
+/obj/structure/rack,
+/obj/machinery/camera/motion{
+ c_tag = "Armory - Internal";
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/light/directional/west,
+/obj/item/reagent_containers/cup/bucket,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"aw" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"aB" = (
+/obj/structure/table,
+/obj/item/flashlight,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"aE" = (
+/obj/structure/chair/wood{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"aH" = (
+/obj/structure/table/wood,
+/obj/item/folder/red,
+/obj/item/hand_labeler,
+/obj/item/camera/detective,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"aI" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"aR" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"aZ" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"bc" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"bh" = (
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"bj" = (
+/obj/structure/closet{
+ name = "Evidence Closet 2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"bp" = (
+/obj/machinery/light/small/directional/south,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/line,
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"br" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/indestructible,
+/area/deathmatch)
+"by" = (
+/obj/machinery/photocopier{
+ pixel_y = 3
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"bA" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"bI" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"bM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"cf" = (
+/obj/structure/cable,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"cl" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"cs" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"ct" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"cN" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/indestructible,
+/area/deathmatch)
+"cW" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"cX" = (
+/obj/structure/cable,
+/obj/machinery/power/rtg/debug,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"da" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"dl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"dp" = (
+/turf/open/floor/carpet,
+/area/deathmatch)
+"dq" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/cable,
+/obj/item/shield/riot{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/shield/riot,
+/obj/item/shield/riot{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"du" = (
+/turf/closed/indestructible/fakedoor,
+/area/deathmatch)
+"dA" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"dN" = (
+/obj/effect/turf_decal/trimline/red/filled/corner,
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"ew" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"eB" = (
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/bodycontainer/morgue,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"eC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"eD" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"eT" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"eU" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/vehicle/ridden/secway,
+/obj/item/spear,
+/turf/open/indestructible,
+/area/deathmatch)
+"eZ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"fB" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"fE" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"fL" = (
+/obj/structure/cable,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"fO" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/suit_storage_unit,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"gd" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"gf" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/light/small/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"gC" = (
+/obj/machinery/suit_storage_unit,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"gE" = (
+/obj/structure/table/wood,
+/obj/item/folder/red{
+ pixel_x = -7;
+ pixel_y = 6
+ },
+/obj/item/folder/red{
+ pixel_x = -7
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"gI" = (
+/obj/machinery/light/small/directional/north,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"hi" = (
+/turf/open/floor/plating,
+/area/deathmatch)
+"hv" = (
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 8
+ },
+/obj/structure/rack,
+/turf/open/indestructible,
+/area/deathmatch)
+"hw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "briglockdown";
+ name = "Brig Shutters"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/deathmatch)
+"hx" = (
+/obj/machinery/microwave{
+ pixel_x = -3;
+ pixel_y = 6
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"hG" = (
+/obj/structure/table/wood,
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"hK" = (
+/obj/structure/table,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 5
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"hS" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/security/telescreen{
+ desc = "Used for watching Prison Wing holding areas.";
+ name = "Prison Monitor";
+ network = list("prison");
+ pixel_y = 30
+ },
+/obj/item/flashlight/lamp/green{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/turf/open/floor/carpet,
+/area/deathmatch)
+"hY" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"iy" = (
+/obj/structure/table,
+/obj/item/storage/backpack/duffelbag/sec{
+ pixel_y = 7
+ },
+/obj/item/storage/backpack/duffelbag/sec,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"iB" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security E.V.A. Storage"
+ },
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/indestructible,
+/area/deathmatch)
+"iI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/computer/old{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"ja" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"je" = (
+/obj/machinery/light/directional/south,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"jr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"jB" = (
+/obj/machinery/light_switch/directional/west,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"jN" = (
+/obj/structure/table,
+/obj/machinery/light/small/directional/north,
+/obj/item/folder/red{
+ pixel_x = 3
+ },
+/obj/item/folder/white{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/healthanalyzer,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"jQ" = (
+/obj/structure/table/wood,
+/obj/machinery/computer/security/wooden_tv{
+ pixel_x = 3;
+ pixel_y = 2
+ },
+/obj/machinery/button/door/directional/north{
+ id = "dm7";
+ name = "detective's office shutters control"
+ },
+/turf/open/floor/carpet,
+/area/deathmatch)
+"jT" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/structure/disposalpipe/segment,
+/turf/open/indestructible,
+/area/deathmatch)
+"jX" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"kf" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"ki" = (
+/obj/structure/extinguisher_cabinet/directional/south,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"kj" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/chair/stool/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+"ku" = (
+/obj/structure/table,
+/obj/item/wirecutters,
+/obj/item/screwdriver{
+ pixel_x = -2;
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/machinery/syndicatebomb/training,
+/turf/open/indestructible,
+/area/deathmatch)
+"kU" = (
+/obj/effect/turf_decal/stripes/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"kV" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/obj/structure/bed/dogbed/mcgriff,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"la" = (
+/obj/machinery/vending/wardrobe/sec_wardrobe{
+ active = 0
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"lf" = (
+/turf/closed/indestructible/fakedoor/glass_airlock,
+/area/deathmatch)
+"li" = (
+/obj/structure/table,
+/obj/item/clothing/mask/surgical,
+/obj/item/reagent_containers/spray/cleaner,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 9
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"lj" = (
+/obj/item/paper_bin/carbon,
+/obj/item/pen/fountain,
+/obj/structure/table,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"lC" = (
+/obj/structure/filingcabinet,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"lT" = (
+/obj/machinery/button/flasher{
+ id = "dm1";
+ name = "Brig Entrance Flasher";
+ pixel_x = -6;
+ pixel_y = -38
+ },
+/obj/machinery/button/flasher{
+ id = "dm2";
+ name = "Holding Cell Flasher";
+ pixel_x = 6;
+ pixel_y = -38
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"lV" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"ma" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "briglockdown";
+ name = "Brig Shutters"
+ },
+/turf/open/floor/plating,
+/area/deathmatch)
+"mc" = (
+/obj/structure/closet/bombcloset/security,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"mi" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"mn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 3";
+ name = "Cell 3 Locker"
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"mC" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/plasticflaps/opaque{
+ name = "Security Deliveries"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"mE" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"mG" = (
+/obj/structure/chair/comfy/black,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"mJ" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Security Maintenance"
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/floor/plating,
+/area/deathmatch)
+"mR" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"mS" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"mW" = (
+/obj/structure/cable,
+/obj/machinery/button/door/directional/south{
+ id = "dm4";
+ name = "Armory Shutters"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"ne" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"nf" = (
+/obj/machinery/light/directional/south,
+/obj/structure/fluff/fake_camera{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"nh" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/machinery/flasher/directional/east{
+ id = "dm1"
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"nq" = (
+/obj/structure/cable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"nx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"nz" = (
+/obj/structure/table,
+/obj/item/storage/box/donkpockets{
+ pixel_x = -13;
+ pixel_y = 9
+ },
+/obj/item/storage/fancy/donut_box{
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"nB" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"nH" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"nI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"nN" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"nY" = (
+/obj/structure/table/wood,
+/obj/machinery/light/small/directional/west,
+/obj/machinery/button/door/directional/west{
+ id = "dm6";
+ name = "Privacy Shutters Control"
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"ob" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"os" = (
+/obj/structure/sign/warning/pods{
+ pixel_x = 32
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"oy" = (
+/obj/machinery/light_switch/directional/west,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"oA" = (
+/obj/machinery/light/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"oB" = (
+/obj/structure/closet/secure_closet/evidence,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/spawner/random/contraband/narcotics,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"oD" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/disposaloutlet{
+ dir = 4;
+ name = "Cargo Deliveries"
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 9
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 9
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"oN" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light/directional/north,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"oQ" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"oY" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"pa" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/light/directional/east,
+/obj/structure/closet/secure_closet/security/sec{
+ anchored = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"pc" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"pe" = (
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"pg" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm16";
+ name = "Visitation Shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/deathmatch)
+"ph" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"pr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "dm6";
+ name = "Privacy Shutters"
+ },
+/turf/open/floor/plating,
+/area/deathmatch)
+"pC" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"pF" = (
+/obj/structure/rack,
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = -5;
+ pixel_y = 7
+ },
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_y = 4
+ },
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = 5;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"pM" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"pV" = (
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/deathmatch)
+"pY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/red/filled/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"qd" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/deathmatch)
+"qf" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"qk" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood/gibs/body,
+/turf/open/indestructible,
+/area/deathmatch)
+"qv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"qy" = (
+/obj/structure/table,
+/obj/item/folder/blue{
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"qC" = (
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible,
+/area/deathmatch)
+"qE" = (
+/obj/effect/turf_decal/trimline/neutral/filled/corner{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"qP" = (
+/obj/machinery/light/directional/east,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"qS" = (
+/obj/structure/table,
+/obj/item/reagent_containers/cup/bottle/epinephrine,
+/obj/item/reagent_containers/cup/bottle/multiver,
+/obj/item/reagent_containers/syringe,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"ri" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/indestructible,
+/area/deathmatch)
+"rl" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/indestructible,
+/area/deathmatch)
+"rN" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/machinery/light_switch/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"sb" = (
+/obj/structure/closet{
+ name = "Evidence Closet 4"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/item/storage/toolbox/emergency/old,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"sg" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"sr" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"st" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"sw" = (
+/obj/item/target,
+/obj/item/target,
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target/syndicate,
+/obj/item/target/syndicate,
+/obj/structure/closet/crate/secure{
+ desc = "A secure crate containing various materials for building a customised test-site.";
+ name = "Firing Range Gear Crate"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"sA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"sG" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"sJ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"sL" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"sR" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"sZ" = (
+/obj/effect/turf_decal/trimline/blue/filled/corner{
+ dir = 1
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/indestructible,
+/area/deathmatch)
+"th" = (
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/deathmatch)
+"tl" = (
+/obj/structure/table/wood,
+/obj/machinery/recharger,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"tn" = (
+/obj/structure/chair,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"tH" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"tQ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible,
+/area/deathmatch)
+"tR" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"ua" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dm10";
+ name = "Brig Shutters"
+ },
+/obj/structure/cable,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/deathmatch)
+"ue" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible,
+/area/deathmatch)
+"us" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/indestructible,
+/area/deathmatch)
+"uD" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"uF" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"uI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/brown/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/red{
+ dir = 1
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/indestructible,
+/area/deathmatch)
+"uN" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"uQ" = (
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/restraints/handcuffs/fake{
+ desc = "Commonly used for stopping criminals.";
+ name = "handcuffs"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"uT" = (
+/obj/machinery/door/window/brigdoor/left/directional/south{
+ name = "Cell 2"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"vf" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"vl" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"vo" = (
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/security/sec{
+ anchored = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"vt" = (
+/obj/item/storage/box/deputy,
+/obj/structure/table,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"vC" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/template_noop)
+"vD" = (
+/obj/structure/table,
+/obj/structure/cable,
+/obj/machinery/button/flasher{
+ id = "dm1";
+ name = "Brig Entrance Flasher";
+ pixel_y = -3
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"vJ" = (
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"vL" = (
+/obj/machinery/light/small/directional/east,
+/obj/item/toy/plush/beeplushie,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"vU" = (
+/obj/structure/rack,
+/obj/machinery/light/directional/west,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"vZ" = (
+/obj/machinery/light/small/directional/north,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"wc" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/indestructible,
+/area/deathmatch)
+"wm" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/light_switch/directional/west{
+ pixel_y = -12
+ },
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"wn" = (
+/obj/structure/fluff/fake_camera{
+ dir = 9
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"wR" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 10
+ },
+/obj/machinery/disposal/delivery_chute{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"wT" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/turf/open/indestructible,
+/area/deathmatch)
+"wX" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible,
+/area/deathmatch)
+"xi" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/spawner/random/contraband/plus,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"xk" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/security/sec{
+ anchored = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"xm" = (
+/obj/structure/table,
+/obj/item/implanter{
+ pixel_x = 5;
+ pixel_y = 12
+ },
+/obj/item/storage/box/evidence{
+ pixel_x = -5;
+ pixel_y = 12
+ },
+/obj/item/toy/crayon/white{
+ pixel_y = -4
+ },
+/obj/item/toy/crayon/white{
+ pixel_x = -5;
+ pixel_y = -4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"xu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"xD" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"xS" = (
+/obj/machinery/button/door/directional/north{
+ id = "dm5";
+ name = "Space Shutters Control";
+ pixel_x = -24
+ },
+/obj/machinery/computer/old{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"yy" = (
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yH" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"yN" = (
+/turf/cordon,
+/area/template_noop)
+"yO" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"yR" = (
+/obj/structure/chair/stool/directional/east,
+/obj/effect/turf_decal/trimline/red/warning{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yS" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor/left/directional/north{
+ name = "Brig Control Desk"
+ },
+/obj/item/folder/red,
+/obj/item/folder/red,
+/obj/item/poster/random_official,
+/obj/structure/cable,
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/deathmatch)
+"yT" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light/directional/west,
+/obj/machinery/light_switch/directional/west,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"yY" = (
+/obj/structure/cable,
+/obj/machinery/computer/old{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"zg" = (
+/obj/machinery/light/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+"zh" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"zj" = (
+/obj/machinery/airalarm/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"zm" = (
+/obj/machinery/light/small/directional/east,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"zq" = (
+/obj/structure/window/reinforced/spawner/directional/north,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"zu" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 1
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"zG" = (
+/obj/machinery/light/directional/south,
+/obj/machinery/firealarm/directional/south,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"zU" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ae" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Am" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/item/restraints/handcuffs/fake{
+ desc = "Commonly used for stopping criminals.";
+ name = "handcuffs"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"An" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/frame/machine/secured,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"As" = (
+/obj/machinery/vending/wardrobe/det_wardrobe,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Ay" = (
+/obj/structure/table,
+/obj/item/inspector{
+ pixel_x = -5;
+ pixel_y = 12
+ },
+/obj/item/inspector{
+ pixel_x = 5
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"AF" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"AS" = (
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Bf" = (
+/obj/machinery/light/directional/west,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Bt" = (
+/obj/machinery/computer/old{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"By" = (
+/obj/machinery/vending/security{
+ active = 0
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Bz" = (
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"BK" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"BM" = (
+/obj/structure/table,
+/obj/item/poster/random_official{
+ pixel_y = 13
+ },
+/obj/item/poster/random_official{
+ pixel_y = 5
+ },
+/obj/item/poster/random_official,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Cc" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor/left/directional/north{
+ name = "Weapon Distribution";
+ req_access = list("armory")
+ },
+/obj/item/paper,
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/item/pen,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Cx" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable,
+/obj/structure/disposalpipe/trunk{
+ dir = 2
+ },
+/obj/structure/disposaloutlet,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"CH" = (
+/obj/structure/table,
+/obj/item/folder/red,
+/obj/item/taperecorder,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"CM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"CP" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/weldingtool,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"CS" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Dd" = (
+/obj/structure/filingcabinet/security{
+ pixel_x = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Dk" = (
+/obj/structure/cable,
+/obj/machinery/computer/old{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Dm" = (
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Dp" = (
+/obj/machinery/door/poddoor{
+ name = "Lockdown Door"
+ },
+/turf/open/floor/plating,
+/area/deathmatch)
+"Dz" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm16";
+ name = "Visitation Shutters"
+ },
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/table,
+/turf/open/indestructible,
+/area/deathmatch)
+"DD" = (
+/obj/structure/table/wood,
+/obj/item/paper_bin/carbon{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
+/obj/item/book/manual/wiki/security_space_law,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"DL" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"DR" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/grille/broken,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Eb" = (
+/obj/machinery/door/window/brigdoor/left/directional/south{
+ name = "Cell 3"
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ee" = (
+/obj/structure/cable,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Ef" = (
+/obj/effect/turf_decal/box,
+/obj/structure/cable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ep" = (
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable,
+/obj/machinery/door/poddoor{
+ name = "Prison Lockdown"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Et" = (
+/obj/structure/table,
+/obj/item/storage/box/evidence{
+ pixel_x = 9;
+ pixel_y = 8
+ },
+/obj/item/hand_labeler{
+ pixel_x = -8;
+ pixel_y = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/item/storage/box/evidence{
+ pixel_x = 9;
+ pixel_y = 8
+ },
+/obj/item/storage/box/evidence{
+ pixel_x = 9;
+ pixel_y = 8
+ },
+/obj/item/storage/box/prisoner{
+ pixel_x = 9
+ },
+/obj/machinery/recharger{
+ pixel_x = -5;
+ pixel_y = -3
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"EA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"EJ" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 6
+ },
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"EP" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/item/reagent_containers/cup/bucket,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"EX" = (
+/obj/machinery/light/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"Fi" = (
+/turf/template_noop,
+/area/space)
+"Fj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/structure/closet/secure_closet/security/sec{
+ anchored = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Fr" = (
+/obj/machinery/light/small/directional/south,
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Fx" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"FK" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/flasher/directional/east{
+ id = "dm2"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"FQ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"FY" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/turf/open/floor/carpet,
+/area/deathmatch)
+"Gi" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Gm" = (
+/obj/effect/turf_decal/trimline/neutral/filled/corner{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Gs" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"GM" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"GO" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"GR" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"GU" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/blood,
+/turf/open/indestructible,
+/area/deathmatch)
+"GY" = (
+/obj/structure/table/wood,
+/obj/item/phone{
+ desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/cigbutt/cigarbutt{
+ pixel_x = 5;
+ pixel_y = -1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Hd" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood/drip,
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"He" = (
+/obj/structure/tank_dispenser/oxygen,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ho" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Hp" = (
+/obj/machinery/recharger{
+ pixel_y = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Hv" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/indestructible,
+/area/deathmatch)
+"Hz" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"HK" = (
+/turf/closed/indestructible/fakeglass,
+/area/deathmatch)
+"HV" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/item/gun/ballistic/shotgun/riot,
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_y = 3
+ },
+/obj/item/gun/ballistic/shotgun/riot{
+ pixel_y = 6
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ii" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light_switch/directional/east,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ik" = (
+/obj/effect/turf_decal/trimline/red/filled/corner,
+/turf/open/indestructible,
+/area/deathmatch)
+"Iy" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/indestructible,
+/area/deathmatch)
+"IJ" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"IL" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"IS" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"IU" = (
+/obj/structure/sign/warning/pods,
+/turf/closed/wall/r_wall,
+/area/deathmatch)
+"Jb" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Jo" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"Jp" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters/window/preopen{
+ id = "dm4";
+ name = "Armory Shutters"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Jv" = (
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 1
+ },
+/obj/machinery/button/door/directional/west{
+ id = "dm8";
+ name = "Labor Camp Shuttle Lockdown"
+ },
+/obj/machinery/disposal/delivery_chute{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Jw" = (
+/obj/vehicle/ridden/secway,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"JC" = (
+/obj/machinery/light/directional/north,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"JF" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/window/brigdoor/left/directional/north{
+ name = "Brig Control Desk"
+ },
+/obj/item/paper,
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/item/storage/fancy/donut_box,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "dm11";
+ name = "Warden Desk Shutters"
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/deathmatch)
+"JM" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/soap/nanotrasen,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"JU" = (
+/obj/structure/table,
+/obj/item/folder/red,
+/obj/item/clothing/head/cone{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/clothing/head/cone{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"JZ" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "dm8";
+ name = "Prisoner Processing"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/button/door/directional/west{
+ id = "dm8";
+ name = "Labor Camp Shuttle Lockdown"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ke" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Kh" = (
+/obj/structure/cable,
+/turf/closed/indestructible/fakeglass,
+/area/deathmatch)
+"Ki" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Km" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ku" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood,
+/turf/open/indestructible,
+/area/deathmatch)
+"Kz" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/machinery/computer/old{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"KO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"KQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/chair,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible,
+/area/deathmatch)
+"Lk" = (
+/obj/structure/chair,
+/obj/structure/cable,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Lp" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor{
+ name = "Prison Lockdown"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ls" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Lz" = (
+/obj/structure/sign/directions/security{
+ dir = 1;
+ pixel_y = 8
+ },
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"LL" = (
+/obj/effect/spawner/structure/window/reinforced/tinted,
+/turf/open/floor/plating,
+/area/deathmatch)
+"LU" = (
+/obj/machinery/photocopier,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"LX" = (
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/structure/table/wood,
+/obj/item/taperecorder{
+ pixel_x = 8;
+ pixel_y = -1
+ },
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Ma" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible,
+/area/deathmatch)
+"Mb" = (
+/obj/structure/sign/warning/vacuum/external{
+ pixel_y = 32
+ },
+/obj/machinery/light/small/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"Mk" = (
+/obj/item/phone{
+ desc = "Supposedly a direct line to Nanotrasen Central Command. It's not even plugged in.";
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/obj/item/cigbutt/cigarbutt{
+ pixel_x = 5;
+ pixel_y = -1
+ },
+/obj/structure/table/wood,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Mx" = (
+/obj/structure/table,
+/obj/item/clothing/mask/gas/sechailer{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/clothing/mask/gas/sechailer{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"MG" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"MN" = (
+/obj/structure/table,
+/obj/item/folder/red{
+ pixel_x = -5
+ },
+/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"MP" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"MS" = (
+/obj/structure/table,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"MV" = (
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"MX" = (
+/obj/structure/table,
+/obj/item/folder/blue{
+ pixel_x = -18;
+ pixel_y = 3
+ },
+/obj/item/paper_bin{
+ pixel_x = 3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 3;
+ pixel_y = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ni" = (
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Nw" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"ND" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"NW" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/warning{
+ dir = 8
+ },
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"NZ" = (
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"Oi" = (
+/obj/structure/closet{
+ name = "Evidence Closet 3"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Os" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Ox" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/closet/secure_closet/brig{
+ id = "Cell 2";
+ name = "Cell 2 Locker"
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Oy" = (
+/obj/effect/decal/cleanable/blood/gibs/torso,
+/turf/open/indestructible,
+/area/deathmatch)
+"Oz" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"OF" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"OJ" = (
+/obj/item/target/syndicate,
+/obj/structure/training_machine,
+/turf/open/indestructible,
+/area/deathmatch)
+"OK" = (
+/obj/structure/chair/office,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line,
+/turf/open/indestructible,
+/area/deathmatch)
+"OU" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Pj" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Secure Gear Storage"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Pn" = (
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass{
+ pixel_x = -2;
+ pixel_y = -3
+ },
+/obj/item/reagent_containers/cup/glass/bottle/amaretto{
+ pixel_x = -10;
+ pixel_y = 10
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Pt" = (
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"PM" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/structure/cable,
+/obj/structure/disposalpipe/junction{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"PO" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Wing"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/indestructible,
+/area/deathmatch)
+"PT" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"PV" = (
+/obj/machinery/computer/security/telescreen{
+ desc = "Used for watching Prison Wing holding areas.";
+ dir = 1;
+ name = "Prison Monitor";
+ network = list("prison");
+ pixel_y = -30
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Qd" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_y = 7
+ },
+/obj/machinery/light/small/directional/south,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Qe" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/blood,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Qp" = (
+/obj/effect/turf_decal/trimline/brown/filled/line{
+ dir = 10
+ },
+/obj/effect/turf_decal/trimline/red/filled/warning{
+ dir = 10
+ },
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Qt" = (
+/obj/machinery/light/small/directional/west,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/disposal/delivery_chute{
+ dir = 4
+ },
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Qz" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "dm10";
+ name = "Brig Shutters"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/deathmatch)
+"QG" = (
+/obj/machinery/door/window/left/directional/north,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"Rd" = (
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Rp" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Rq" = (
+/obj/structure/cable,
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"Rv" = (
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Rx" = (
+/obj/structure/disposalpipe/segment,
+/turf/closed/wall/r_wall,
+/area/deathmatch)
+"Ry" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable,
+/obj/item/crowbar,
+/turf/open/indestructible,
+/area/deathmatch)
+"RL" = (
+/obj/machinery/light_switch/directional/south,
+/obj/structure/cable,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"RR" = (
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "dm5";
+ name = "Space Shutters"
+ },
+/turf/closed/indestructible/fakeglass,
+/area/deathmatch)
+"RY" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Se" = (
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/indestructible,
+/area/deathmatch)
+"Sg" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"St" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"Sz" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/photocopier{
+ pixel_y = 3
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"SA" = (
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 1
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"SB" = (
+/obj/structure/bed,
+/obj/item/bedsheet,
+/obj/machinery/iv_drip,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/line,
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"SF" = (
+/obj/structure/extinguisher_cabinet/directional/north,
+/obj/machinery/light/directional/north,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/indestructible,
+/area/deathmatch)
+"SG" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"SI" = (
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 1
+ },
+/obj/machinery/light/directional/north,
+/turf/open/indestructible,
+/area/deathmatch)
+"SO" = (
+/obj/structure/cable,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"SR" = (
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Tx" = (
+/obj/machinery/status_display/evac/directional/north,
+/obj/machinery/light/directional/north,
+/obj/structure/cable,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"TK" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/blood,
+/turf/open/indestructible,
+/area/deathmatch)
+"TY" = (
+/obj/effect/turf_decal/trimline/neutral/filled/corner{
+ dir = 4
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ub" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/obj/machinery/door/poddoor/preopen{
+ id = "dm11";
+ name = "Brig Shutters"
+ },
+/turf/open/floor/plating,
+/area/deathmatch)
+"Uc" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ue" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 8
+ },
+/obj/effect/turf_decal/trimline/red/filled/corner,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ui" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/item/storage/toolbox/mechanical/old{
+ pixel_x = 3;
+ pixel_y = -3
+ },
+/obj/item/storage/toolbox/mechanical/old,
+/obj/item/storage/toolbox/mechanical/old{
+ pixel_x = -3;
+ pixel_y = 3
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Ux" = (
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Uz" = (
+/obj/structure/table,
+/obj/item/folder/red{
+ pixel_x = 14
+ },
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = -3;
+ pixel_y = 8
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"UD" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/spawner/random/contraband/armory,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"UQ" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"UU" = (
+/obj/effect/turf_decal/trimline/red/filled/line,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/footprints{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Vg" = (
+/obj/effect/turf_decal/trimline/red/filled/corner,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Vr" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Vu" = (
+/obj/structure/cable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Vv" = (
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/obj/machinery/computer/old{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"VG" = (
+/obj/machinery/light/small/directional/east,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"VI" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/effect/mapping_helpers/airlock/locked,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"VL" = (
+/obj/structure/cable,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/deathmatch)
+"VO" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible,
+/area/deathmatch)
+"VR" = (
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 10
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"Wd" = (
+/obj/machinery/door/airlock/command{
+ name = "Head of Security's Office"
+ },
+/obj/structure/cable,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Wg" = (
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Wo" = (
+/obj/structure/cable,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/deathmatch)
+"Wp" = (
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/indestructible,
+/area/deathmatch)
+"Wv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Wz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/structure/sign/warning/vacuum/external{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"WD" = (
+/obj/machinery/door/firedoor,
+/obj/structure/cable,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"WI" = (
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"WO" = (
+/obj/structure/chair/comfy/black{
+ dir = 4
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"WR" = (
+/obj/structure/closet{
+ name = "Evidence Closet 1"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"WV" = (
+/obj/machinery/door/window/brigdoor/left/directional/south{
+ name = "Cell 1"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"WW" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/table,
+/obj/machinery/button/door{
+ desc = "Controls the shutters over the cell windows.";
+ id = "dm10";
+ name = "Cell Window Control";
+ pixel_x = -6;
+ pixel_y = 7;
+ specialfunctions = 4
+ },
+/obj/machinery/button/door{
+ desc = "Controls the shutters over the brig windows.";
+ id = "dm11";
+ name = "Brig Lockdown Control";
+ pixel_x = 6;
+ pixel_y = 7
+ },
+/obj/item/key/security,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 8
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"WX" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/indestructible,
+/area/deathmatch)
+"XA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 6
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"XI" = (
+/turf/open/indestructible,
+/area/deathmatch)
+"XK" = (
+/turf/closed/wall,
+/area/deathmatch)
+"XL" = (
+/obj/structure/cable,
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/indestructible,
+/area/deathmatch)
+"XS" = (
+/obj/machinery/light/directional/east,
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -11;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = -11;
+ pixel_y = 7
+ },
+/obj/item/hand_labeler{
+ pixel_x = -10;
+ pixel_y = -6
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"XX" = (
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Yg" = (
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/structure/cable,
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"Yh" = (
+/turf/closed/wall/r_wall,
+/area/deathmatch)
+"Yz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/indestructible,
+/area/deathmatch)
+"YI" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/suit_storage_unit,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"YN" = (
+/obj/structure/chair/wood{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"YQ" = (
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"YS" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"YU" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Airlock"
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"YW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/deathmatch)
+"YY" = (
+/obj/structure/rack,
+/obj/item/gun/energy/laser/practice{
+ pixel_x = 2;
+ pixel_y = 5
+ },
+/obj/item/gun/energy/laser/practice{
+ pixel_x = 2;
+ pixel_y = 1
+ },
+/obj/item/gun/energy/laser/practice{
+ pixel_x = 2;
+ pixel_y = -2
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"YZ" = (
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/rack,
+/obj/item/healthanalyzer{
+ pixel_y = -2
+ },
+/obj/structure/cable,
+/obj/effect/turf_decal/trimline/blue/filled/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/deathmatch)
+"Zj" = (
+/obj/machinery/door/window/brigdoor/security/holding{
+ id = "Holding Cell";
+ name = "Holding Cell"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible,
+/area/deathmatch)
+"Zq" = (
+/turf/template_noop,
+/area/template_noop)
+"Zr" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/bed,
+/obj/item/bedsheet,
+/turf/open/indestructible,
+/area/deathmatch)
+"Zv" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "dm7";
+ name = "Detective's Office Shutters"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/deathmatch)
+"Zz" = (
+/obj/structure/table/wood,
+/obj/item/taperecorder{
+ pixel_x = 3
+ },
+/obj/item/storage/box/evidence,
+/obj/item/flashlight/seclite,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"ZC" = (
+/obj/structure/chair,
+/turf/open/floor/iron/grimy,
+/area/deathmatch)
+"ZF" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"ZJ" = (
+/obj/structure/closet/l3closet/security,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/indestructible,
+/area/deathmatch)
+"ZO" = (
+/obj/effect/decal/cleanable/robot_debris/down,
+/turf/open/floor/plating,
+/area/deathmatch)
+
+(1,1,1) = {"
+Zq
+IJ
+Yh
+Yh
+Yh
+yN
+yN
+yN
+IJ
+IJ
+IJ
+IJ
+du
+IJ
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
+(2,1,1) = {"
+Zq
+IJ
+YI
+ZF
+Yh
+aa
+pg
+Dz
+Yh
+li
+qS
+eB
+VR
+Yh
+HK
+HK
+lf
+HK
+Zq
+HK
+lf
+HK
+IJ
+IJ
+Kh
+Yh
+"}
+(3,1,1) = {"
+Zq
+IJ
+He
+MV
+XK
+yR
+YW
+yR
+XK
+jN
+NZ
+NZ
+bp
+Yh
+iI
+HK
+Ux
+HK
+Zq
+XK
+zm
+VI
+JZ
+zj
+eC
+IJ
+"}
+(4,1,1) = {"
+Zq
+IJ
+fO
+ZF
+ZO
+XI
+WI
+WX
+XK
+MS
+NZ
+vf
+SB
+XK
+oA
+XK
+VI
+XK
+XK
+Yh
+Yh
+Yh
+XK
+Mb
+eC
+Kh
+"}
+(5,1,1) = {"
+Zq
+IJ
+XK
+iB
+XK
+YW
+YW
+jX
+XK
+hK
+ph
+ph
+YZ
+XK
+XI
+Wz
+Vr
+Jv
+YW
+GR
+Zr
+Qz
+kj
+Wp
+eC
+IJ
+"}
+(6,1,1) = {"
+Zq
+du
+Lp
+Ki
+PO
+GM
+ND
+GM
+bI
+Fx
+Fx
+Fx
+XX
+sZ
+XI
+Yz
+WI
+WI
+WV
+nI
+nI
+ua
+Ho
+XI
+ki
+IJ
+"}
+(7,1,1) = {"
+Zq
+Kh
+Ep
+Ki
+YW
+WI
+WI
+nq
+WI
+WI
+WI
+WI
+WI
+WI
+WI
+Rd
+Ku
+zg
+XK
+YW
+Wo
+Yh
+Ho
+XI
+eC
+IJ
+"}
+(8,1,1) = {"
+Zq
+du
+Lp
+VG
+PO
+os
+EX
+Ik
+Os
+yy
+XI
+XI
+XI
+XI
+XI
+XI
+wc
+XI
+YW
+GR
+Zr
+Qz
+kj
+XI
+eC
+IJ
+"}
+(9,1,1) = {"
+Zq
+IJ
+Yh
+Yh
+Yh
+XK
+XK
+XK
+YU
+XK
+Et
+FQ
+IS
+An
+Sz
+IU
+Sg
+WI
+uT
+nI
+Ox
+Qz
+Ho
+XI
+eC
+IJ
+"}
+(10,1,1) = {"
+Zq
+Zq
+Zq
+Zq
+Yh
+Oi
+bj
+WR
+zU
+Yh
+Yh
+YW
+Yh
+mc
+ZJ
+YW
+Sg
+zg
+XK
+Wo
+YW
+Yh
+Ho
+nq
+je
+IJ
+"}
+(11,1,1) = {"
+Zq
+Zq
+Zq
+Zq
+Yh
+vZ
+aR
+MG
+zU
+YW
+vU
+SR
+Jp
+Ho
+cN
+XI
+Sg
+XI
+YW
+GR
+Zr
+Qz
+kj
+WI
+Wv
+IJ
+"}
+(12,1,1) = {"
+vC
+vC
+vC
+vC
+Yh
+oB
+pC
+sb
+Dd
+Yh
+JM
+SR
+Jp
+Ho
+Ue
+Rp
+da
+UQ
+Eb
+nI
+mn
+Qz
+Ho
+WI
+oD
+IJ
+"}
+(13,1,1) = {"
+vC
+Zq
+Zq
+Zq
+Yh
+Yh
+DR
+Yh
+Yh
+Yh
+nH
+mW
+Yh
+SI
+PT
+Yh
+qd
+YW
+Yh
+Wo
+YW
+Yh
+tR
+cs
+sA
+Kh
+"}
+(14,1,1) = {"
+vC
+Zq
+Zq
+Zq
+Yh
+Ui
+OF
+UD
+CP
+ao
+pe
+SR
+Yh
+wn
+PM
+Rx
+kV
+eU
+WW
+Vr
+wR
+Yh
+xD
+WI
+uI
+IJ
+"}
+(15,1,1) = {"
+al
+Zq
+Zq
+Zq
+Yh
+Ux
+Vg
+TY
+dN
+TY
+Vg
+Gm
+Cc
+yy
+PT
+YW
+DL
+wX
+XI
+XI
+Kz
+ma
+xD
+WI
+Wv
+Dp
+"}
+(16,1,1) = {"
+vC
+Zq
+Zq
+Zq
+Yh
+Ux
+qE
+Dm
+qE
+Dm
+qE
+Dm
+Ke
+Hv
+PT
+SO
+DL
+WI
+vD
+WI
+OK
+JF
+xD
+WI
+WI
+Dp
+"}
+(17,1,1) = {"
+vC
+Zq
+Zq
+Zq
+Yh
+oN
+tH
+tH
+xi
+Am
+EP
+Ii
+Kh
+Rv
+UU
+YW
+oY
+Vv
+XS
+ja
+EJ
+hw
+JC
+WI
+qC
+Dp
+"}
+(18,1,1) = {"
+IJ
+Kh
+Kh
+IJ
+Yh
+Yh
+VL
+VL
+Yh
+Yh
+Yh
+Yh
+Yh
+oA
+UU
+Yh
+yS
+YW
+Yh
+YW
+YW
+Yh
+Ae
+WI
+qC
+Lz
+"}
+(19,1,1) = {"
+IJ
+HV
+dq
+MP
+IJ
+vo
+yH
+uD
+xk
+Bf
+jB
+JU
+YW
+yy
+SA
+RY
+rl
+Ls
+zu
+sr
+kf
+sR
+mR
+XI
+qC
+IJ
+"}
+(20,1,1) = {"
+aw
+Ux
+SR
+SR
+Pj
+SR
+SR
+Vu
+SR
+SR
+SR
+SR
+oQ
+Ho
+WI
+Hd
+nq
+XI
+qd
+nx
+pY
+Ub
+DL
+XI
+qC
+IJ
+"}
+(21,1,1) = {"
+IJ
+dA
+gd
+IL
+IJ
+pa
+pM
+eT
+SR
+By
+Fj
+la
+YW
+NW
+Qp
+bh
+WI
+WI
+Yg
+jr
+XA
+nh
+sG
+EX
+SG
+IJ
+"}
+(22,1,1) = {"
+IJ
+Kh
+Kh
+IJ
+Yh
+Yh
+Yh
+YW
+oQ
+XK
+YW
+XK
+XK
+YW
+XK
+SF
+wT
+lT
+Yh
+YW
+Wo
+Yh
+Rq
+Rq
+IJ
+IJ
+"}
+(23,1,1) = {"
+Yh
+sw
+sJ
+wm
+YW
+nB
+GM
+GM
+Jb
+GM
+GM
+ku
+XK
+Jw
+XK
+Se
+TK
+Oy
+YW
+KQ
+GR
+uQ
+Yh
+cX
+Ux
+IJ
+"}
+(24,1,1) = {"
+Kh
+YY
+Ef
+ct
+lV
+sG
+XL
+Ni
+ob
+ob
+tQ
+mS
+yT
+Ux
+YW
+yy
+qk
+XI
+YW
+tn
+GR
+st
+Yh
+cX
+Ux
+IJ
+"}
+(25,1,1) = {"
+Yh
+Bz
+fB
+Qd
+XK
+XK
+uF
+vl
+xm
+BM
+qy
+hY
+Iy
+Oz
+AS
+Nw
+pc
+WI
+Zj
+xu
+bM
+nI
+Rq
+SR
+Ux
+IJ
+"}
+(26,1,1) = {"
+Yh
+cl
+bc
+KO
+XK
+pe
+Ma
+Ux
+Ux
+Ux
+MX
+GO
+br
+Ux
+WD
+DL
+Hz
+XI
+YW
+KQ
+EA
+st
+Yh
+vL
+Ux
+IJ
+"}
+(27,1,1) = {"
+Yh
+YS
+XI
+kU
+XK
+pe
+Ma
+by
+Qe
+CS
+aB
+GO
+VO
+Ux
+YW
+Rv
+Hz
+XI
+YW
+KQ
+FK
+Yh
+IJ
+IJ
+IJ
+IJ
+"}
+(28,1,1) = {"
+Yh
+YS
+XI
+kU
+XK
+pe
+Ma
+mG
+vt
+CS
+bA
+GU
+PV
+XK
+XK
+XI
+Hz
+nf
+Yh
+Yh
+Yh
+Yh
+Qt
+zq
+Zz
+IJ
+"}
+(29,1,1) = {"
+Kh
+YS
+OJ
+kU
+XK
+pe
+Ma
+vJ
+lj
+Ux
+Uz
+GO
+WI
+Dk
+qd
+XI
+Hz
+Ik
+Zv
+ad
+oy
+Pt
+eD
+QG
+lC
+IJ
+"}
+(30,1,1) = {"
+Yh
+ew
+gf
+eZ
+XK
+XK
+AF
+Ux
+Ux
+Ux
+MN
+GO
+XL
+Km
+qd
+XI
+Rd
+jT
+Uc
+YQ
+YQ
+uN
+qv
+zq
+Fr
+IJ
+"}
+(31,1,1) = {"
+Yh
+Kh
+Yh
+Kh
+Yh
+hx
+Wv
+ue
+iy
+Mx
+Ay
+zh
+zG
+XK
+XK
+XI
+XI
+hv
+Zv
+hG
+aH
+DD
+sg
+IJ
+IJ
+IJ
+"}
+(32,1,1) = {"
+an
+Fi
+Fi
+Fi
+Kh
+nz
+WI
+eC
+BK
+dl
+us
+aZ
+WI
+Ry
+YW
+Ik
+Os
+mE
+Yh
+hS
+FY
+dp
+Pt
+du
+Zq
+Zq
+"}
+(33,1,1) = {"
+Yh
+Yh
+RR
+Yh
+Yh
+Cx
+ri
+yO
+cW
+rN
+Os
+Hp
+UQ
+fE
+Yh
+Yh
+mi
+Yh
+Yh
+jQ
+pV
+pV
+As
+IJ
+Zq
+Zq
+"}
+(34,1,1) = {"
+Yh
+xS
+yY
+Bt
+Yh
+pr
+Yh
+pF
+ne
+Yh
+St
+Yh
+OU
+Yh
+Yh
+Ux
+Ux
+Ux
+IJ
+IJ
+IJ
+IJ
+IJ
+IJ
+Zq
+Zq
+"}
+(35,1,1) = {"
+RR
+Wg
+Ee
+WO
+nY
+Wg
+Yh
+Lk
+Wg
+Yh
+mC
+Yh
+Pt
+ZC
+th
+Ux
+Gs
+sL
+IJ
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
+(36,1,1) = {"
+RR
+CM
+GY
+Pn
+tl
+Gi
+Wd
+Ee
+Wg
+mJ
+hi
+XK
+aI
+ZC
+LL
+Ux
+nN
+CH
+IJ
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
+(37,1,1) = {"
+RR
+cf
+cf
+YN
+aE
+RL
+Yh
+Wg
+qP
+Yh
+hi
+XK
+gI
+ZC
+LL
+Ux
+qf
+qf
+IJ
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
+(38,1,1) = {"
+Yh
+Tx
+dp
+dp
+dp
+Jo
+Yh
+Yh
+Yh
+Yh
+du
+XK
+Mk
+LX
+XK
+Ux
+Ux
+Ux
+IJ
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
+(39,1,1) = {"
+Yh
+fL
+gC
+gE
+LU
+Yh
+Yh
+Zq
+Zq
+Zq
+Zq
+IJ
+IJ
+IJ
+IJ
+IJ
+IJ
+IJ
+IJ
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
+(40,1,1) = {"
+Yh
+RR
+Yh
+Yh
+Yh
+Yh
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+Zq
+"}
diff --git a/_maps/map_files/Deathmatch/arena.dmm b/_maps/map_files/Deathmatch/arena.dmm
new file mode 100644
index 00000000000..d407234f0ab
--- /dev/null
+++ b/_maps/map_files/Deathmatch/arena.dmm
@@ -0,0 +1,1978 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aj" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"ao" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"aD" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 5
+ },
+/obj/machinery/light/floor,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"aI" = (
+/turf/open/chasm/true,
+/area/deathmatch)
+"bg" = (
+/obj/effect/turf_decal/siding/wideplating/dark/corner{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"bw" = (
+/obj/item/gun/ballistic/automatic/wt550,
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/magazine/wt550m9,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"bC" = (
+/obj/structure/barricade/wooden,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"cf" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/box/donkpockets/donkpocketpizza,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"cw" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/light/floor,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"cM" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"cY" = (
+/obj/structure/barricade/security/murderdome,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"dp" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/chasm/true,
+/area/deathmatch)
+"dN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"dU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"ek" = (
+/obj/item/gun/ballistic/shotgun/sc_pump,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"eC" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"fp" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/storage/medkit/tactical/premium,
+/obj/structure/table/reinforced,
+/obj/structure/window/spawner/directional/south,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"fX" = (
+/obj/structure/railing,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"hb" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"hG" = (
+/obj/effect/spawner/structure/window,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"ir" = (
+/obj/effect/turf_decal/siding/wideplating/dark,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"jA" = (
+/obj/effect/turf_decal/siding/wideplating/dark/corner{
+ dir = 8
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"kk" = (
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"lv" = (
+/obj/structure/chair/office/tactical{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"lQ" = (
+/obj/item/gun/ballistic/revolver/reverse,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"lS" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/frag/mega,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"lT" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/structure/bed/maint,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"mz" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 6
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"mI" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"mV" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"ns" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"nI" = (
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"nT" = (
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"pt" = (
+/obj/item/clothing/suit/armor/swat,
+/obj/item/clothing/head/helmet/swat/nanotrasen,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/melee/energy/sword,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"pR" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"qa" = (
+/turf/closed/indestructible/riveted,
+/area/deathmatch)
+"qH" = (
+/obj/item/food/roast_dinner,
+/obj/structure/table/reinforced,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"qP" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"rc" = (
+/obj/effect/turf_decal/siding/wideplating/dark,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"sd" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 10
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"sk" = (
+/obj/item/gun/ballistic/rifle/rebarxbow/syndie,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"st" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/item/shield/roman,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating/dark,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"sK" = (
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"tc" = (
+/obj/item/stack/rods/ten,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating/dark,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"tF" = (
+/obj/structure/mystery_box/tdome,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"tT" = (
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"ud" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"un" = (
+/obj/structure/barricade/security/murderdome,
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"vm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light/floor,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"vM" = (
+/obj/structure/table/reinforced,
+/obj/item/reagent_containers/spray/waterflower/superlube,
+/obj/structure/window/plasma/spawner/directional/east,
+/obj/structure/window/plasma/spawner/directional/north,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"vW" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/item/gun/ballistic/automatic/m90/unrestricted,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"wg" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_casing/shotgun/frag12,
+/obj/item/ammo_casing/shotgun/frag12,
+/obj/item/ammo_casing/shotgun/frag12,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"wz" = (
+/obj/effect/spawner/random/contraband/armory,
+/obj/item/clothing/suit/armor/bone,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"xD" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"xG" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 2
+ },
+/obj/machinery/conveyor/auto,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"xJ" = (
+/obj/machinery/door/airlock/grunge,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"xK" = (
+/obj/effect/spawner/random/contraband/grenades/cluster,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"yb" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"yA" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"zd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"zy" = (
+/obj/structure/mystery_box/tdome,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"An" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/suit/armor/vest/alt,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"As" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Bl" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/machinery/microwave,
+/obj/item/kitchen/fork,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating/dark,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Br" = (
+/obj/effect/turf_decal/siding/wideplating/dark/corner{
+ dir = 4
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"BH" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/chasm/true,
+/area/deathmatch)
+"Db" = (
+/obj/item/gun/ballistic/revolver/nagant,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Dp" = (
+/obj/item/gun/ballistic/automatic/pistol/m1911,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"DC" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"DF" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Ef" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 5
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"En" = (
+/turf/cordon,
+/area/deathmatch)
+"EA" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"EQ" = (
+/obj/effect/turf_decal/siding/wideplating/dark,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Gb" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Go" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Gz" = (
+/obj/item/gun/ballistic/rifle/boltaction/prime,
+/obj/structure/table/reinforced,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"GY" = (
+/obj/structure/table/reinforced,
+/obj/item/grenade/mirage,
+/obj/item/grenade/mirage,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"HD" = (
+/obj/lightning_thrower,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Ig" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Ih" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"In" = (
+/obj/structure/mystery_box/tdome,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"IJ" = (
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 2
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Jm" = (
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Jq" = (
+/obj/structure/lattice/catwalk,
+/turf/open/chasm/true,
+/area/deathmatch)
+"JN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Kb" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/strilka310/surplus,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Kr" = (
+/obj/item/stack/rods/ten,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"KT" = (
+/obj/structure/chair/office/tactical{
+ dir = 1
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"KX" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/machinery/light/floor,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Lh" = (
+/obj/item/clothing/suit/armor/vest/russian_coat,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"LA" = (
+/obj/effect/spawner/random/medical/medkit_rare,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Ml" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 10
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Mq" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"ML" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Om" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/remains/human,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"OK" = (
+/obj/effect/turf_decal/siding/wideplating/dark,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"OU" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"PU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/spawner/random/contraband/grenades/cluster,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Qd" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/medkit/tactical/premium,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"QQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"QY" = (
+/obj/structure/table/reinforced,
+/obj/item/gun/ballistic/automatic/pistol/m1911,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Rq" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"RE" = (
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 2
+ },
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Sy" = (
+/obj/machinery/light/floor,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"SZ" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 2
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"TC" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/railing/corner/end,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"TQ" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/machinery/light/floor,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Uk" = (
+/obj/structure/lattice/catwalk,
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 4
+ },
+/turf/open/chasm/true,
+/area/deathmatch)
+"Uv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"UU" = (
+/obj/structure/table/reinforced,
+/obj/structure/window/plasma/spawner/directional/north,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"UV" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 5
+ },
+/obj/machinery/deployable_turret,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Vl" = (
+/obj/structure/mystery_box/tdome,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Vx" = (
+/obj/structure/barricade/security/murderdome,
+/obj/effect/turf_decal/siding/wideplating/dark,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"VA" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/gun/ballistic/revolver/c38,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Wd" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"We" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Ws" = (
+/obj/effect/turf_decal/siding/wideplating/dark/corner{
+ dir = 8
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"WE" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wideplating/dark,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"WP" = (
+/obj/structure/table/reinforced,
+/obj/item/gun/ballistic/revolver/c38,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"WQ" = (
+/obj/effect/spawner/random/entertainment/drugs,
+/obj/effect/spawner/random/entertainment/drugs,
+/obj/effect/spawner/random/entertainment/drugs,
+/obj/effect/spawner/random/entertainment/drugs,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Xc" = (
+/obj/effect/spawner/random/contraband/armory,
+/obj/item/clothing/suit/armor/bone,
+/obj/structure/table/reinforced,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"XG" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"XP" = (
+/obj/machinery/light/floor,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"XR" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 9
+ },
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"XT" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/mystery_box/tdome,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Yc" = (
+/obj/effect/turf_decal/siding/wideplating/dark,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"YI" = (
+/obj/structure/lattice/catwalk,
+/obj/item/storage/toolbox/guncase/rocketlauncher{
+ weapon_to_spawn = /obj/item/gun/ballistic/rocketlauncher/unrestricted
+ },
+/obj/effect/light_emitter{
+ set_cap = 2;
+ light_color = "#DEEFFF";
+ set_luminosity = 2
+ },
+/turf/open/chasm/true,
+/area/deathmatch)
+"ZO" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/railing/corner/end{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"ZR" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"ZZ" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+
+(1,1,1) = {"
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+"}
+(2,1,1) = {"
+En
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+En
+"}
+(3,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(4,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(5,1,1) = {"
+En
+qa
+aI
+aI
+qa
+PU
+zd
+XG
+qa
+qa
+qa
+XG
+zd
+vm
+TC
+dU
+JN
+ZO
+cw
+dN
+zd
+qa
+qa
+qa
+XG
+zd
+qa
+qa
+aI
+aI
+qa
+En
+"}
+(6,1,1) = {"
+En
+qa
+aI
+aI
+EQ
+nI
+nI
+nI
+Vl
+qa
+Vl
+nI
+nI
+yA
+nI
+nI
+nI
+yA
+yA
+yA
+yA
+Vl
+qa
+Vl
+nI
+nI
+vM
+qa
+aI
+aI
+qa
+En
+"}
+(7,1,1) = {"
+En
+qa
+aI
+aI
+EQ
+nI
+XP
+nI
+nI
+qa
+nI
+nI
+nI
+qa
+qa
+hG
+hG
+qa
+qa
+nI
+nI
+nI
+qa
+nI
+XP
+XP
+yA
+qa
+aI
+aI
+qa
+En
+"}
+(8,1,1) = {"
+En
+qa
+aI
+aI
+EQ
+nI
+Jq
+nI
+nI
+rc
+nI
+nI
+yA
+qa
+tF
+kk
+LA
+wz
+qa
+nI
+nI
+yA
+rc
+nI
+Jq
+Jq
+yA
+qa
+aI
+aI
+qa
+En
+"}
+(9,1,1) = {"
+En
+qa
+aI
+aI
+EQ
+nI
+Uk
+nI
+nI
+OK
+nI
+ud
+nI
+aj
+kk
+Wd
+sK
+Ih
+ir
+nI
+lQ
+yA
+OK
+yA
+Jq
+Uk
+nI
+qa
+aI
+aI
+qa
+En
+"}
+(10,1,1) = {"
+En
+qa
+aI
+aI
+EQ
+nI
+BH
+nI
+nI
+rc
+nI
+nI
+nI
+qa
+Xc
+KT
+Ih
+tF
+qa
+Uv
+nI
+nI
+rc
+nI
+Jq
+BH
+An
+qa
+aI
+aI
+qa
+En
+"}
+(11,1,1) = {"
+En
+qa
+aI
+aI
+qa
+nI
+XP
+nI
+WP
+qa
+Qd
+EA
+nI
+qa
+qa
+hG
+hG
+qa
+qa
+Uv
+Uv
+nI
+qa
+nI
+XP
+XP
+bw
+qa
+aI
+aI
+qa
+En
+"}
+(12,1,1) = {"
+En
+qa
+aI
+aI
+qa
+nI
+nI
+nI
+An
+qa
+An
+nI
+nI
+nI
+nI
+nI
+ek
+nI
+nI
+yA
+nI
+lS
+qa
+qa
+bC
+bC
+qa
+qa
+aI
+aI
+qa
+En
+"}
+(13,1,1) = {"
+En
+qa
+aI
+aI
+XR
+We
+We
+We
+We
+mI
+We
+We
+We
+KX
+sd
+yA
+nI
+nI
+TQ
+yA
+EA
+wg
+qa
+Vl
+EA
+nI
+GY
+qa
+aI
+aI
+qa
+En
+"}
+(14,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+Jq
+aI
+aI
+aI
+aI
+Jq
+aI
+aI
+jA
+We
+We
+qP
+sd
+nI
+nI
+QY
+qa
+nI
+nI
+nT
+nI
+fX
+aI
+aI
+qa
+En
+"}
+(15,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+Uk
+aI
+aI
+aI
+aI
+Uk
+aI
+aI
+Jq
+Jq
+Jq
+aI
+jA
+We
+We
+We
+Ml
+nI
+yA
+nI
+nI
+xK
+aI
+aI
+qa
+En
+"}
+(16,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+Jq
+aI
+aI
+aI
+aI
+Jq
+aI
+aI
+Jq
+dp
+Jq
+aI
+aI
+aI
+aI
+aI
+Ws
+We
+We
+We
+qP
+sd
+aI
+aI
+qa
+En
+"}
+(17,1,1) = {"
+En
+qa
+aI
+aI
+UV
+ZZ
+Ig
+Ig
+vW
+eC
+Ig
+eC
+Br
+aI
+Jq
+Jq
+Jq
+aI
+aI
+YI
+aI
+aI
+aI
+aI
+aI
+Jq
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(18,1,1) = {"
+En
+qa
+aI
+aI
+qa
+qa
+Uv
+nI
+SZ
+nI
+nI
+nI
+Ef
+Ig
+Ig
+Ig
+Br
+aI
+aI
+Jq
+aI
+aI
+aI
+aI
+aI
+Uk
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(19,1,1) = {"
+En
+qa
+aI
+aI
+qa
+fp
+Uv
+yA
+nI
+yA
+nI
+nI
+yA
+nI
+Uv
+yA
+Ef
+Ig
+eC
+hb
+bg
+aI
+aI
+aI
+aI
+Jq
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(20,1,1) = {"
+En
+qa
+aI
+aI
+qa
+qa
+qa
+tT
+Uv
+nI
+tT
+tT
+nI
+Uv
+Uv
+IJ
+nI
+nI
+nI
+Uv
+aD
+Ig
+Ig
+Ig
+Ig
+Ig
+Ig
+mz
+aI
+aI
+qa
+En
+"}
+(21,1,1) = {"
+En
+qa
+aI
+aI
+Bl
+cf
+qa
+Jm
+Uv
+yA
+zy
+tT
+OU
+qa
+qa
+DC
+DC
+mV
+DC
+mV
+qa
+qa
+xJ
+UU
+qa
+nT
+yA
+qa
+aI
+aI
+qa
+En
+"}
+(22,1,1) = {"
+En
+qa
+aI
+aI
+WE
+yA
+rc
+Uv
+Uv
+nI
+Uv
+nI
+nI
+Kb
+qa
+As
+HD
+Om
+HD
+As
+qa
+lT
+Sy
+lv
+qa
+cY
+yA
+qa
+aI
+aI
+qa
+En
+"}
+(23,1,1) = {"
+En
+qa
+aI
+aI
+WE
+nI
+rc
+Dp
+nI
+Uv
+Uv
+nI
+nI
+Gz
+qa
+As
+As
+pt
+Om
+As
+qa
+WQ
+xD
+In
+qa
+nI
+nI
+qa
+aI
+aI
+qa
+En
+"}
+(24,1,1) = {"
+En
+qa
+aI
+aI
+Kr
+nI
+qa
+ML
+nI
+Uv
+zy
+tT
+nI
+SZ
+qa
+Om
+HD
+As
+HD
+QQ
+qa
+qa
+qa
+qa
+qa
+nI
+cY
+qa
+aI
+aI
+qa
+En
+"}
+(25,1,1) = {"
+En
+qa
+aI
+aI
+tc
+yA
+qa
+qa
+bC
+bC
+tT
+tT
+nI
+nI
+qa
+ao
+cM
+ao
+ao
+ao
+qa
+Lh
+yA
+nI
+nI
+sk
+nI
+xG
+aI
+aI
+qa
+En
+"}
+(26,1,1) = {"
+En
+qa
+aI
+aI
+st
+nI
+qH
+qa
+ZR
+Db
+qa
+nI
+yA
+nI
+Yc
+nI
+nI
+nI
+nI
+yA
+rc
+nT
+tT
+nI
+un
+ML
+nI
+xG
+aI
+aI
+qa
+En
+"}
+(27,1,1) = {"
+En
+qa
+aI
+aI
+qa
+XP
+yA
+Go
+RE
+DF
+Vx
+nI
+yA
+XP
+rc
+nI
+nI
+ML
+yA
+nI
+rc
+nI
+nI
+yA
+nI
+nI
+Vl
+qa
+aI
+aI
+qa
+En
+"}
+(28,1,1) = {"
+En
+qa
+aI
+aI
+qa
+qa
+pR
+qa
+Mq
+yb
+qa
+Rq
+Rq
+qa
+qa
+qa
+VA
+ns
+XT
+qa
+qa
+qa
+Gb
+Gb
+Gb
+Gb
+qa
+qa
+aI
+aI
+qa
+En
+"}
+(29,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(30,1,1) = {"
+En
+qa
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+aI
+qa
+En
+"}
+(31,1,1) = {"
+En
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+qa
+En
+"}
+(32,1,1) = {"
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+En
+"}
diff --git a/_maps/map_files/Deathmatch/chinatown.dmm b/_maps/map_files/Deathmatch/chinatown.dmm
new file mode 100644
index 00000000000..78cb949235d
--- /dev/null
+++ b/_maps/map_files/Deathmatch/chinatown.dmm
@@ -0,0 +1,1417 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"bd" = (
+/turf/open/floor/wood/parquet,
+/area/deathmatch)
+"ce" = (
+/obj/structure/chair/stool/bamboo{
+ dir = 4
+ },
+/obj/item/spear/bamboospear,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"ch" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"cr" = (
+/obj/item/stack/sheet/mineral/bamboo,
+/turf/open/misc/grass,
+/area/deathmatch)
+"dm" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/item/fishing_rod/bone,
+/obj/item/fishing_hook/bone,
+/obj/item/fishing_line/sinew,
+/obj/structure/fermenting_barrel/gunpowder,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"dp" = (
+/obj/item/food/grown/wheat{
+ pixel_y = 4;
+ pixel_x = 7
+ },
+/obj/item/food/grown/wheat{
+ pixel_y = 17;
+ pixel_x = -12
+ },
+/obj/item/reagent_containers/cup/bucket/wooden{
+ pixel_y = -1;
+ pixel_x = -9
+ },
+/turf/open/misc/dirt,
+/area/deathmatch)
+"dr" = (
+/obj/structure/closet/crate/wooden,
+/obj/item/throwing_star,
+/obj/item/stack/medical/suture,
+/obj/machinery/light,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"dy" = (
+/obj/structure/headpike/bamboo,
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"dI" = (
+/obj/machinery/light/floor{
+ pixel_x = 16;
+ pixel_y = -17
+ },
+/turf/open/water,
+/area/deathmatch)
+"el" = (
+/obj/structure/flora/bush/flowers_yw,
+/turf/open/misc/grass,
+/area/deathmatch)
+"fk" = (
+/obj/item/storage/box/matches,
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"fn" = (
+/obj/structure/flora/tree/jungle/style_random,
+/turf/open/misc/grass,
+/area/deathmatch)
+"fs" = (
+/obj/structure/chair/stool/bamboo{
+ dir = 4
+ },
+/obj/item/gun/syringe/blowgun,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"fD" = (
+/obj/structure/flora/bush/stalky/style_random,
+/turf/open/misc/grass,
+/area/deathmatch)
+"gH" = (
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"ha" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/bamboo/tatami/purple,
+/area/deathmatch)
+"iq" = (
+/turf/open/floor/carpet/green,
+/area/deathmatch)
+"iI" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/mortar,
+/obj/item/pestle,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"iL" = (
+/obj/structure/flora/bush/leavy/style_2,
+/turf/open/misc/grass,
+/area/deathmatch)
+"jc" = (
+/obj/structure/table/wood,
+/obj/item/food/fishmeat/carp{
+ pixel_y = 8
+ },
+/obj/item/food/fishmeat/carp,
+/turf/open/floor/stone,
+/area/deathmatch)
+"kY" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/turf/open/misc/grass,
+/area/deathmatch)
+"lr" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"lA" = (
+/obj/structure/statue/bone/skull,
+/obj/item/clothing/suit/hooded/cultrobes/hardened,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"lD" = (
+/obj/structure/table/wood,
+/obj/item/food/vegetariansushislice{
+ pixel_y = 9;
+ pixel_x = 5
+ },
+/obj/item/food/vegetariansushislice{
+ pixel_y = 5
+ },
+/obj/item/food/vegetariansushislice{
+ pixel_x = -5
+ },
+/obj/item/throwing_star{
+ pixel_x = 8;
+ pixel_y = -2
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"lO" = (
+/obj/structure/flora/bush/generic,
+/turf/open/misc/grass,
+/area/deathmatch)
+"ma" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"mb" = (
+/obj/structure/flora/bush/sparsegrass,
+/turf/open/misc/grass,
+/area/deathmatch)
+"mf" = (
+/obj/structure/flora/tree/jungle/style_3,
+/turf/open/misc/grass,
+/area/deathmatch)
+"mt" = (
+/obj/structure/flora/tree/jungle/style_2,
+/turf/open/misc/grass,
+/area/deathmatch)
+"mC" = (
+/obj/structure/table/wood,
+/obj/item/food/sashimi,
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"mT" = (
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"nE" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/bamboo/tatami,
+/area/deathmatch)
+"nU" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/structure/barricade/wooden,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"of" = (
+/obj/structure/flora/rock/pile/jungle,
+/turf/open/water,
+/area/deathmatch)
+"oo" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"oy" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/bottle/potassium{
+ pixel_y = 8;
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/cup/bottle/iron{
+ pixel_y = 12;
+ pixel_x = -4
+ },
+/obj/item/reagent_containers/cup/bottle/frostoil,
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"oN" = (
+/obj/item/stack/sheet/bone,
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"oR" = (
+/obj/structure/table/bronze,
+/obj/item/nullrod/claymore/bostaff,
+/obj/structure/window/spawner/directional/south,
+/obj/structure/window/spawner/directional/west,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/stone,
+/area/deathmatch)
+"oX" = (
+/obj/structure/closet/crate/wooden,
+/obj/item/stack/medical/bruise_pack{
+ pixel_y = 8;
+ pixel_x = -6
+ },
+/obj/item/food/grown/banana,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"oY" = (
+/obj/item/food/grown/wheat{
+ pixel_y = 4;
+ pixel_x = 7
+ },
+/obj/item/food/grown/wheat{
+ pixel_x = -8;
+ pixel_y = 10
+ },
+/obj/item/food/grown/wheat{
+ pixel_x = -10
+ },
+/turf/open/misc/dirt,
+/area/deathmatch)
+"pG" = (
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"pV" = (
+/obj/structure/fermenting_barrel/gunpowder,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"qo" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/misc/grass,
+/area/deathmatch)
+"qu" = (
+/obj/structure/table/wood,
+/obj/item/retractor,
+/obj/item/stack/medical/gauze{
+ pixel_x = 4;
+ pixel_y = 1
+ },
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"qI" = (
+/obj/item/knife/ritual,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"rl" = (
+/obj/structure/table/wood/fancy,
+/obj/item/clothing/head/costume/crown,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"rP" = (
+/obj/structure/table/bronze,
+/obj/item/flashlight/lantern{
+ light_on = 1
+ },
+/obj/machinery/light,
+/turf/open/floor/stone,
+/area/deathmatch)
+"rU" = (
+/obj/item/food/meat/slab/human{
+ pixel_x = -7;
+ pixel_y = -5
+ },
+/obj/item/food/meat/slab/gondola,
+/obj/structure/bonfire/prelit,
+/turf/open/indestructible/necropolis,
+/area/deathmatch)
+"sa" = (
+/obj/item/clothing/head/costume/rice_hat,
+/obj/item/hatchet/wooden,
+/obj/structure/bed/maint,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"so" = (
+/obj/machinery/light,
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"tM" = (
+/obj/structure/flora/bush/flowers_pp/style_random,
+/turf/open/misc/grass,
+/area/deathmatch)
+"tT" = (
+/obj/structure/chair/stool/bamboo{
+ dir = 4
+ },
+/turf/open/floor/bamboo/tatami,
+/area/deathmatch)
+"uc" = (
+/obj/structure/flora/bush/leafy,
+/turf/open/misc/grass,
+/area/deathmatch)
+"ui" = (
+/turf/open/floor/bamboo/tatami,
+/area/deathmatch)
+"ut" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/clothing/shoes/cult/alt,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"uP" = (
+/mob/living/basic/cow,
+/obj/machinery/light,
+/turf/open/misc/dirt,
+/area/deathmatch)
+"vC" = (
+/obj/structure/mineral_door/paperframe,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"wF" = (
+/obj/structure/flora/bush/flowers_yw/style_2,
+/turf/open/misc/grass,
+/area/deathmatch)
+"xk" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"xm" = (
+/obj/machinery/light,
+/turf/open/water,
+/area/deathmatch)
+"xz" = (
+/turf/open/lava/smooth,
+/area/deathmatch)
+"xJ" = (
+/obj/structure/table/wood,
+/obj/item/stack/medical/poultice,
+/obj/item/stack/medical/poultice{
+ pixel_x = 8;
+ pixel_y = -3
+ },
+/obj/item/stack/medical/aloe{
+ pixel_x = -9;
+ pixel_y = 8
+ },
+/obj/item/stack/medical/aloe{
+ pixel_x = -10;
+ pixel_y = 12
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"yl" = (
+/obj/structure/chair/stool/bamboo{
+ dir = 4
+ },
+/obj/item/reagent_containers/syringe/crude{
+ pixel_y = -1
+ },
+/obj/item/reagent_containers/syringe/crude{
+ pixel_y = 3
+ },
+/obj/item/reagent_containers/syringe/crude{
+ pixel_y = -4
+ },
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"yz" = (
+/obj/structure/flora/bush/flowers_pp,
+/obj/item/food/pie/cream,
+/obj/item/clothing/mask/gas/clown_hat,
+/turf/open/misc/grass,
+/area/deathmatch)
+"yA" = (
+/obj/structure/flora/rock/pile/jungle/large,
+/obj/machinery/light/floor,
+/turf/open/water,
+/area/deathmatch)
+"yE" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"yI" = (
+/obj/structure/barricade/wooden/crude,
+/obj/structure/mineral_door/paperframe,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"yL" = (
+/obj/structure/table/bronze,
+/obj/item/throwing_star{
+ pixel_x = 2
+ },
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/north,
+/obj/item/throwing_star{
+ pixel_x = -9;
+ pixel_y = 3
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/stone,
+/area/deathmatch)
+"zb" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/item/bedsheet/cult,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"zu" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"zE" = (
+/obj/structure/table/wood,
+/obj/item/stack/medical/ointment{
+ pixel_y = 6;
+ pixel_x = 12
+ },
+/obj/item/stack/medical/ointment{
+ pixel_y = 2;
+ pixel_x = 12
+ },
+/obj/item/stack/medical/suture/medicated,
+/obj/item/stack/medical/suture/medicated{
+ pixel_y = -4
+ },
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"zG" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"zV" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"Az" = (
+/obj/structure/flora/bush/reed,
+/turf/open/water,
+/area/deathmatch)
+"Bn" = (
+/obj/structure/mineral_door/paperframe,
+/obj/structure/barricade/wooden/crude,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"Cr" = (
+/obj/item/sharpener,
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/north,
+/obj/structure/window/spawner/directional/west,
+/turf/open/water,
+/area/deathmatch)
+"DD" = (
+/obj/structure/closet/cabinet,
+/obj/item/throwing_star{
+ pixel_x = 2
+ },
+/obj/item/clothing/suit/hooded/chaplainsuit/monkhabit,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"Ea" = (
+/obj/structure/table/wood,
+/obj/item/knife/butcher,
+/turf/open/floor/stone,
+/area/deathmatch)
+"EJ" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/obj/machinery/light,
+/turf/open/misc/grass,
+/area/deathmatch)
+"Fl" = (
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/south,
+/obj/structure/window/spawner/directional/west,
+/turf/open/water,
+/area/deathmatch)
+"Fu" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"FV" = (
+/obj/structure/table/wood,
+/obj/item/food/nigiri_sushi{
+ pixel_y = 5;
+ pixel_x = -7
+ },
+/obj/item/food/nigiri_sushi,
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"Gf" = (
+/obj/structure/flora/bush/flowers_pp,
+/turf/open/misc/grass,
+/area/deathmatch)
+"Gv" = (
+/obj/structure/chair/stool/bamboo{
+ dir = 4
+ },
+/obj/item/clothing/suit/armor/bone,
+/obj/item/clothing/accessory/talisman,
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"GQ" = (
+/obj/structure/closet/crate/coffin,
+/obj/item/toy/plush/lizard_plushie/green,
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/west,
+/obj/structure/window/spawner/directional/north,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"GX" = (
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"JP" = (
+/obj/structure/table/bronze,
+/obj/item/restraints/legcuffs/bola/tactical,
+/obj/structure/window/spawner/directional/north,
+/obj/structure/window/spawner/directional/west,
+/turf/open/floor/stone,
+/area/deathmatch)
+"Kd" = (
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"Kx" = (
+/obj/structure/fermenting_barrel/gunpowder,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"KM" = (
+/obj/item/flashlight/lantern{
+ light_on = 1
+ },
+/obj/structure/table/bronze,
+/obj/machinery/light,
+/turf/open/floor/stone,
+/area/deathmatch)
+"KN" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/indestructible/hotelwood,
+/area/deathmatch)
+"LN" = (
+/obj/structure/closet/cabinet,
+/mob/living/carbon/human/species/monkey/angry,
+/obj/item/nullrod/tribal_knife,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"MN" = (
+/obj/structure/flora/bush/flowers_yw/style_random,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/misc/grass,
+/area/deathmatch)
+"Na" = (
+/turf/open/misc/dirt,
+/area/deathmatch)
+"Nn" = (
+/obj/structure/flora/bush/flowers_br/style_random,
+/obj/item/cultivator/rake,
+/turf/open/misc/grass,
+/area/deathmatch)
+"No" = (
+/turf/open/water,
+/area/deathmatch)
+"NJ" = (
+/obj/structure/table/bronze,
+/obj/item/clothing/suit/armor/riot/knight,
+/obj/item/clothing/head/helmet/knight,
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/stone,
+/area/deathmatch)
+"Op" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"OA" = (
+/obj/item/clothing/shoes/cowboy,
+/turf/open/misc/dirt,
+/area/deathmatch)
+"OV" = (
+/obj/structure/chair/stool/bamboo{
+ dir = 4
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/bamboo/tatami,
+/area/deathmatch)
+"Pk" = (
+/obj/structure/flora/bush/leavy/style_random,
+/turf/open/misc/grass,
+/area/deathmatch)
+"Py" = (
+/obj/structure/flora/rock/pile/jungle/style_random{
+ pixel_x = -12;
+ pixel_y = 15
+ },
+/turf/open/water,
+/area/deathmatch)
+"PE" = (
+/obj/structure/water_source/puddle,
+/turf/open/misc/dirt,
+/area/deathmatch)
+"PF" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/structure/statue/bone/rib{
+ dir = 8
+ },
+/obj/machinery/light/floor{
+ pixel_y = -8;
+ pixel_x = -4
+ },
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"PN" = (
+/obj/effect/mob_spawn/corpse/human,
+/obj/structure/bonfire/prelit,
+/turf/open/indestructible/necropolis,
+/area/deathmatch)
+"PP" = (
+/turf/open/misc/grass,
+/area/deathmatch)
+"Qb" = (
+/turf/open/floor/stone,
+/area/deathmatch)
+"Qp" = (
+/obj/structure/flora/bush/flowers_yw/style_random,
+/turf/open/misc/grass,
+/area/deathmatch)
+"QC" = (
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"QG" = (
+/obj/structure/table/wood,
+/obj/item/reagent_containers/cup/glass/bottle/sake{
+ pixel_x = -6;
+ pixel_y = 17
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{
+ pixel_y = 3;
+ pixel_x = 7
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{
+ pixel_y = -1;
+ pixel_x = -3
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"RI" = (
+/obj/structure/punji_sticks,
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"RR" = (
+/obj/item/stack/sheet/bone,
+/turf/open/misc/grass/jungle,
+/area/deathmatch)
+"Su" = (
+/obj/structure/flora/rock/pile/jungle/style_3,
+/obj/machinery/light/floor,
+/turf/open/water,
+/area/deathmatch)
+"SJ" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/bamboo/tatami/purple,
+/area/deathmatch)
+"SO" = (
+/obj/item/grown/bananapeel,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"TW" = (
+/obj/structure/table/bronze,
+/obj/item/flashlight/lantern{
+ light_on = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/stone,
+/area/deathmatch)
+"Uk" = (
+/obj/structure/closet/crate/coffin,
+/obj/item/organ/internal/cyberimp/arm/shard/katana,
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/west,
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"UO" = (
+/turf/open/floor/carpet,
+/area/deathmatch)
+"UU" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"UY" = (
+/obj/structure/flora/bush/leavy,
+/turf/open/misc/grass,
+/area/deathmatch)
+"Vi" = (
+/obj/item/food/grown/wheat{
+ pixel_y = 10;
+ pixel_x = -6
+ },
+/obj/item/food/grown/wheat{
+ pixel_x = 4
+ },
+/obj/item/food/grown/wheat{
+ pixel_x = -10
+ },
+/turf/open/misc/dirt,
+/area/deathmatch)
+"Vm" = (
+/obj/structure/table/wood,
+/obj/item/food/vegetariansushiroll{
+ pixel_y = 2;
+ pixel_x = 4
+ },
+/obj/item/food/vegetariansushiroll,
+/turf/open/floor/stone,
+/area/deathmatch)
+"Vt" = (
+/turf/closed/indestructible/wood,
+/area/deathmatch)
+"VA" = (
+/obj/structure/table/wood/fancy,
+/obj/item/clothing/mask/gas/tiki_mask,
+/obj/item/flashlight/flare/torch,
+/turf/open/floor/carpet,
+/area/deathmatch)
+"We" = (
+/obj/structure/statue/bone/rib{
+ dir = 8
+ },
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+"Ya" = (
+/obj/structure/table/wood,
+/obj/structure/chem_separator,
+/turf/open/floor/bamboo,
+/area/deathmatch)
+"Yo" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-10"
+ },
+/turf/open/floor/stone,
+/area/deathmatch)
+"Zm" = (
+/obj/item/toy/plush/carpplushie/dehy_carp,
+/obj/structure/window/spawner/directional/east,
+/obj/structure/window/spawner/directional/west,
+/turf/open/water,
+/area/deathmatch)
+"Zu" = (
+/obj/structure/statue/bone/rib,
+/turf/open/floor/engine/cult,
+/area/deathmatch)
+
+(1,1,1) = {"
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+"}
+(2,1,1) = {"
+Vt
+UU
+Cr
+Zm
+Fl
+UU
+Vt
+oX
+Kx
+Vt
+dy
+ce
+Gv
+yl
+fs
+dy
+Vt
+Fu
+pG
+Vt
+pG
+pG
+nU
+Na
+OA
+Vt
+"}
+(3,1,1) = {"
+Vt
+QC
+QC
+QC
+QC
+QC
+vC
+pG
+pG
+bd
+RI
+Kd
+Kd
+Kd
+oN
+yE
+bd
+pG
+pG
+vC
+pG
+pG
+nU
+Na
+uP
+Vt
+"}
+(4,1,1) = {"
+Vt
+zG
+Kd
+Kd
+Kd
+so
+Vt
+pG
+pG
+bd
+GX
+Kd
+PN
+rU
+Kd
+GX
+bd
+pG
+pG
+Vt
+Fu
+pG
+Vt
+Vt
+Vt
+Vt
+"}
+(5,1,1) = {"
+Vt
+Kd
+Ea
+jc
+Vm
+Kd
+zu
+pG
+pG
+bd
+RR
+fk
+Kd
+Kd
+Kd
+RI
+bd
+pG
+pG
+Vt
+pG
+pG
+pG
+pG
+dr
+Vt
+"}
+(6,1,1) = {"
+Vt
+Kd
+Kd
+xk
+Kd
+Kd
+Vt
+pG
+pG
+Vt
+dy
+GX
+GX
+GX
+GX
+dy
+Vt
+Fu
+pG
+zu
+pG
+Op
+pG
+pV
+sa
+Vt
+"}
+(7,1,1) = {"
+Vt
+QG
+FV
+QG
+lD
+mC
+Vt
+Kd
+Kd
+Vt
+Vt
+zu
+Vt
+Vt
+zu
+Vt
+Vt
+Kd
+Kd
+Vt
+vC
+Vt
+Vt
+zu
+Vt
+Vt
+"}
+(8,1,1) = {"
+Vt
+ui
+tT
+ui
+OV
+ui
+ha
+ui
+ui
+ha
+ui
+ui
+ui
+ui
+ui
+ui
+ha
+ui
+ui
+ha
+ui
+ui
+ui
+ui
+ui
+Vt
+"}
+(9,1,1) = {"
+Vt
+MN
+PP
+wF
+Gf
+PP
+tM
+PP
+PP
+PP
+PP
+Gf
+PP
+cr
+PP
+Qp
+PP
+PP
+PP
+mb
+PP
+Nn
+Vi
+dp
+PE
+Vt
+"}
+(10,1,1) = {"
+Vt
+No
+No
+PP
+tM
+fn
+fD
+zV
+KN
+mb
+Az
+No
+No
+No
+No
+cr
+el
+zV
+KN
+lO
+kY
+oY
+No
+No
+xm
+Vt
+"}
+(11,1,1) = {"
+Vt
+No
+No
+No
+No
+yz
+No
+zV
+KN
+No
+No
+No
+No
+of
+Su
+No
+No
+ma
+KN
+No
+No
+No
+No
+No
+No
+Vt
+"}
+(12,1,1) = {"
+Vt
+fD
+tM
+Az
+dI
+No
+No
+zV
+KN
+No
+No
+kY
+No
+No
+yA
+No
+No
+dm
+KN
+No
+No
+No
+cr
+PP
+PP
+Vt
+"}
+(13,1,1) = {"
+Vt
+el
+UY
+PP
+No
+Py
+No
+zV
+KN
+PP
+Gf
+Gf
+mt
+No
+No
+No
+mb
+zV
+KN
+PP
+PP
+PP
+PP
+mf
+EJ
+Vt
+"}
+(14,1,1) = {"
+Vt
+qo
+PP
+Qp
+iL
+cr
+mb
+PP
+PP
+PP
+PP
+PP
+PP
+uc
+Pk
+PP
+kY
+PP
+PP
+PP
+PP
+PP
+PP
+kY
+PP
+Vt
+"}
+(15,1,1) = {"
+Vt
+ui
+ui
+ui
+ui
+ui
+SJ
+ui
+ui
+SJ
+ui
+ui
+nE
+ui
+ui
+ui
+SJ
+ui
+ui
+SJ
+ui
+ui
+ui
+ui
+ui
+Vt
+"}
+(16,1,1) = {"
+Vt
+Vt
+zu
+vC
+vC
+vC
+Vt
+Kd
+Kd
+Vt
+Vt
+zu
+Vt
+Vt
+zu
+Vt
+Vt
+Kd
+Kd
+Vt
+Vt
+Vt
+Bn
+Vt
+Vt
+Vt
+"}
+(17,1,1) = {"
+Vt
+zE
+pG
+pG
+pG
+pG
+Vt
+pG
+pG
+Vt
+TW
+Qb
+yL
+NJ
+Yo
+KM
+Vt
+pG
+Op
+Vt
+xz
+mT
+gH
+ut
+xz
+Vt
+"}
+(18,1,1) = {"
+Vt
+xJ
+pG
+Kd
+Kd
+pG
+Vt
+pG
+pG
+Kd
+iq
+iq
+iq
+iq
+iq
+iq
+Kd
+pG
+pG
+Vt
+gH
+PF
+gH
+We
+gH
+Vt
+"}
+(19,1,1) = {"
+Vt
+Ya
+pG
+iI
+qu
+pG
+vC
+pG
+Op
+Kd
+UO
+VA
+GQ
+Uk
+rl
+UO
+Kd
+pG
+pG
+yI
+gH
+gH
+qI
+gH
+gH
+Vt
+"}
+(20,1,1) = {"
+Vt
+ch
+pG
+Kd
+Kd
+pG
+Vt
+pG
+pG
+Kd
+iq
+iq
+iq
+iq
+iq
+iq
+Kd
+SO
+pG
+Vt
+gH
+Zu
+gH
+lA
+oo
+Vt
+"}
+(21,1,1) = {"
+Vt
+oy
+pG
+lr
+pG
+pG
+zu
+lr
+pG
+Vt
+TW
+Qb
+JP
+oR
+Qb
+rP
+Vt
+LN
+DD
+Vt
+xz
+zb
+gH
+mT
+xz
+Vt
+"}
+(22,1,1) = {"
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+Vt
+"}
diff --git a/_maps/map_files/Deathmatch/instagib.dmm b/_maps/map_files/Deathmatch/instagib.dmm
new file mode 100644
index 00000000000..915aa9338da
--- /dev/null
+++ b/_maps/map_files/Deathmatch/instagib.dmm
@@ -0,0 +1,808 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/closed/wall/mineral/titanium,
+/area/deathmatch/fullbright)
+"c" = (
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/deathmatch/fullbright)
+"e" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/circuit/green,
+/area/deathmatch/fullbright)
+"q" = (
+/obj/machinery/door/airlock/titanium/glass,
+/turf/open/floor/mineral/abductor,
+/area/deathmatch/fullbright)
+"u" = (
+/turf/template_noop,
+/area/template_noop)
+"v" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/circuit/green,
+/area/deathmatch/fullbright)
+"y" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/circuit/green,
+/area/deathmatch/fullbright)
+"A" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/vault/alien,
+/area/deathmatch/fullbright)
+"B" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/vault/alien,
+/area/deathmatch/fullbright)
+"C" = (
+/turf/open/floor/circuit/green,
+/area/deathmatch/fullbright)
+"D" = (
+/turf/closed/indestructible/alien,
+/area/deathmatch/fullbright)
+"E" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/vault/alien,
+/area/deathmatch/fullbright)
+"F" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/machinery/light/floor,
+/turf/open/floor/vault/alien,
+/area/deathmatch/fullbright)
+"H" = (
+/turf/open/floor/vault/alien,
+/area/deathmatch/fullbright)
+"I" = (
+/obj/machinery/light,
+/turf/open/floor/vault/alien,
+/area/deathmatch/fullbright)
+"L" = (
+/obj/machinery/light,
+/turf/open/floor/circuit/green,
+/area/deathmatch/fullbright)
+"N" = (
+/obj/machinery/door/airlock/titanium/glass,
+/turf/open/floor/plating/abductor2,
+/area/deathmatch/fullbright)
+"Y" = (
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/deathmatch/fullbright)
+
+(1,1,1) = {"
+u
+u
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+u
+u
+"}
+(2,1,1) = {"
+u
+D
+D
+H
+H
+H
+H
+H
+H
+H
+N
+Y
+Y
+Y
+Y
+N
+H
+H
+H
+H
+H
+H
+H
+D
+D
+u
+"}
+(3,1,1) = {"
+D
+D
+H
+H
+H
+H
+H
+H
+H
+H
+N
+Y
+Y
+Y
+Y
+N
+H
+H
+H
+H
+H
+H
+H
+H
+D
+D
+"}
+(4,1,1) = {"
+D
+H
+H
+F
+H
+a
+a
+H
+H
+I
+a
+Y
+Y
+Y
+Y
+a
+E
+H
+H
+a
+a
+H
+F
+H
+H
+D
+"}
+(5,1,1) = {"
+D
+H
+H
+H
+H
+H
+B
+H
+H
+H
+H
+a
+Y
+Y
+a
+H
+H
+H
+H
+B
+H
+H
+H
+H
+H
+D
+"}
+(6,1,1) = {"
+D
+H
+H
+a
+H
+H
+H
+H
+H
+H
+H
+H
+a
+a
+H
+H
+H
+H
+H
+H
+H
+H
+a
+H
+H
+D
+"}
+(7,1,1) = {"
+D
+H
+H
+a
+E
+H
+H
+H
+a
+H
+H
+H
+H
+H
+H
+H
+H
+a
+H
+H
+H
+I
+a
+H
+H
+D
+"}
+(8,1,1) = {"
+D
+H
+H
+H
+H
+H
+H
+a
+E
+H
+H
+v
+C
+C
+v
+H
+H
+I
+a
+H
+H
+H
+H
+H
+H
+D
+"}
+(9,1,1) = {"
+D
+H
+H
+H
+H
+H
+a
+B
+F
+C
+C
+a
+q
+q
+a
+C
+H
+F
+B
+a
+H
+H
+H
+H
+H
+D
+"}
+(10,1,1) = {"
+D
+H
+H
+A
+H
+H
+H
+H
+H
+C
+a
+c
+c
+c
+c
+a
+C
+C
+H
+H
+H
+H
+A
+H
+H
+D
+"}
+(11,1,1) = {"
+D
+N
+N
+a
+H
+H
+H
+H
+C
+a
+c
+c
+c
+c
+c
+c
+a
+C
+H
+H
+H
+H
+a
+N
+N
+D
+"}
+(12,1,1) = {"
+D
+Y
+Y
+Y
+a
+H
+H
+L
+a
+c
+c
+c
+c
+c
+c
+c
+c
+a
+y
+H
+H
+a
+Y
+Y
+Y
+D
+"}
+(13,1,1) = {"
+D
+Y
+Y
+Y
+Y
+a
+H
+C
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+C
+H
+a
+Y
+Y
+Y
+Y
+D
+"}
+(14,1,1) = {"
+D
+Y
+Y
+Y
+Y
+a
+H
+C
+q
+c
+c
+c
+c
+c
+c
+c
+c
+q
+C
+H
+a
+Y
+Y
+Y
+Y
+D
+"}
+(15,1,1) = {"
+D
+Y
+Y
+Y
+a
+H
+H
+L
+a
+c
+c
+c
+c
+c
+c
+c
+c
+a
+y
+H
+H
+a
+Y
+Y
+Y
+D
+"}
+(16,1,1) = {"
+D
+N
+N
+a
+H
+H
+H
+H
+C
+a
+c
+c
+c
+c
+c
+c
+a
+C
+H
+H
+H
+H
+a
+N
+N
+D
+"}
+(17,1,1) = {"
+D
+H
+H
+B
+H
+H
+H
+H
+H
+C
+a
+c
+c
+c
+c
+a
+C
+H
+H
+H
+H
+H
+B
+H
+H
+D
+"}
+(18,1,1) = {"
+D
+H
+H
+H
+H
+H
+a
+A
+F
+C
+C
+a
+q
+q
+a
+C
+C
+F
+A
+a
+H
+H
+H
+H
+H
+D
+"}
+(19,1,1) = {"
+D
+H
+H
+H
+H
+H
+H
+a
+E
+H
+H
+e
+C
+C
+e
+H
+H
+I
+a
+H
+H
+H
+H
+H
+H
+D
+"}
+(20,1,1) = {"
+D
+H
+H
+a
+E
+H
+H
+H
+a
+H
+H
+H
+H
+H
+H
+H
+H
+a
+H
+H
+H
+I
+a
+H
+H
+D
+"}
+(21,1,1) = {"
+D
+H
+H
+a
+H
+H
+H
+H
+H
+H
+H
+H
+a
+a
+H
+H
+H
+H
+H
+H
+H
+H
+a
+H
+H
+D
+"}
+(22,1,1) = {"
+D
+H
+H
+H
+H
+H
+A
+H
+H
+H
+H
+a
+Y
+Y
+a
+H
+H
+H
+H
+A
+H
+H
+H
+H
+H
+D
+"}
+(23,1,1) = {"
+D
+H
+H
+F
+H
+a
+a
+H
+H
+I
+a
+Y
+Y
+Y
+Y
+a
+E
+H
+H
+a
+a
+H
+F
+H
+H
+D
+"}
+(24,1,1) = {"
+D
+D
+H
+H
+H
+H
+H
+H
+H
+H
+N
+Y
+Y
+Y
+Y
+N
+H
+H
+H
+H
+H
+H
+H
+H
+D
+D
+"}
+(25,1,1) = {"
+u
+D
+D
+H
+H
+H
+H
+H
+H
+H
+N
+Y
+Y
+Y
+Y
+N
+H
+H
+H
+H
+H
+H
+H
+D
+D
+u
+"}
+(26,1,1) = {"
+u
+u
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+u
+u
+"}
diff --git a/_maps/map_files/Deathmatch/meatower.dmm b/_maps/map_files/Deathmatch/meatower.dmm
new file mode 100644
index 00000000000..47613f89885
--- /dev/null
+++ b/_maps/map_files/Deathmatch/meatower.dmm
@@ -0,0 +1,1105 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"aD" = (
+/obj/machinery/conveyor/auto,
+/obj/item/food/meat/slab/human/mutant/skeleton,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"db" = (
+/obj/machinery/griddle,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"et" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/food/meat/slab/corgi,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"eB" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/mob/living/basic/goat/pete,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"eH" = (
+/obj/structure/reagent_dispensers/cooking_oil,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"fq" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"fU" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"gh" = (
+/obj/machinery/deepfryer,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"gk" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/food/pizza/meat,
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"gD" = (
+/obj/structure/table,
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = 3
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"gS" = (
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"hz" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/food/meat/slab/human/mutant/skeleton,
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"ip" = (
+/obj/structure/table,
+/obj/item/food/pizza/donkpocket,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"iZ" = (
+/obj/item/food/pizza/pineapple,
+/turf/open/lava/smooth,
+/area/deathmatch)
+"jq" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/knife/butcher,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"jT" = (
+/obj/machinery/gibber,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"jZ" = (
+/obj/structure/sign/poster/contraband/moffuchis_pizza,
+/turf/closed/indestructible/necropolis,
+/area/deathmatch)
+"kn" = (
+/obj/item/food/pizzaslice/sassysage,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"kL" = (
+/obj/machinery/light,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"lu" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/siding/dark,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"me" = (
+/obj/machinery/conveyor/auto,
+/obj/item/pizzabox/bomb,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"mu" = (
+/obj/item/stack/sheet/pizza/five,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"nl" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/pizzabox/mushroom,
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"nr" = (
+/obj/structure/table,
+/obj/item/pizzabox/bomb/armed,
+/obj/item/knife/butcher,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"nt" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/item/pizzabox/bomb/armed,
+/obj/effect/turf_decal/siding/dark,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"oB" = (
+/obj/machinery/conveyor/auto,
+/obj/item/food/meat/slab/human,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"oH" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/dark,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"pg" = (
+/obj/machinery/vending/dinnerware,
+/obj/machinery/light,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"pE" = (
+/obj/structure/table,
+/obj/item/knife/butcher,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"pL" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/pizzabox/margherita/robo,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"qa" = (
+/obj/structure/table,
+/obj/item/stack/sheet/animalhide/corgi,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"qg" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"qL" = (
+/obj/machinery/conveyor/auto{
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 5
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"rb" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"sf" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"sQ" = (
+/obj/structure/closet/crate/coffin,
+/obj/item/gun/magic/hook,
+/obj/item/book/manual/wiki/cooking_to_serve_man,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"tB" = (
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"uJ" = (
+/obj/item/food/meat/slab/corgi,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"uM" = (
+/obj/item/food/meat/slab/corgi,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"uV" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"uW" = (
+/obj/structure/reagent_dispensers/cooking_oil,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"wF" = (
+/obj/structure/kitchenspike,
+/obj/item/food/pizza/arnold,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"zB" = (
+/obj/item/food/pizzaslice/meat,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"zH" = (
+/obj/structure/table,
+/obj/item/pizzabox/margherita,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"zR" = (
+/obj/structure/table,
+/obj/item/pizzabox/bomb/armed,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Ce" = (
+/obj/machinery/conveyor/auto{
+ dir = 9
+ },
+/obj/item/food/meat/slab/human,
+/obj/effect/turf_decal/siding/dark{
+ dir = 10
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Ch" = (
+/obj/structure/table,
+/obj/item/pizzabox,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"DJ" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/item/food/meat/slab/human/mutant/slime,
+/obj/effect/turf_decal/siding/dark,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"DU" = (
+/obj/machinery/conveyor/auto,
+/obj/item/food/meat/slab/corgi,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"EC" = (
+/obj/machinery/conveyor/auto,
+/obj/item/food/pizzaslice/arnold,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"EU" = (
+/obj/item/food/pizzaslice/moldy/bacteria,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Fs" = (
+/obj/structure/barricade/wooden/crude,
+/obj/structure/barricade/wooden,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"FA" = (
+/turf/open/lava/smooth,
+/area/deathmatch)
+"Ge" = (
+/obj/machinery/conveyor/auto{
+ dir = 10
+ },
+/obj/item/food/meat/slab/human,
+/obj/effect/turf_decal/siding/dark{
+ dir = 6
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"GS" = (
+/obj/item/food/pizzaslice/ants,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Hg" = (
+/obj/machinery/oven,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Hj" = (
+/obj/machinery/conveyor/auto,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Hx" = (
+/obj/structure/table,
+/obj/item/food/pizzaslice/mothic_garlic,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"HR" = (
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/obj/item/food/meat/slab/gorilla,
+/obj/effect/turf_decal/siding/dark,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Io" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/food/meat/slab/gorilla,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Jo" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"KO" = (
+/obj/machinery/vending/dinnerware,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"KP" = (
+/obj/structure/table,
+/obj/structure/desk_bell{
+ pixel_x = 7
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"KW" = (
+/obj/structure/sign/poster/contraband/pizza_imperator,
+/turf/closed/indestructible/necropolis,
+/area/deathmatch)
+"KZ" = (
+/obj/machinery/griddle,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"La" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/food/meat/slab/gondola,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Lg" = (
+/obj/structure/barricade/wooden,
+/obj/structure/barricade/wooden/crude,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"Lo" = (
+/obj/machinery/conveyor/auto,
+/obj/item/pizzabox/vegetable,
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Mn" = (
+/obj/machinery/conveyor/auto{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 9
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Mr" = (
+/obj/machinery/deepfryer,
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"NF" = (
+/obj/machinery/conveyor/auto{
+ dir = 1
+ },
+/obj/item/food/meat/slab/human/mutant/slime,
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"NG" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/item/pizzabox/bomb/armed,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"Oq" = (
+/turf/closed/indestructible/necropolis,
+/area/deathmatch)
+"Tn" = (
+/obj/item/pizzabox/infinite,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"Ue" = (
+/obj/item/food/pizzaslice/sassysage,
+/turf/open/indestructible/necropolis/air,
+/area/deathmatch)
+"Up" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"XA" = (
+/obj/structure/table,
+/obj/machinery/reagentgrinder{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/item/reagent_containers/condiment/saltshaker{
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/condiment/peppermill{
+ pixel_x = -9
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"XQ" = (
+/obj/machinery/conveyor/auto{
+ dir = 4
+ },
+/obj/structure/closet/secure_closet/freezer/meat,
+/obj/item/toy/plush/lizard_plushie/green,
+/obj/effect/turf_decal/siding/dark{
+ dir = 1
+ },
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+"XU" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/machinery/light/floor,
+/turf/open/indestructible/kitchen,
+/area/deathmatch)
+
+(1,1,1) = {"
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+"}
+(2,1,1) = {"
+qg
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+iZ
+qg
+"}
+(3,1,1) = {"
+qg
+FA
+Mn
+sf
+sf
+NF
+sf
+sf
+sf
+sf
+sf
+gk
+sf
+sf
+sf
+hz
+sf
+nl
+sf
+sf
+Ce
+FA
+qg
+"}
+(4,1,1) = {"
+qg
+FA
+pL
+tB
+zR
+gD
+db
+tB
+uJ
+tB
+tB
+tB
+tB
+GS
+tB
+zR
+Up
+db
+tB
+uW
+oH
+FA
+qg
+"}
+(5,1,1) = {"
+qg
+FA
+fU
+tB
+tB
+XU
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+XU
+qa
+nt
+FA
+qg
+"}
+(6,1,1) = {"
+qg
+FA
+Io
+tB
+tB
+tB
+tB
+tB
+Mr
+Up
+KP
+tB
+tB
+tB
+Mr
+tB
+tB
+tB
+tB
+zR
+oH
+FA
+qg
+"}
+(7,1,1) = {"
+qg
+FA
+XQ
+gh
+tB
+tB
+tB
+tB
+Oq
+Oq
+Oq
+gS
+Oq
+Oq
+Oq
+Ch
+tB
+tB
+tB
+tB
+oH
+FA
+qg
+"}
+(8,1,1) = {"
+qg
+FA
+fU
+fq
+tB
+GS
+pg
+Oq
+Oq
+gS
+gS
+zB
+gS
+mu
+Oq
+Oq
+db
+tB
+EU
+tB
+oH
+FA
+qg
+"}
+(9,1,1) = {"
+qg
+FA
+fU
+nr
+tB
+tB
+Oq
+Oq
+eH
+gS
+Oq
+gS
+Oq
+gS
+jT
+Oq
+Oq
+rb
+tB
+XA
+HR
+FA
+qg
+"}
+(10,1,1) = {"
+qg
+FA
+La
+db
+tB
+tB
+Oq
+mu
+gS
+gS
+gS
+gS
+gS
+gS
+gS
+gS
+Oq
+gh
+tB
+pE
+oH
+FA
+qg
+"}
+(11,1,1) = {"
+qg
+FA
+fU
+tB
+tB
+tB
+Oq
+gS
+Oq
+gS
+KW
+Lg
+Oq
+gS
+Oq
+uM
+Oq
+tB
+tB
+tB
+oH
+FA
+qg
+"}
+(12,1,1) = {"
+qg
+FA
+uV
+kn
+tB
+tB
+gS
+gS
+gS
+Tn
+Fs
+sQ
+Fs
+gS
+gS
+gS
+gS
+tB
+tB
+tB
+lu
+FA
+qg
+"}
+(13,1,1) = {"
+qg
+FA
+fU
+tB
+tB
+tB
+Oq
+gS
+Oq
+gS
+Oq
+Lg
+jZ
+gS
+Oq
+gS
+Oq
+Hx
+tB
+tB
+DJ
+FA
+qg
+"}
+(14,1,1) = {"
+qg
+FA
+jq
+tB
+tB
+tB
+Oq
+gS
+gS
+Ue
+gS
+gS
+gS
+gS
+gS
+gS
+Oq
+zH
+tB
+tB
+oH
+FA
+qg
+"}
+(15,1,1) = {"
+qg
+FA
+fU
+tB
+tB
+kL
+Oq
+Oq
+eB
+gS
+Oq
+gS
+Oq
+gS
+wF
+Oq
+Oq
+KZ
+tB
+tB
+oH
+FA
+qg
+"}
+(16,1,1) = {"
+qg
+FA
+NG
+tB
+tB
+tB
+gh
+Oq
+Oq
+mu
+gS
+gS
+gS
+gS
+Oq
+Oq
+gh
+tB
+tB
+tB
+oH
+FA
+qg
+"}
+(17,1,1) = {"
+qg
+FA
+fU
+tB
+fq
+tB
+tB
+Hg
+Oq
+Oq
+Oq
+gS
+Oq
+Oq
+Oq
+tB
+tB
+tB
+tB
+KO
+oH
+FA
+qg
+"}
+(18,1,1) = {"
+qg
+FA
+et
+tB
+ip
+tB
+tB
+tB
+Jo
+tB
+tB
+tB
+tB
+GS
+Jo
+tB
+Hg
+tB
+tB
+KP
+oH
+FA
+qg
+"}
+(19,1,1) = {"
+qg
+FA
+fU
+tB
+tB
+XU
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+db
+tB
+XU
+pE
+oH
+FA
+qg
+"}
+(20,1,1) = {"
+qg
+FA
+fU
+tB
+tB
+tB
+tB
+tB
+tB
+tB
+db
+zR
+Up
+tB
+tB
+tB
+KP
+tB
+tB
+tB
+oH
+FA
+qg
+"}
+(21,1,1) = {"
+qg
+FA
+qL
+Hj
+Hj
+aD
+Hj
+EC
+Hj
+DU
+Hj
+Lo
+Hj
+Hj
+oB
+Hj
+Hj
+me
+Hj
+Hj
+Ge
+FA
+qg
+"}
+(22,1,1) = {"
+qg
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+FA
+qg
+"}
+(23,1,1) = {"
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+qg
+"}
diff --git a/_maps/map_files/Deathmatch/mech_madness.dmm b/_maps/map_files/Deathmatch/mech_madness.dmm
new file mode 100644
index 00000000000..d36ccfb16cc
--- /dev/null
+++ b/_maps/map_files/Deathmatch/mech_madness.dmm
@@ -0,0 +1,1649 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ac" = (
+/turf/closed/indestructible/alien,
+/area/deathmatch)
+"ad" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_ammo/lmg,
+/obj/item/mecha_ammo/lmg{
+ pixel_y = 12
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 18
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 24
+ },
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"ae" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm4"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"af" = (
+/obj/machinery/button/door{
+ id = "dm3";
+ pixel_y = 24
+ },
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"aj" = (
+/turf/open/floor/engine,
+/area/deathmatch)
+"am" = (
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"an" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/utility/welding,
+/obj/machinery/light/directional/west,
+/obj/item/inducer,
+/obj/item/weldingtool/largetank,
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"ao" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg{
+ pixel_y = -8
+ },
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot{
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"as" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/box,
+/obj/machinery/button/door{
+ id = "dm1";
+ pixel_x = 24
+ },
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"at" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/box,
+/obj/machinery/button/door{
+ id = "dm4";
+ pixel_y = 0;
+ pixel_x = -24
+ },
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"aw" = (
+/turf/open/floor/carpet/neon/simple/purple,
+/area/deathmatch)
+"ax" = (
+/turf/closed/wall/mineral/plastitanium,
+/area/deathmatch)
+"az" = (
+/obj/structure/tank_holder/extinguisher,
+/turf/open/floor/carpet/neon/simple/red,
+/area/deathmatch)
+"aA" = (
+/obj/vehicle/sealed/mecha/gygax,
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"aB" = (
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 4;
+ icon_state = "trimline_warn_fill"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"aC" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aE" = (
+/mob/living/carbon/human/species/monkey/angry,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aG" = (
+/turf/open/lava,
+/area/deathmatch)
+"aH" = (
+/obj/vehicle/sealed/mecha/gygax,
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"aI" = (
+/turf/open/floor/carpet/neon/simple/lime,
+/area/deathmatch)
+"aJ" = (
+/turf/open/floor/carpet/neon/simple/red,
+/area/deathmatch)
+"aK" = (
+/turf/open/floor/carpet/neon/simple/violet,
+/area/deathmatch)
+"aL" = (
+/obj/item/chair,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aN" = (
+/obj/structure/table/reinforced,
+/obj/item/gun/energy/laser,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aP" = (
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/deathmatch)
+"aQ" = (
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aR" = (
+/obj/effect/decal/cleanable/blood/drip,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aS" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aV" = (
+/obj/structure/barricade/security,
+/turf/open/floor/carpet/neon/simple/red,
+/area/deathmatch)
+"aW" = (
+/obj/structure/table,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aY" = (
+/obj/structure/closet/crate/trashcart/filled,
+/obj/item/weldingtool,
+/turf/open/floor/engine,
+/area/deathmatch)
+"aZ" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/engine,
+/area/deathmatch)
+"ba" = (
+/obj/structure/closet/crate/trashcart/filled,
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bb" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bc" = (
+/obj/machinery/light/directional/east,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bd" = (
+/obj/item/gun/energy/laser/hellgun,
+/obj/structure/closet/crate/trashcart/filled,
+/turf/open/floor/engine,
+/area/deathmatch)
+"be" = (
+/obj/machinery/stasis,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bf" = (
+/obj/machinery/door/airlock/hatch,
+/turf/open/floor/carpet/neon/simple/purple,
+/area/deathmatch)
+"bh" = (
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"bi" = (
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 1;
+ icon_state = "trimline_warn_fill"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"bj" = (
+/obj/machinery/sleeper{
+ dir = 4;
+ icon_state = "sleeper"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"bk" = (
+/obj/vehicle/ridden/atv,
+/obj/item/key/atv,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bl" = (
+/obj/machinery/sleeper{
+ dir = 8;
+ icon_state = "sleeper"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"bm" = (
+/obj/machinery/vending/cigarette,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bn" = (
+/obj/machinery/vending/assist,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bo" = (
+/obj/machinery/vending/sustenance,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bp" = (
+/obj/item/grenade/smokebomb,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bq" = (
+/obj/item/mecha_parts/mecha_equipment/armor/antiproj_armor_booster,
+/turf/open/floor/engine,
+/area/deathmatch)
+"br" = (
+/obj/item/mecha_parts/mecha_equipment/armor/anticcw_armor_booster,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bs" = (
+/turf/open/floor/carpet/neon/simple/blue,
+/area/deathmatch)
+"bt" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/box,
+/obj/machinery/button/door{
+ id = "dm2";
+ pixel_x = 24
+ },
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"bu" = (
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"bv" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/utility/welding,
+/obj/machinery/light/directional/east,
+/obj/item/inducer,
+/obj/item/weldingtool/largetank,
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"bw" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"bx" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm1"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"by" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg{
+ pixel_y = -8
+ },
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot{
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"bz" = (
+/obj/machinery/vending/medical,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bB" = (
+/obj/effect/turf_decal/trimline/yellow/filled/warning,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bF" = (
+/obj/effect/turf_decal/trimline/yellow/filled/warning{
+ dir = 8;
+ icon_state = "trimline_warn_fill"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"bG" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_ammo/lmg,
+/obj/item/mecha_ammo/lmg{
+ pixel_y = 12
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 18
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 24
+ },
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"bH" = (
+/obj/structure/table_frame,
+/turf/open/floor/carpet/neon/simple/violet,
+/area/deathmatch)
+"bJ" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bL" = (
+/obj/effect/decal/cleanable/blood/gibs,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bM" = (
+/obj/structure/window/fulltile,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bN" = (
+/obj/structure/showcase/horrific_experiment,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bO" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bP" = (
+/obj/machinery/door/airlock/hatch,
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"bR" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bS" = (
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bT" = (
+/obj/item/shard,
+/turf/open/floor/engine,
+/area/deathmatch)
+"bV" = (
+/turf/open/floor/noslip,
+/area/deathmatch)
+"bW" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"bY" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"bZ" = (
+/obj/machinery/recharger,
+/obj/structure/table,
+/turf/open/floor/engine,
+/area/deathmatch)
+"ca" = (
+/obj/structure/table,
+/obj/item/storage/briefcase,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cc" = (
+/obj/structure/table,
+/obj/item/storage/toolbox/mechanical,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cd" = (
+/obj/item/grenade/smokebomb,
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"ce" = (
+/obj/structure/chair{
+ dir = 1;
+ icon_state = "chair"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"cg" = (
+/obj/structure/showcase/machinery/cloning_pod,
+/turf/open/floor/engine,
+/area/deathmatch)
+"ch" = (
+/obj/structure/chair/office,
+/turf/open/floor/engine,
+/area/deathmatch)
+"ci" = (
+/obj/structure/cannon{
+ dir = 8;
+ icon_state = "falconet_patina"
+ },
+/turf/open/floor/sepia,
+/area/deathmatch)
+"ck" = (
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cl" = (
+/obj/item/reagent_containers/syringe,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/deathmatch)
+"cm" = (
+/obj/item/gun/ballistic/revolver/c38/detective,
+/obj/structure/table/wood,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cn" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cp" = (
+/obj/structure/window/spawner/directional/south,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cq" = (
+/obj/item/gun/ballistic/rifle/boltaction/pipegun,
+/obj/structure/table/wood,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cr" = (
+/obj/item/gun/ballistic/rifle/boltaction,
+/obj/structure/table/wood,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"ct" = (
+/obj/structure/window/spawner/directional/west{
+ icon_state = "window"
+ },
+/obj/item/lighter,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cv" = (
+/obj/item/reagent_containers/cup/bucket/wooden,
+/obj/machinery/light/directional/south,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cw" = (
+/obj/machinery/door/airlock/hatch,
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"cx" = (
+/obj/structure/fermenting_barrel/gunpowder,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cy" = (
+/obj/structure/toilet{
+ dir = 8;
+ icon_state = "toilet00"
+ },
+/turf/open/floor/light,
+/area/deathmatch)
+"cz" = (
+/obj/item/stack/cannonball/fourteen,
+/obj/structure/table/wood,
+/turf/open/floor/sepia,
+/area/deathmatch)
+"cA" = (
+/obj/item/reagent_containers/cup/glass/drinkingglass/filled/nuka_cola,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/deathmatch)
+"cB" = (
+/obj/item/reagent_containers/pill/stimulant,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/deathmatch)
+"cC" = (
+/obj/machinery/recharge_station,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cD" = (
+/obj/structure/barricade/security,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cE" = (
+/obj/structure/table,
+/turf/open/floor/carpet/neon/simple/violet,
+/area/deathmatch)
+"cF" = (
+/obj/structure/barricade/security,
+/turf/open/floor/carpet/neon/simple/violet,
+/area/deathmatch)
+"cG" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/utility/welding,
+/obj/machinery/light/directional/east,
+/obj/item/inducer,
+/obj/item/weldingtool/largetank,
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"cH" = (
+/obj/machinery/sheetifier,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cI" = (
+/obj/machinery/door/airlock/hatch,
+/turf/open/floor/carpet/neon/simple/lime,
+/area/deathmatch)
+"cK" = (
+/obj/structure/table,
+/obj/item/mecha_parts/mecha_equipment/repair_droid,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cL" = (
+/obj/structure/table,
+/obj/item/grenade/smokebomb,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cM" = (
+/obj/item/reagent_containers/pill/happinesspsych,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/deathmatch)
+"cN" = (
+/obj/item/fireaxe,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/deathmatch)
+"cO" = (
+/obj/structure/table_frame,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cP" = (
+/obj/structure/urinal{
+ pixel_y = 24
+ },
+/turf/open/floor/noslip,
+/area/deathmatch)
+"cQ" = (
+/obj/item/reagent_containers/pill/lsd,
+/turf/open/floor/light/colour_cycle/dancefloor_a,
+/area/deathmatch)
+"cR" = (
+/obj/item/reagent_containers/pill/probital,
+/turf/open/floor/light/colour_cycle/dancefloor_b,
+/area/deathmatch)
+"cS" = (
+/obj/structure/reagent_dispensers/cooking_oil,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cT" = (
+/obj/item/inducer,
+/obj/item/weldingtool,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cU" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm2"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"cV" = (
+/obj/item/mecha_ammo/scattershot,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cW" = (
+/obj/machinery/grill,
+/turf/open/floor/engine,
+/area/deathmatch)
+"cX" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/box,
+/obj/machinery/button/door{
+ id = "dm3";
+ pixel_x = -24
+ },
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"cY" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "dm3"
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"cZ" = (
+/obj/machinery/sheetifier,
+/obj/machinery/light/directional/east,
+/turf/open/floor/engine,
+/area/deathmatch)
+"da" = (
+/obj/machinery/door/airlock/hatch,
+/turf/open/floor/engine,
+/area/deathmatch)
+"db" = (
+/obj/vehicle/sealed/mecha/gygax,
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"dc" = (
+/obj/machinery/grill,
+/obj/machinery/light/directional/west,
+/turf/open/floor/engine,
+/area/deathmatch)
+"dd" = (
+/obj/structure/table,
+/obj/item/food/meat/rawcutlet,
+/turf/open/floor/engine,
+/area/deathmatch)
+"df" = (
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"dg" = (
+/obj/vehicle/sealed/mecha/gygax,
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"dh" = (
+/obj/structure/closet/l3closet/janitor,
+/turf/open/floor/engine,
+/area/deathmatch)
+"di" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/utility/welding,
+/obj/item/weldingtool/largetank,
+/obj/machinery/light/directional/west,
+/obj/item/inducer,
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"dk" = (
+/obj/structure/table,
+/obj/item/storage/belt/janitor,
+/turf/open/floor/engine,
+/area/deathmatch)
+"eK" = (
+/obj/structure/table,
+/obj/item/food/meat/slab/bear,
+/turf/open/floor/engine,
+/area/deathmatch)
+"gg" = (
+/obj/structure/table,
+/obj/item/mop,
+/turf/open/floor/engine,
+/area/deathmatch)
+"go" = (
+/turf/open/floor/carpet/neon/simple/pink,
+/area/deathmatch)
+"gF" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_ammo/lmg,
+/obj/item/mecha_ammo/lmg{
+ pixel_y = 12
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 18
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 24
+ },
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+"nE" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg{
+ pixel_y = -8
+ },
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot{
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"ot" = (
+/obj/structure/mop_bucket/janitorialcart{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/deathmatch)
+"pD" = (
+/obj/machinery/button/door{
+ id = "dm1";
+ pixel_y = -24
+ },
+/turf/open/floor/carpet/neon/simple/yellow,
+/area/deathmatch)
+"sc" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_ammo/lmg,
+/obj/item/mecha_ammo/lmg{
+ pixel_y = 12
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 18
+ },
+/obj/item/mecha_ammo/scattershot{
+ pixel_y = 24
+ },
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"tY" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/engine,
+/area/deathmatch)
+"yI" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/light/directional/south,
+/turf/open/floor/engine,
+/area/deathmatch)
+"Br" = (
+/obj/machinery/button/door{
+ id = "dm4";
+ pixel_y = -24
+ },
+/turf/open/floor/carpet/neon/simple/green,
+/area/deathmatch)
+"ES" = (
+/obj/item/storage/bag/trash,
+/turf/open/floor/engine,
+/area/deathmatch)
+"Ij" = (
+/obj/structure/table,
+/obj/item/reagent_containers/cup/bucket,
+/turf/open/floor/engine,
+/area/deathmatch)
+"Jo" = (
+/obj/machinery/vending/wardrobe/jani_wardrobe,
+/turf/open/floor/engine,
+/area/deathmatch)
+"ME" = (
+/obj/structure/table,
+/obj/item/food/meat/slab/pig,
+/turf/open/floor/engine,
+/area/deathmatch)
+"PK" = (
+/obj/item/storage/medkit/regular,
+/turf/open/floor/noslip,
+/area/deathmatch)
+"RN" = (
+/turf/closed/wall/mineral/plastitanium/nodiagonal,
+/area/deathmatch)
+"XP" = (
+/obj/machinery/button/door{
+ id = "dm2";
+ pixel_y = 24
+ },
+/turf/open/floor/carpet/neon/simple/orange,
+/area/deathmatch)
+"Zw" = (
+/obj/structure/table/reinforced,
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg{
+ pixel_y = -8
+ },
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot{
+ pixel_y = 8
+ },
+/turf/open/floor/carpet/neon/simple/teal,
+/area/deathmatch)
+
+(1,1,1) = {"
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+"}
+(2,1,1) = {"
+ac
+ad
+an
+bu
+bx
+aj
+ax
+aQ
+bM
+aj
+ax
+be
+bj
+bj
+br
+ax
+aQ
+bb
+aj
+ax
+cC
+aQ
+cU
+bh
+di
+sc
+ac
+"}
+(3,1,1) = {"
+ac
+ao
+aJ
+pD
+ac
+aj
+ax
+aj
+bM
+aZ
+bP
+bY
+aj
+aj
+aj
+ax
+aj
+bb
+aj
+ax
+cC
+aj
+ac
+XP
+bs
+nE
+ac
+"}
+(4,1,1) = {"
+ac
+bu
+as
+aA
+ac
+aj
+da
+aj
+bM
+aj
+ax
+df
+df
+df
+bw
+ax
+aj
+bb
+aj
+ax
+aj
+aj
+ac
+db
+bt
+bh
+ac
+"}
+(5,1,1) = {"
+ac
+bx
+ac
+ac
+ac
+aj
+ax
+aj
+bM
+aj
+ax
+bR
+aj
+aj
+bY
+cw
+bW
+am
+am
+cw
+aj
+aj
+ac
+ac
+ac
+cU
+ac
+"}
+(6,1,1) = {"
+ac
+aj
+aj
+aj
+aj
+aj
+ax
+aj
+bM
+aj
+ax
+aj
+bk
+aj
+aj
+ax
+aj
+cd
+aj
+ax
+aj
+aj
+aj
+aj
+aj
+aj
+ac
+"}
+(7,1,1) = {"
+ac
+aj
+aj
+aj
+aj
+aj
+ax
+aj
+bM
+bc
+ax
+bZ
+bl
+bl
+bz
+ax
+aj
+am
+bc
+ax
+aj
+cH
+cH
+cZ
+aj
+aj
+ac
+"}
+(8,1,1) = {"
+ac
+ax
+ax
+da
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+cw
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+da
+ac
+"}
+(9,1,1) = {"
+ac
+az
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+az
+ax
+bm
+aj
+aQ
+bO
+aj
+aK
+aj
+aj
+aQ
+aj
+aj
+ax
+dk
+aj
+ac
+"}
+(10,1,1) = {"
+ac
+aJ
+cD
+cD
+cD
+aj
+aj
+aj
+aj
+aj
+aJ
+ax
+bn
+aj
+aK
+aK
+aK
+aK
+cD
+cD
+cE
+cK
+aj
+ax
+Ij
+aj
+ac
+"}
+(11,1,1) = {"
+ac
+aJ
+aj
+aB
+aB
+aj
+aj
+aB
+aB
+aj
+aJ
+ax
+bo
+aj
+aK
+aj
+aj
+aj
+aj
+aj
+aK
+cL
+aj
+ax
+gg
+yI
+ac
+"}
+(12,1,1) = {"
+ac
+aJ
+bB
+aG
+aG
+bi
+bB
+aG
+aG
+bi
+aJ
+aC
+aj
+aj
+aK
+aj
+ca
+ce
+aj
+aj
+aK
+aj
+aj
+ax
+aj
+aj
+ac
+"}
+(13,1,1) = {"
+ac
+aJ
+aj
+bF
+bF
+aj
+aj
+bF
+bF
+aj
+aJ
+bf
+aK
+aK
+aK
+ch
+aW
+ce
+aj
+aj
+aK
+aK
+aK
+bf
+aj
+aj
+ac
+"}
+(14,1,1) = {"
+ac
+aJ
+aj
+aj
+aj
+aj
+aj
+aj
+aj
+cD
+aV
+aC
+aj
+cD
+aK
+aj
+cc
+ce
+aj
+aj
+aK
+aj
+aj
+ax
+ot
+aj
+ac
+"}
+(15,1,1) = {"
+ac
+aV
+cD
+aj
+aJ
+aJ
+aJ
+aJ
+aj
+aj
+aJ
+ax
+aj
+cD
+aK
+aj
+aj
+aj
+aj
+aj
+cF
+cD
+aj
+ax
+ES
+tY
+ac
+"}
+(16,1,1) = {"
+ac
+aJ
+aj
+aj
+aJ
+aN
+aS
+aJ
+aj
+aj
+aJ
+ax
+aj
+cD
+bH
+aK
+aK
+aK
+aK
+aK
+cF
+cO
+aL
+ax
+dh
+aj
+ac
+"}
+(17,1,1) = {"
+ac
+aJ
+aj
+aj
+aJ
+bJ
+aN
+aJ
+aj
+aj
+aJ
+ax
+aj
+aL
+bc
+aj
+aj
+aK
+aj
+aj
+bc
+aj
+cV
+ax
+Jo
+aj
+ac
+"}
+(18,1,1) = {"
+ac
+aJ
+aj
+aj
+aJ
+aJ
+aJ
+aJ
+aj
+aj
+aJ
+ax
+ax
+ax
+ax
+ax
+RN
+da
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+da
+ac
+"}
+(19,1,1) = {"
+ac
+aJ
+aj
+aj
+aj
+aj
+aj
+aj
+aj
+aj
+aJ
+ax
+aj
+bq
+aj
+aj
+ax
+ck
+cp
+cm
+ax
+cP
+bV
+bV
+PK
+bV
+ac
+"}
+(20,1,1) = {"
+ac
+aJ
+aj
+aB
+aB
+aj
+aj
+aB
+aB
+aj
+aV
+ax
+aj
+cg
+cg
+aj
+ax
+ck
+cp
+cq
+ax
+cP
+cy
+cy
+bV
+bV
+ac
+"}
+(21,1,1) = {"
+ac
+aJ
+bB
+aG
+aG
+bi
+bB
+aG
+aG
+bi
+aJ
+ax
+aj
+aj
+aj
+aE
+ax
+ck
+cp
+cr
+ax
+ax
+ax
+ax
+ax
+da
+ac
+"}
+(22,1,1) = {"
+ac
+aJ
+aj
+bF
+bF
+aj
+aj
+bF
+bF
+aj
+aJ
+ax
+bp
+cg
+cg
+aj
+ax
+cn
+ck
+ct
+ax
+cS
+cW
+dc
+aj
+aj
+ac
+"}
+(23,1,1) = {"
+ac
+aJ
+cD
+cD
+cD
+aj
+aj
+aj
+aj
+aj
+aJ
+cI
+aI
+aI
+aI
+aI
+cI
+ck
+ck
+ck
+da
+aj
+aj
+aj
+aj
+aj
+ac
+"}
+(24,1,1) = {"
+ac
+az
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+aJ
+az
+ax
+aj
+aE
+bL
+aj
+ax
+ck
+ck
+cv
+ax
+cT
+aj
+dd
+ME
+eK
+ac
+"}
+(25,1,1) = {"
+ac
+ax
+ax
+da
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+ax
+aj
+cg
+bN
+bS
+ax
+ci
+ck
+cx
+ax
+ax
+da
+ax
+ax
+ax
+ac
+"}
+(26,1,1) = {"
+ac
+aj
+aj
+aj
+aj
+aQ
+aj
+ax
+aY
+ba
+bd
+ax
+aE
+aj
+aR
+bT
+ax
+ck
+ck
+cz
+ax
+aj
+aj
+aQ
+aj
+aj
+ac
+"}
+(27,1,1) = {"
+ac
+ae
+ac
+ac
+ac
+aj
+aj
+da
+aj
+aj
+aj
+ax
+aj
+cg
+cg
+aE
+ax
+ax
+da
+ax
+ax
+aj
+ac
+ac
+ac
+cY
+ac
+"}
+(28,1,1) = {"
+ac
+am
+at
+aH
+ac
+aj
+aj
+ax
+aj
+bb
+aj
+ax
+ax
+ax
+ax
+ax
+RN
+aP
+cl
+cA
+ax
+aj
+ac
+dg
+cX
+df
+ac
+"}
+(29,1,1) = {"
+ac
+by
+aw
+Br
+ac
+aj
+aj
+ax
+aj
+bb
+aj
+aj
+bb
+aj
+aj
+aj
+da
+cM
+cQ
+cB
+ax
+aj
+ac
+af
+go
+Zw
+ac
+"}
+(30,1,1) = {"
+ac
+bG
+cG
+am
+ae
+aj
+aj
+ax
+aj
+bb
+aj
+bc
+aj
+aj
+bb
+aj
+ax
+cN
+cR
+cQ
+da
+aj
+cY
+df
+bv
+gF
+ac
+"}
+(31,1,1) = {"
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+ac
+"}
diff --git a/_maps/map_files/Deathmatch/ragecage.dmm b/_maps/map_files/Deathmatch/ragecage.dmm
new file mode 100644
index 00000000000..b5871e89c24
--- /dev/null
+++ b/_maps/map_files/Deathmatch/ragecage.dmm
@@ -0,0 +1,575 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/item/melee/baseball_bat,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"b" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"c" = (
+/obj/item/cardboard_cutout/adaptive{
+ starting_cutout = "Private Security Officer"
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/cardboard_cutout/adaptive{
+ starting_cutout = "Private Security Officer"
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"d" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/north,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"f" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"g" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"i" = (
+/obj/effect/spawner/random/trash/mess,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"k" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"l" = (
+/obj/effect/decal/cleanable/blood,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"m" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/cardboard_cutout/adaptive{
+ starting_cutout = "Private Security Officer"
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"o" = (
+/turf/closed/indestructible/grille,
+/area/deathmatch)
+"p" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/rtg/debug{
+ power_gen = 50000;
+ name = "dumb idiot shocker powerer";
+ desc = "Dont touch the grilles idiot"
+ },
+/obj/structure/cable,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"q" = (
+/turf/closed/indestructible/fakedoor/engineering,
+/area/deathmatch)
+"t" = (
+/obj/effect/spawner/random/trash/graffiti,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"u" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"w" = (
+/obj/effect/decal/cleanable/blood/gibs/limb,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"x" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/effect/spawner/structure/electrified_grille,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"z" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"A" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/west,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"B" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/cardboard_cutout/adaptive{
+ starting_cutout = "Private Security Officer"
+ },
+/obj/structure/cable,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"C" = (
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"D" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/clothing/mask/gas,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"G" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"H" = (
+/turf/closed/indestructible/fakedoor/maintenance,
+/area/deathmatch)
+"I" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/spear,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"K" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"L" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/window/reinforced/spawner/directional/north,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"M" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/flashlight/flare{
+ start_on = 1;
+ icon_state = "flare-on"
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"N" = (
+/obj/effect/decal/cleanable/blood/gibs/down,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"P" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/east,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Q" = (
+/obj/effect/decal/cleanable/blood/tracks{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"R" = (
+/obj/effect/spawner/structure/electrified_grille,
+/obj/structure/window/reinforced/spawner/directional/south,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"S" = (
+/obj/effect/decal/cleanable/blood/gibs/torso,
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"U" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"V" = (
+/obj/structure/chair/comfy/shuttle{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/cardboard_cutout/adaptive{
+ starting_cutout = "Private Security Officer"
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"X" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/storage/toolbox/mechanical/old,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Z" = (
+/turf/cordon,
+/area/deathmatch)
+
+(1,1,1) = {"
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+"}
+(2,1,1) = {"
+Z
+G
+G
+H
+G
+o
+G
+H
+G
+H
+G
+o
+G
+H
+G
+G
+Z
+"}
+(3,1,1) = {"
+Z
+G
+p
+u
+U
+U
+U
+D
+U
+U
+U
+I
+U
+U
+f
+G
+Z
+"}
+(4,1,1) = {"
+Z
+G
+U
+B
+V
+V
+V
+V
+V
+V
+V
+c
+V
+V
+X
+G
+Z
+"}
+(5,1,1) = {"
+Z
+G
+U
+L
+A
+A
+A
+A
+A
+A
+A
+A
+A
+g
+U
+G
+Z
+"}
+(6,1,1) = {"
+Z
+G
+U
+d
+U
+U
+U
+l
+C
+Q
+t
+U
+U
+x
+U
+G
+Z
+"}
+(7,1,1) = {"
+Z
+G
+X
+d
+U
+M
+U
+U
+b
+k
+U
+U
+U
+x
+U
+q
+Z
+"}
+(8,1,1) = {"
+Z
+G
+U
+d
+U
+U
+t
+U
+U
+k
+U
+M
+U
+R
+U
+G
+Z
+"}
+(9,1,1) = {"
+Z
+G
+U
+d
+U
+U
+U
+i
+a
+U
+N
+U
+U
+R
+U
+o
+Z
+"}
+(10,1,1) = {"
+Z
+G
+D
+d
+U
+b
+U
+a
+U
+a
+U
+b
+t
+R
+D
+o
+Z
+"}
+(11,1,1) = {"
+Z
+G
+U
+d
+t
+U
+S
+U
+a
+U
+U
+U
+U
+R
+U
+o
+Z
+"}
+(12,1,1) = {"
+Z
+G
+I
+d
+U
+U
+U
+M
+U
+U
+U
+U
+U
+R
+U
+G
+Z
+"}
+(13,1,1) = {"
+Z
+G
+U
+d
+U
+U
+U
+U
+b
+t
+U
+U
+i
+R
+I
+q
+Z
+"}
+(14,1,1) = {"
+Z
+G
+U
+d
+U
+U
+w
+U
+U
+U
+U
+U
+M
+R
+U
+G
+Z
+"}
+(15,1,1) = {"
+Z
+G
+U
+z
+P
+P
+P
+P
+P
+P
+P
+P
+P
+K
+U
+G
+Z
+"}
+(16,1,1) = {"
+Z
+G
+U
+m
+m
+m
+m
+m
+m
+m
+m
+m
+m
+m
+U
+G
+Z
+"}
+(17,1,1) = {"
+Z
+G
+f
+U
+U
+X
+U
+U
+U
+U
+I
+U
+U
+U
+f
+G
+Z
+"}
+(18,1,1) = {"
+Z
+G
+G
+H
+G
+o
+G
+H
+G
+H
+G
+o
+G
+H
+G
+G
+Z
+"}
+(19,1,1) = {"
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+Z
+"}
diff --git a/_maps/map_files/Deathmatch/raidthebase.dmm b/_maps/map_files/Deathmatch/raidthebase.dmm
new file mode 100644
index 00000000000..99e501a1b3a
--- /dev/null
+++ b/_maps/map_files/Deathmatch/raidthebase.dmm
@@ -0,0 +1,1250 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"bc" = (
+/obj/machinery/door/poddoor/shutters/indestructible/preopen{
+ dir = 1
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"bw" = (
+/obj/machinery/griddle,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"bR" = (
+/obj/effect/turf_decal/caution,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"cF" = (
+/obj/structure/sign/poster/contraband/donk_co/directional/south,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"cH" = (
+/obj/structure/table,
+/obj/item/food/meatball{
+ pixel_y = 6;
+ pixel_x = -5
+ },
+/obj/item/food/meatball{
+ pixel_y = 1;
+ pixel_x = 4
+ },
+/obj/item/food/meatball{
+ pixel_y = 8;
+ pixel_x = 4
+ },
+/obj/item/food/meatball{
+ pixel_y = -4;
+ pixel_x = -6
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"cP" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/obj/item/clothing/gloves/tackler/offbrand,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"df" = (
+/obj/structure/mystery_box/tdome{
+ pixel_y = 0
+ },
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"fu" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/obj/item/claymore,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"fv" = (
+/obj/structure/rack,
+/obj/item/grenade/chem_grenade/clf3{
+ pixel_y = 6;
+ pixel_x = -1
+ },
+/obj/item/grenade/chem_grenade/clf3{
+ pixel_x = 7
+ },
+/obj/item/grenade/frag,
+/obj/item/grenade/frag{
+ pixel_y = 6;
+ pixel_x = 9
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"fx" = (
+/obj/structure/closet/crate/trashcart/filled,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"fE" = (
+/obj/machinery/door/poddoor/shutters/indestructible/preopen{
+ dir = 1
+ },
+/obj/structure/barricade/sandbags,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"fI" = (
+/obj/structure/table,
+/obj/item/food/bbqribs{
+ pixel_y = 8;
+ pixel_x = -1
+ },
+/obj/item/food/bbqribs{
+ pixel_y = 5
+ },
+/obj/item/food/bbqribs{
+ pixel_y = 2;
+ pixel_x = -2
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"fT" = (
+/obj/structure/shipping_container/nakamura,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"fU" = (
+/obj/structure/table,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"gg" = (
+/obj/structure/closet/crate/cardboard,
+/obj/item/storage/toolbox/mechanical,
+/obj/item/storage/toolbox/emergency/turret,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"gG" = (
+/obj/structure/barricade/sandbags,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"hC" = (
+/obj/item/stack/spacecash/c1000,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"hN" = (
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"im" = (
+/obj/structure/closet/crate/medical,
+/obj/item/storage/medkit/advanced,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"in" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/obj/structure/sign/departments/med/directional/west,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"iQ" = (
+/obj/structure/barricade/sandbags,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"iS" = (
+/obj/structure/rack,
+/obj/item/storage/medkit/advanced,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"jy" = (
+/obj/structure/sign/poster/contraband/donk_co/directional/north,
+/obj/structure/mystery_box/tdome{
+ pixel_y = 0
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"jH" = (
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"kc" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"kU" = (
+/obj/machinery/light/cold/directional/west,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"mg" = (
+/obj/machinery/oven,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"ms" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/obj/item/gun/ballistic/automatic/pistol/m1911,
+/obj/item/clothing/suit/armor/vest/alt,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"mB" = (
+/obj/structure/fence/door/opened{
+ dir = 4
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"nS" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/toolbox/guncase/doublesword,
+/obj/structure/window/reinforced/unanchored/spawner/directional/south,
+/obj/structure/window/reinforced/unanchored/spawner/directional/east,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"oU" = (
+/turf/closed/indestructible/fakedoor/maintenance,
+/area/deathmatch)
+"pc" = (
+/obj/structure/plasticflaps/opaque,
+/obj/machinery/conveyor/auto{
+ dir = 8
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"re" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"sR" = (
+/obj/structure/closet/crate/cardboard,
+/obj/item/storage/toolbox/ammobox/strilka310,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"tQ" = (
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 5;
+ pixel_x = -1
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"ub" = (
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"uB" = (
+/obj/structure/fence/end,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"uW" = (
+/obj/structure/table,
+/obj/effect/spawner/random/food_or_drink/donkpockets,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"uY" = (
+/obj/structure/fence/door{
+ dir = 4
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"vV" = (
+/obj/machinery/light/floor,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"wt" = (
+/obj/structure/fence,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"wR" = (
+/obj/structure/table,
+/obj/item/food/bun{
+ pixel_y = 8;
+ pixel_x = -2
+ },
+/obj/item/food/bun{
+ pixel_y = 5;
+ pixel_x = 3
+ },
+/obj/item/food/bun{
+ pixel_y = -1
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"xi" = (
+/obj/effect/spawner/random/trash/garbage,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"xp" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/poddoor/shutters/window{
+ dir = 8;
+ id = "outskirtshutter"
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"xy" = (
+/obj/effect/spawner/structure/window/hollow/reinforced/middle,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"zl" = (
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"zr" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"zP" = (
+/obj/structure/table,
+/obj/item/food/cheese/wheel{
+ pixel_y = 4
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"zQ" = (
+/obj/effect/mine/stun,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"AZ" = (
+/obj/machinery/door/poddoor/shutters/indestructible/preopen{
+ dir = 1
+ },
+/obj/machinery/light/floor,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Bf" = (
+/obj/item/clothing/suit/armor/vest/alt,
+/obj/item/gun/ballistic/revolver/nagant,
+/obj/item/suppressor,
+/obj/structure/closet/crate/cardboard,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"BC" = (
+/obj/structure/table,
+/obj/item/stack/medical/suture,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Cd" = (
+/obj/structure/table,
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_y = 2;
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/cup/glass/coffee{
+ pixel_y = 9;
+ pixel_x = -5
+ },
+/obj/machinery/light/directional/east,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Ce" = (
+/obj/structure/table,
+/obj/item/food/dough{
+ pixel_y = 7;
+ pixel_x = -2
+ },
+/obj/item/food/dough{
+ pixel_x = 5
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"CJ" = (
+/obj/effect/turf_decal/delivery,
+/obj/effect/replica_spawner{
+ obvious_replica = 0;
+ target_path = /obj/machinery/exoscanner
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"CP" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/obj/item/reagent_containers/hypospray/medipen/stimulants,
+/obj/item/spear,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Dq" = (
+/obj/effect/turf_decal/caution{
+ dir = 1
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"DJ" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/indestructible/white/textured,
+/area/deathmatch)
+"Ea" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/machinery/computer/security/telescreen/entertainment/directional/west,
+/turf/open/indestructible/white/textured,
+/area/deathmatch)
+"Eb" = (
+/obj/structure/mystery_box/tdome{
+ pixel_y = 0
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Ei" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/light_emitter/fake_outdoors,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"EL" = (
+/obj/structure/rack,
+/obj/item/gun/ballistic/shotgun/lethal,
+/obj/item/storage/box/lethalshot,
+/obj/item/gun/ballistic/shotgun/lethal,
+/obj/item/storage/box/lethalshot,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"EZ" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"FF" = (
+/obj/item/wirecutters/caravan,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"FP" = (
+/obj/effect/turf_decal/arrows{
+ dir = 8
+ },
+/obj/item/stack/spacecash/c1000{
+ pixel_y = 10
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Ip" = (
+/obj/item/shard{
+ pixel_y = -5;
+ pixel_x = 7
+ },
+/obj/item/shard{
+ pixel_y = 5;
+ pixel_x = -4
+ },
+/obj/effect/mine/shrapnel,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"IR" = (
+/obj/structure/mystery_box/tdome{
+ pixel_y = 0
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"JD" = (
+/obj/structure/reagent_dispensers/fueltank,
+/obj/item/weldingtool,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"JR" = (
+/obj/machinery/door/airlock/maintenance_hatch,
+/obj/effect/mapping_helpers/airlock/welded,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Kp" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/white/textured,
+/area/deathmatch)
+"KL" = (
+/obj/structure/barricade/security/murderdome,
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 8
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Mh" = (
+/obj/structure/shipping_container/gorlex,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"MF" = (
+/mob/living/basic/bot/medbot,
+/obj/structure/closet/crate/medical,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"MJ" = (
+/obj/effect/turf_decal/caution{
+ dir = 8
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Nn" = (
+/turf/open/indestructible/white/textured,
+/area/deathmatch)
+"NT" = (
+/obj/effect/spawner/random/structure/crate_abandoned,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"NZ" = (
+/obj/structure/fence{
+ dir = 4
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Oc" = (
+/obj/effect/mine/explosive,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Ol" = (
+/obj/machinery/light/floor,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Oz" = (
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Pi" = (
+/obj/structure/closet/crate/wooden,
+/obj/effect/spawner/random/maintenance/four,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Ps" = (
+/obj/structure/fence/corner,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"PB" = (
+/obj/structure/fermenting_barrel/gunpowder,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"PN" = (
+/obj/structure/fence/corner{
+ dir = 8
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"PP" = (
+/obj/machinery/light/directional/south,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Qa" = (
+/turf/closed/indestructible/riveted,
+/area/deathmatch)
+"Qb" = (
+/obj/structure/sign/departments/exam_room/directional/south,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/indestructible/white/textured,
+/area/deathmatch)
+"Re" = (
+/obj/structure/reagent_dispensers/fueltank/large,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"RE" = (
+/obj/machinery/griddle,
+/obj/item/storage/box/syndie_kit/throwing_weapons{
+ pixel_y = 7
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"RX" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Sv" = (
+/obj/structure/table,
+/obj/item/stack/medical/mesh,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"SG" = (
+/obj/machinery/button/door/directional/west{
+ id = "outskirtshutter"
+ },
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Tr" = (
+/obj/effect/turf_decal/caution{
+ dir = 4
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"TE" = (
+/obj/machinery/light/floor,
+/obj/effect/turf_decal/siding/thinplating/light{
+ dir = 8
+ },
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"TK" = (
+/obj/structure/sign/departments/med/directional/west,
+/obj/structure/closet/crate/trashcart/filled,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Vh" = (
+/obj/effect/spawner/random/trash/hobo_squat,
+/obj/item/melee/baseball_bat,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Wa" = (
+/obj/structure/showcase/machinery/tv,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"WB" = (
+/obj/structure/closet/crate/trashcart/filled,
+/obj/effect/light_emitter/fake_outdoors,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"XD" = (
+/obj/structure/rack,
+/turf/open/indestructible/dark,
+/area/deathmatch)
+"Yf" = (
+/obj/effect/light_emitter/fake_outdoors,
+/turf/open/indestructible/rockyground,
+/area/deathmatch)
+"Yg" = (
+/obj/structure/sign/poster/contraband/donk_co/directional/north,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"YU" = (
+/obj/structure/barricade/wooden,
+/obj/structure/barricade/wooden/crude,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"YV" = (
+/obj/structure/closet/secure_closet/freezer/fridge/all_access,
+/obj/item/reagent_containers/condiment/bbqsauce,
+/obj/item/reagent_containers/condiment/bbqsauce,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+"Ze" = (
+/obj/structure/chair/stool/directional/west,
+/turf/open/indestructible/stone,
+/area/deathmatch)
+
+(1,1,1) = {"
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+"}
+(2,1,1) = {"
+Qa
+jH
+jH
+jH
+jH
+kU
+jH
+im
+MF
+Qa
+fu
+Oz
+Oz
+xi
+Oz
+iQ
+Oz
+Oz
+Oz
+Oz
+iQ
+Oz
+Vh
+Qa
+"}
+(3,1,1) = {"
+Qa
+jH
+jH
+iS
+XD
+jH
+jH
+jH
+jH
+Qa
+xi
+Oz
+Yf
+Oz
+Oz
+Oz
+Yf
+IR
+Oz
+Oz
+Yf
+EZ
+Oz
+Qa
+"}
+(4,1,1) = {"
+Qa
+jH
+jH
+Qa
+Qa
+BC
+Sv
+fU
+Qa
+Qa
+fx
+xi
+Oz
+Oz
+xi
+fx
+xi
+Oz
+Oz
+Oz
+Wa
+Oz
+Oz
+Qa
+"}
+(5,1,1) = {"
+Qa
+jH
+jH
+Qa
+Nn
+Nn
+Nn
+Nn
+Ea
+Qa
+IR
+Oz
+MJ
+Oz
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+"}
+(6,1,1) = {"
+Qa
+jH
+jH
+oU
+Nn
+DJ
+Kp
+DJ
+Qb
+Qa
+EZ
+Dq
+CJ
+bR
+Oz
+Qa
+Oz
+Oz
+Oz
+Oz
+Yf
+xi
+Oz
+Qa
+"}
+(7,1,1) = {"
+Qa
+df
+jH
+Qa
+Nn
+Nn
+Nn
+Nn
+DJ
+Qa
+re
+Oz
+Tr
+Oz
+xi
+Oz
+Yf
+Oz
+Qa
+IR
+Oz
+iQ
+Oz
+Qa
+"}
+(8,1,1) = {"
+Qa
+Qa
+Qa
+Qa
+Qa
+KL
+TE
+KL
+Qa
+Qa
+Qa
+wt
+wt
+mB
+Qa
+Qa
+pc
+Qa
+Qa
+Qa
+Qa
+Oz
+Oz
+Qa
+"}
+(9,1,1) = {"
+Qa
+Oz
+ms
+xi
+in
+Oz
+Oz
+Oz
+TK
+xi
+Oz
+Oz
+zl
+Oz
+Qa
+Re
+Oc
+Re
+Re
+Re
+Qa
+kc
+Oz
+Qa
+"}
+(10,1,1) = {"
+Qa
+Oz
+Yf
+EZ
+NZ
+Oz
+Oz
+Yf
+Oz
+Oz
+zl
+Oz
+Yf
+Oz
+Qa
+Qa
+pc
+Qa
+Qa
+Qa
+Qa
+Oz
+Oz
+Qa
+"}
+(11,1,1) = {"
+Qa
+Oz
+Oz
+FF
+NZ
+Oz
+xi
+cP
+Oz
+Oz
+Oz
+Oz
+Oz
+Oz
+Oz
+hC
+FP
+zl
+IR
+Oz
+Oz
+Oz
+iQ
+Qa
+"}
+(12,1,1) = {"
+Qa
+Oz
+Oz
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+kc
+Oz
+Oz
+zl
+Oz
+Yf
+Oz
+Oz
+Oz
+Yf
+xi
+fx
+Qa
+"}
+(13,1,1) = {"
+Qa
+Oz
+xi
+Qa
+nS
+Eb
+hN
+Qa
+EZ
+Oz
+Oz
+Oz
+Oz
+Oz
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+"}
+(14,1,1) = {"
+Qa
+Oz
+WB
+Qa
+hN
+Ol
+hN
+xy
+Oz
+PN
+uY
+uB
+Mh
+Oz
+Qa
+hN
+zr
+hN
+hN
+hN
+hN
+hN
+hN
+Qa
+"}
+(15,1,1) = {"
+Qa
+Oz
+xi
+Qa
+hN
+hN
+hN
+xy
+Oz
+NZ
+Pi
+Oz
+Oz
+Oz
+Qa
+hN
+hN
+hN
+fI
+wR
+hN
+YV
+PP
+Qa
+"}
+(16,1,1) = {"
+Qa
+zl
+Oz
+Qa
+oU
+Ip
+Qa
+Qa
+Oz
+NZ
+Bf
+Oz
+Oz
+cF
+Qa
+jy
+hN
+RX
+hN
+hN
+hN
+hN
+hN
+Qa
+"}
+(17,1,1) = {"
+Qa
+Oz
+Oz
+iQ
+Oz
+Oz
+kc
+iQ
+Oz
+Ps
+fT
+Oz
+sR
+Oz
+bc
+gG
+hN
+ub
+RE
+bw
+hN
+ub
+hN
+Qa
+"}
+(18,1,1) = {"
+Qa
+Oz
+Oz
+zQ
+Oz
+Yf
+Oz
+zQ
+Oz
+Oz
+Oz
+gg
+Yf
+iQ
+AZ
+hN
+hN
+hN
+hN
+hN
+hN
+hN
+hN
+Qa
+"}
+(19,1,1) = {"
+Qa
+Oz
+zl
+Qa
+Qa
+YU
+Qa
+Qa
+Oz
+Oz
+Oz
+NT
+Oz
+Oz
+AZ
+hN
+ub
+hN
+hN
+hN
+ub
+hN
+hN
+Qa
+"}
+(20,1,1) = {"
+Qa
+Oz
+Oz
+Qa
+JD
+vV
+JD
+Qa
+Oz
+Oz
+Oz
+Oz
+zl
+Oz
+fE
+hN
+hN
+hN
+mg
+mg
+hN
+Eb
+hN
+Qa
+"}
+(21,1,1) = {"
+Qa
+Oz
+Oz
+Qa
+Qa
+Qa
+Qa
+Qa
+xp
+xp
+Qa
+Oz
+Oz
+cF
+Qa
+Yg
+uW
+hN
+hN
+hN
+hN
+cH
+hN
+Qa
+"}
+(22,1,1) = {"
+Qa
+Oz
+Oz
+Qa
+hN
+Eb
+hN
+SG
+Ze
+hN
+Qa
+Oz
+Oz
+zl
+Qa
+hN
+zP
+hN
+hN
+RX
+hN
+Ce
+PP
+Qa
+"}
+(23,1,1) = {"
+Qa
+xi
+Yf
+JR
+hN
+hN
+hN
+hN
+hN
+hN
+Qa
+CP
+Ei
+Oz
+Qa
+hN
+hN
+hN
+tQ
+uW
+hN
+PB
+hN
+Qa
+"}
+(24,1,1) = {"
+Qa
+fx
+xi
+Qa
+hN
+hN
+Cd
+hN
+EL
+fv
+Qa
+Oz
+Oz
+Oz
+Qa
+hN
+hN
+hN
+hN
+hN
+hN
+hN
+hN
+Qa
+"}
+(25,1,1) = {"
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+Qa
+"}
diff --git a/_maps/map_files/Deathmatch/shooting_range.dmm b/_maps/map_files/Deathmatch/shooting_range.dmm
new file mode 100644
index 00000000000..e6d04007ebd
--- /dev/null
+++ b/_maps/map_files/Deathmatch/shooting_range.dmm
@@ -0,0 +1,750 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/machinery/light/directional/east,
+/turf/open/floor/wood,
+/area/deathmatch)
+"b" = (
+/obj/structure/chair/office{
+ dir = 4
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"c" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/effect/spawner/structure/window,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"d" = (
+/obj/item/ammo_box/magazine/m9mm/ap,
+/turf/open/floor/wood,
+/area/deathmatch)
+"e" = (
+/obj/effect/decal/cleanable/blood/old,
+/turf/open/floor/wood,
+/area/deathmatch)
+"f" = (
+/obj/machinery/light/directional/west,
+/obj/structure/barricade/sandbags,
+/turf/open/floor/wood,
+/area/deathmatch)
+"g" = (
+/turf/closed/indestructible/iron,
+/area/deathmatch)
+"h" = (
+/obj/structure/barricade/wooden,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"i" = (
+/obj/structure/extinguisher_cabinet/directional/east,
+/turf/open/floor/wood,
+/area/deathmatch)
+"j" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"k" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/magazine/m9mm/fire,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"l" = (
+/obj/structure/table/reinforced,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/obj/item/ammo_box/magazine/m9mm,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"m" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"n" = (
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/wood,
+/area/deathmatch)
+"o" = (
+/obj/item/ammo_box/magazine/m9mm/ap,
+/obj/structure/closet/crate/secure/weapon{
+ locked = 0
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"p" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 1
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"q" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"r" = (
+/obj/item/flashlight/flare,
+/turf/open/floor/wood,
+/area/deathmatch)
+"s" = (
+/obj/machinery/light/directional/south,
+/turf/open/floor/wood,
+/area/deathmatch)
+"t" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"u" = (
+/obj/structure/barricade/sandbags,
+/obj/structure/extinguisher_cabinet/directional/west,
+/turf/open/floor/wood,
+/area/deathmatch)
+"v" = (
+/obj/item/reagent_containers/hypospray/medipen,
+/turf/open/floor/wood,
+/area/deathmatch)
+"x" = (
+/obj/item/ammo_box/magazine/m9mm/fire,
+/turf/open/floor/wood,
+/area/deathmatch)
+"y" = (
+/obj/item/ammo_box/magazine/m9mm/fire,
+/obj/structure/closet/crate/secure/weapon{
+ locked = 0
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"z" = (
+/turf/open/floor/wood,
+/area/deathmatch)
+"A" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"B" = (
+/obj/machinery/light/directional/west,
+/turf/open/floor/wood,
+/area/deathmatch)
+"C" = (
+/obj/structure/table/reinforced,
+/obj/item/flashlight/lamp,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"D" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"E" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"F" = (
+/obj/structure/barricade/wooden,
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"I" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"K" = (
+/turf/closed/wall,
+/area/deathmatch)
+"M" = (
+/obj/structure/barricade/sandbags,
+/turf/open/floor/wood,
+/area/deathmatch)
+"O" = (
+/obj/structure/barricade/wooden,
+/turf/open/floor/wood,
+/area/deathmatch)
+"Q" = (
+/obj/item/ammo_box/magazine/m9mm/hp,
+/obj/structure/closet/crate/secure/weapon{
+ locked = 0
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood/tile,
+/area/deathmatch)
+"T" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/wood,
+/area/deathmatch)
+"U" = (
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"W" = (
+/obj/machinery/light/directional/north,
+/turf/open/floor/wood,
+/area/deathmatch)
+"X" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/floor/wood/large,
+/area/deathmatch)
+"Y" = (
+/obj/structure/extinguisher_cabinet/directional/north,
+/turf/open/floor/wood,
+/area/deathmatch)
+
+(1,1,1) = {"
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+"}
+(2,1,1) = {"
+g
+E
+j
+q
+q
+h
+q
+q
+q
+q
+q
+q
+Q
+q
+q
+q
+j
+q
+q
+q
+o
+g
+"}
+(3,1,1) = {"
+g
+I
+z
+z
+T
+K
+z
+z
+M
+z
+z
+z
+z
+z
+z
+i
+z
+z
+z
+z
+m
+g
+"}
+(4,1,1) = {"
+g
+I
+z
+z
+z
+K
+M
+M
+M
+z
+z
+z
+z
+z
+O
+K
+z
+z
+K
+O
+m
+g
+"}
+(5,1,1) = {"
+g
+I
+z
+a
+z
+K
+z
+z
+z
+z
+z
+z
+e
+z
+O
+z
+z
+z
+z
+K
+m
+g
+"}
+(6,1,1) = {"
+g
+F
+O
+K
+z
+n
+z
+z
+z
+a
+z
+e
+z
+z
+K
+W
+e
+z
+z
+z
+t
+g
+"}
+(7,1,1) = {"
+g
+I
+z
+f
+e
+z
+r
+K
+K
+K
+O
+O
+K
+z
+K
+z
+z
+T
+z
+z
+m
+g
+"}
+(8,1,1) = {"
+g
+I
+z
+M
+M
+M
+z
+c
+U
+U
+U
+U
+X
+z
+O
+z
+z
+z
+z
+K
+m
+g
+"}
+(9,1,1) = {"
+g
+I
+e
+z
+v
+z
+z
+K
+U
+l
+b
+U
+X
+z
+O
+K
+K
+K
+K
+O
+m
+g
+"}
+(10,1,1) = {"
+g
+I
+z
+z
+z
+z
+z
+K
+U
+C
+k
+U
+K
+z
+z
+z
+z
+M
+z
+z
+m
+g
+"}
+(11,1,1) = {"
+g
+I
+z
+z
+z
+z
+z
+c
+U
+U
+U
+U
+O
+e
+v
+z
+z
+M
+x
+z
+m
+g
+"}
+(12,1,1) = {"
+g
+I
+z
+M
+M
+z
+z
+K
+O
+O
+K
+K
+K
+z
+z
+z
+z
+M
+M
+z
+t
+g
+"}
+(13,1,1) = {"
+g
+I
+z
+e
+M
+z
+z
+B
+z
+z
+z
+u
+d
+z
+z
+r
+z
+z
+z
+z
+m
+g
+"}
+(14,1,1) = {"
+g
+I
+z
+z
+M
+z
+z
+z
+z
+M
+z
+M
+z
+z
+s
+K
+K
+O
+O
+K
+m
+g
+"}
+(15,1,1) = {"
+g
+I
+K
+O
+O
+K
+O
+z
+z
+M
+z
+z
+z
+z
+z
+K
+T
+z
+z
+K
+m
+g
+"}
+(16,1,1) = {"
+g
+I
+z
+z
+z
+z
+O
+z
+K
+K
+z
+K
+O
+z
+z
+O
+z
+z
+s
+K
+m
+g
+"}
+(17,1,1) = {"
+g
+I
+e
+z
+T
+s
+K
+z
+K
+z
+z
+z
+O
+z
+z
+O
+e
+z
+z
+K
+m
+g
+"}
+(18,1,1) = {"
+g
+I
+z
+z
+z
+z
+K
+Y
+K
+W
+z
+z
+O
+z
+z
+K
+z
+z
+z
+z
+m
+g
+"}
+(19,1,1) = {"
+g
+I
+z
+z
+z
+z
+K
+e
+K
+z
+e
+z
+K
+z
+z
+K
+K
+K
+K
+K
+m
+g
+"}
+(20,1,1) = {"
+g
+I
+z
+K
+K
+z
+K
+z
+K
+K
+z
+z
+K
+e
+z
+z
+z
+z
+z
+z
+m
+g
+"}
+(21,1,1) = {"
+g
+y
+D
+D
+D
+D
+D
+D
+D
+A
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+p
+g
+"}
+(22,1,1) = {"
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+g
+"}
diff --git a/_maps/map_files/Deathmatch/starwars.dmm b/_maps/map_files/Deathmatch/starwars.dmm
new file mode 100644
index 00000000000..c1f00546107
--- /dev/null
+++ b/_maps/map_files/Deathmatch/starwars.dmm
@@ -0,0 +1,2040 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"ai" = (
+/obj/effect/turf_decal/tile/brown/half,
+/obj/item/stack/package_wrap,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"ay" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"aM" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"aY" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/item/reagent_containers/syringe,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"bE" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/template_noop)
+"bR" = (
+/obj/machinery/computer{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"ch" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/tank_holder/extinguisher,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"cj" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 1
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"cp" = (
+/obj/effect/turf_decal/tile/red/opposingcorners{
+ dir = 8
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"cs" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/blood/gibs/down,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"cL" = (
+/obj/machinery/door/poddoor/shutters/indestructible/preopen{
+ id = "Starwars"
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"cM" = (
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"dc" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 1
+ },
+/obj/machinery/computer,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"dg" = (
+/obj/effect/turf_decal/tile/brown/half,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"dw" = (
+/obj/structure/closet/crate/cardboard,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/item/mail/junkmail,
+/obj/item/ammo_casing/a357,
+/obj/item/reagent_containers/syringe/plasma,
+/turf/open/indestructible,
+/area/deathmatch)
+"dF" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"dV" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/structure/table/glass,
+/obj/item/stack/medical/mesh,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"ep" = (
+/obj/effect/turf_decal/tile/dark_red/anticorner{
+ dir = 4
+ },
+/obj/machinery/computer{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"ew" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/fluff/fake_scrubber,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"eH" = (
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"eJ" = (
+/obj/effect/turf_decal/tile/red/full,
+/obj/machinery/door/poddoor/shutters/indestructible/preopen{
+ id = "Starwars"
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"eV" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/epinephrine,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"fe" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 8
+ },
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"fs" = (
+/obj/structure/ore_box,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"fy" = (
+/obj/structure/table/glass,
+/obj/item/retractor,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"fD" = (
+/obj/effect/turf_decal/tile/dark_red/half{
+ dir = 1
+ },
+/obj/machinery/computer,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"fN" = (
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"fU" = (
+/obj/structure/chair,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"gf" = (
+/obj/structure/closet/crate/cardboard,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/delivery,
+/obj/item/mail/junkmail,
+/obj/effect/spawner/random/maintenance,
+/obj/item/assembly/igniter,
+/turf/open/indestructible,
+/area/deathmatch)
+"gE" = (
+/obj/effect/turf_decal/box,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"gJ" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"gN" = (
+/obj/machinery/button/door{
+ id = "Starwars"
+ },
+/obj/structure/table/reinforced,
+/obj/structure/window/spawner/directional/north,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"gR" = (
+/obj/structure/closet/crate/large,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/delivery,
+/obj/item/mail/junkmail,
+/obj/item/stack/cable_coil,
+/turf/open/indestructible,
+/area/deathmatch)
+"ht" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"hJ" = (
+/obj/structure/table/reinforced,
+/obj/machinery/button/door{
+ id = "Starwars"
+ },
+/obj/structure/window/spawner/directional/south,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"hV" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"il" = (
+/obj/structure/table/glass,
+/obj/effect/spawner/random/medical/surgery_tool,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"in" = (
+/obj/effect/turf_decal/tile/red/full,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"iq" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/effect/spawner/random/maintenance/two,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"ir" = (
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"iz" = (
+/obj/structure/rack,
+/obj/item/shield/riot,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"iH" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/machinery/light/directional/west,
+/obj/structure/table/glass,
+/obj/item/stack/medical/suture,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"jh" = (
+/obj/machinery/stasis{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue/full,
+/obj/item/reagent_containers/cup/beaker/large,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"jK" = (
+/obj/effect/turf_decal/tile/dark_red/anticorner,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"ks" = (
+/obj/structure/table/glass,
+/obj/item/storage/medkit/toxin,
+/obj/machinery/light/directional/north,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"kz" = (
+/obj/item/storage/medkit/fire,
+/obj/structure/table/glass,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"kA" = (
+/obj/effect/spawner/random/maintenance/three,
+/obj/structure/table,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"kC" = (
+/obj/structure/rack,
+/obj/item/gun/energy/e_gun/mini,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"kD" = (
+/obj/item/reagent_containers/syringe/multiver,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"kF" = (
+/obj/effect/turf_decal/tile/red/full,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"kG" = (
+/obj/effect/turf_decal/tile/brown{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"mu" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/glass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"my" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/contraband/krokodil,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"mz" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/contraband/morphine,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"mK" = (
+/obj/structure/tank_holder/extinguisher,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"nl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/insectguts,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"nG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"nT" = (
+/obj/structure/fluff/fake_scrubber,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"nV" = (
+/obj/effect/decal/cleanable/blood/old,
+/obj/effect/spawner/random/trash/bin,
+/obj/item/reagent_containers/cup/glass/drinkingglass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"oo" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"oq" = (
+/obj/effect/turf_decal/tile/blue/anticorner{
+ dir = 1
+ },
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/contraband/space_drugs,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"oC" = (
+/obj/effect/turf_decal/tile/red/anticorner,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"oL" = (
+/obj/structure/table/glass,
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/effect/spawner/random/medical/surgery_tool,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"pU" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/multiver,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"pX" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 8
+ },
+/obj/machinery/computer{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"qf" = (
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"qm" = (
+/obj/structure/window/reinforced/spawner/directional/south,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/structure/window/reinforced/spawner/directional/north,
+/obj/structure/window/reinforced/spawner/directional/east,
+/obj/structure/table/reinforced/plastitaniumglass,
+/obj/item/clothing/mask/gas/sechailer/swat,
+/obj/machinery/light/floor,
+/obj/item/dualsaber/red,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"qs" = (
+/obj/machinery/computer,
+/obj/structure/window/spawner/directional/north,
+/obj/structure/window/spawner/directional/west,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"qR" = (
+/obj/machinery/computer{
+ dir = 1
+ },
+/obj/structure/window/spawner/directional/south,
+/obj/structure/window/spawner/directional/east,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"qT" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"qU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"rc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"rj" = (
+/obj/structure/ore_box,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/turf/open/indestructible,
+/area/deathmatch)
+"rk" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/item/knife/kitchen,
+/turf/open/indestructible,
+/area/deathmatch)
+"rw" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/vehicle/ridden/wheelchair{
+ dir = 1
+ },
+/turf/open/indestructible/white,
+/area/deathmatch)
+"rA" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 4
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"rO" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/dropper,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"rR" = (
+/obj/structure/closet/crate/large,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/item/stack/medical/mesh,
+/turf/open/indestructible,
+/area/deathmatch)
+"rU" = (
+/obj/item/storage/medkit/brute,
+/obj/structure/table/glass,
+/obj/machinery/light/directional/west,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"rX" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/pill/patch/synthflesh,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"sk" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/glass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"sl" = (
+/obj/structure/table/glass,
+/obj/effect/turf_decal/tile/blue/anticorner{
+ dir = 1
+ },
+/obj/item/reagent_containers/syringe/contraband/morphine,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"sx" = (
+/obj/effect/turf_decal/tile/red/full,
+/obj/machinery/light/directional/west,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"sM" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 1
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"sQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"sZ" = (
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"tb" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 8
+ },
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"tl" = (
+/obj/effect/turf_decal/tile/blue/full,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"tm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"to" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/light/directional/east,
+/turf/open/indestructible,
+/area/deathmatch)
+"ty" = (
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"tS" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/light/directional/east,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"tU" = (
+/obj/effect/turf_decal/tile/red/full,
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"tV" = (
+/turf/template_noop,
+/area/template_noop)
+"ub" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/structure/table/glass,
+/obj/item/stack/medical/bone_gel,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"ul" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"uC" = (
+/obj/machinery/computer{
+ dir = 8
+ },
+/obj/structure/window/spawner/directional/east,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"vl" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/heretic_rune/big,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"vq" = (
+/obj/machinery/computer{
+ dir = 4
+ },
+/obj/structure/window/spawner/directional/north,
+/obj/structure/window/spawner/directional/west,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"vz" = (
+/obj/structure/table/glass,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"vH" = (
+/obj/effect/turf_decal/tile/dark_red/half{
+ dir = 8
+ },
+/obj/machinery/computer{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"vS" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/contraband/bath_salts,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"wd" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/structure/reagent_dispensers/beerkeg,
+/turf/open/indestructible,
+/area/deathmatch)
+"yA" = (
+/obj/effect/decal/cleanable/glass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"yH" = (
+/obj/machinery/computer,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"zn" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/computer{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"zp" = (
+/obj/structure/closet/crate/large,
+/obj/item/mail/junkmail,
+/obj/item/stack/medical/suture,
+/obj/item/food/pie/cream,
+/turf/open/floor/glass/reinforced/plasma,
+/area/deathmatch)
+"zB" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/blood/gibs/up,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"zF" = (
+/obj/effect/turf_decal/bot_red,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"zH" = (
+/obj/effect/turf_decal/tile/red/anticorner{
+ dir = 4
+ },
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"zK" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"Ax" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/can/food,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"AT" = (
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"AU" = (
+/obj/machinery/light/directional/north,
+/obj/structure/tank_holder/extinguisher,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"Bf" = (
+/obj/effect/turf_decal/bot/left,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Bg" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/splatter,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Bm" = (
+/obj/effect/spawner/random/trash/grille_or_waste,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Bp" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/assembly/igniter,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Bt" = (
+/obj/effect/spawner/random/structure/closet_maintenance,
+/obj/item/reagent_containers/cup/glass/drinkingglass,
+/obj/item/reagent_containers/syringe/plasma,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"BC" = (
+/turf/open/floor/glass/reinforced/plasma,
+/area/deathmatch)
+"Cf" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/computer{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Cj" = (
+/obj/effect/turf_decal/tile/dark_red,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Co" = (
+/obj/effect/turf_decal/tile/blue/anticorner{
+ dir = 1
+ },
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"Cv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light/directional/north,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"CX" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/structure/bed/medical/emergency,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"Df" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/turf/open/indestructible,
+/area/deathmatch)
+"DA" = (
+/obj/effect/turf_decal/tile/dark_red/anticorner{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"DD" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/light/directional/south,
+/obj/structure/tank_holder/extinguisher,
+/turf/open/indestructible,
+/area/deathmatch)
+"Ef" = (
+/obj/structure/closet/crate/cardboard,
+/obj/item/mail/junkmail,
+/obj/effect/spawner/random/maintenance,
+/turf/open/floor/glass/reinforced/plasma,
+/area/deathmatch)
+"Et" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"Ew" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 1
+ },
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Ey" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"EG" = (
+/obj/effect/turf_decal/tile/dark_red/anticorner{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"ES" = (
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/glass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"EZ" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/item/reagent_containers/syringe/plasma,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"Fg" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/structure/table/glass,
+/obj/item/circular_saw,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"Gv" = (
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"GT" = (
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/bot,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Hq" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/structure/closet/crate/trashcart/filled,
+/obj/item/reagent_containers/cup/glass/drinkingglass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"HE" = (
+/obj/structure/closet/crate/large,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/item/storage/toolbox/ammobox/strilka310,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"HL" = (
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Is" = (
+/obj/machinery/light/floor,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Iw" = (
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/structure/bed/medical/emergency,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"IC" = (
+/obj/effect/spawner/structure/window/reinforced/indestructible,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Jc" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"Js" = (
+/obj/effect/turf_decal/bot_red/left,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Jv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/blood/tracks,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Jx" = (
+/obj/machinery/computer{
+ dir = 8
+ },
+/obj/structure/window/spawner/directional/south,
+/obj/structure/window/spawner/directional/east,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"JE" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"JF" = (
+/obj/structure/closet/crate/large,
+/obj/item/mail/junkmail,
+/obj/item/ammo_casing/shotgun/buckshot,
+/turf/open/floor/glass/reinforced/plasma,
+/area/deathmatch)
+"Ke" = (
+/obj/machinery/computer{
+ dir = 4
+ },
+/obj/structure/window/spawner/directional/west,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Ku" = (
+/obj/effect/turf_decal/tile/red/anticorner,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Ky" = (
+/obj/structure/table/glass,
+/obj/effect/turf_decal/tile/blue/fourcorners,
+/obj/item/reagent_containers/syringe/calomel,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"Kz" = (
+/obj/effect/spawner/random/trash/box,
+/obj/item/ammo_box/a357,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"KC" = (
+/obj/structure/closet/crate/cardboard,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/effect/spawner/random/maintenance,
+/turf/open/indestructible,
+/area/deathmatch)
+"KJ" = (
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/floor/glass/reinforced/plasma,
+/area/deathmatch)
+"KM" = (
+/obj/effect/turf_decal/tile/blue/full,
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"KS" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/item/spear/explosive,
+/obj/effect/spawner/random/trash/box,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"KX" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"LE" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"LM" = (
+/obj/structure/closet/crate/large,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/item/throwing_star,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"LS" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 8
+ },
+/obj/machinery/computer{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"LY" = (
+/obj/structure/closet/secure_closet,
+/obj/item/gun/energy/beam_rifle,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Mc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/glass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Me" = (
+/obj/structure/rack,
+/obj/item/throwing_star,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Mx" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/syringe/calomel,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"ME" = (
+/obj/effect/spawner/random/trash/soap,
+/obj/machinery/door/poddoor/shutters/indestructible/preopen{
+ id = "Starwars"
+ },
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"MN" = (
+/obj/structure/ore_box,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/effect/turf_decal/delivery,
+/turf/open/indestructible,
+/area/deathmatch)
+"MT" = (
+/obj/structure/grille/broken,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Nc" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/obj/item/extinguisher,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Nv" = (
+/obj/item/reagent_containers/syringe/syriniver,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"NF" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/light/directional/north,
+/obj/machinery/computer,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"NL" = (
+/obj/structure/ore_box,
+/obj/effect/turf_decal/box,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"NP" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/light/directional/south,
+/obj/machinery/computer{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"NV" = (
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Og" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/obj/effect/decal/cleanable/glass,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Ot" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 4
+ },
+/obj/machinery/computer,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Pj" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Po" = (
+/obj/effect/turf_decal/tile/red/full,
+/obj/machinery/light/directional/south,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Pp" = (
+/obj/structure/ore_box,
+/turf/open/floor/glass/reinforced/plasma,
+/area/deathmatch)
+"PH" = (
+/obj/machinery/computer{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"PK" = (
+/obj/structure/holosign/barrier,
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"PV" = (
+/obj/effect/turf_decal/tile/dark_red/half{
+ dir = 4
+ },
+/obj/machinery/computer{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Qd" = (
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Qh" = (
+/obj/structure/grille/broken,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"QE" = (
+/obj/effect/turf_decal/bot_red,
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"QF" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/computer,
+/turf/open/indestructible/large,
+/area/deathmatch)
+"QG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/trash/boritos,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"QO" = (
+/obj/structure/closet,
+/obj/item/toy/plush/lizard_plushie/green,
+/turf/template_noop,
+/area/template_noop)
+"QS" = (
+/obj/effect/turf_decal/bot_red,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"QU" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Ra" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/glass,
+/obj/effect/landmark/deathmatch_player_spawn,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Rt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/item/stack/cable_coil,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"RJ" = (
+/obj/effect/decal/cleanable/greenglow,
+/obj/item/stack/medical/suture,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Sh" = (
+/obj/effect/turf_decal/tile/dark_red/half,
+/obj/machinery/computer{
+ dir = 1
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"SI" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/structure/closet/crate/mail,
+/obj/item/clothing/under/misc/mailman,
+/obj/item/clothing/head/costume/mailman,
+/turf/open/indestructible,
+/area/deathmatch)
+"SV" = (
+/obj/structure/closet/crate/cardboard,
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/item/mail/junkmail,
+/obj/effect/spawner/random/maintenance,
+/turf/open/indestructible,
+/area/deathmatch)
+"Tj" = (
+/turf/open/indestructible/white,
+/area/deathmatch)
+"TB" = (
+/obj/effect/turf_decal/tile/dark_red/anticorner{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"UQ" = (
+/obj/effect/turf_decal/tile/dark_red{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"US" = (
+/turf/closed/indestructible/reinforced,
+/area/deathmatch)
+"Ve" = (
+/obj/effect/turf_decal/tile/red/full,
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Vz" = (
+/obj/machinery/stasis{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue/full,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"VG" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/obj/effect/mapping_helpers/broken_floor,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"WG" = (
+/obj/structure/table,
+/obj/effect/spawner/random/maintenance/four,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Xf" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/light/directional/west,
+/obj/machinery/computer{
+ dir = 4
+ },
+/turf/open/indestructible/large,
+/area/deathmatch)
+"Xk" = (
+/obj/effect/turf_decal/tile/blue/anticorner,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"Xn" = (
+/obj/structure/grille,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Xq" = (
+/obj/structure/table/glass,
+/obj/item/reagent_containers/cup/beaker/large,
+/obj/item/stack/medical/mesh,
+/turf/open/indestructible/white,
+/area/deathmatch)
+"XG" = (
+/obj/effect/spawner/structure/window,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"XV" = (
+/obj/effect/spawner/random/structure/closet_maintenance,
+/obj/item/stack/cable_coil,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Ye" = (
+/obj/effect/turf_decal/tile/brown/fourcorners,
+/obj/structure/closet/crate/large,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/item/mail/junkmail,
+/obj/item/reagent_containers/medigel/synthflesh,
+/turf/open/indestructible,
+/area/deathmatch)
+"Yf" = (
+/obj/effect/turf_decal/tile/red/anticorner,
+/obj/structure/barricade/security/murderdome,
+/turf/open/indestructible/dark/smooth_large,
+/area/deathmatch)
+"Yg" = (
+/obj/structure/table/glass,
+/obj/effect/turf_decal/tile/blue/full,
+/obj/item/reagent_containers/syringe/contraband/saturnx,
+/turf/open/indestructible/white/smooth_large,
+/area/deathmatch)
+"Yk" = (
+/turf/open/indestructible/vault,
+/area/deathmatch)
+"Ym" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/glass,
+/obj/machinery/light/directional/east,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Yz" = (
+/obj/effect/mapping_helpers/broken_floor,
+/obj/effect/decal/cleanable/blood/tracks,
+/obj/structure/fluff/fake_scrubber,
+/turf/open/indestructible/plating,
+/area/deathmatch)
+"Za" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/vehicle/ridden/wheelchair{
+ dir = 8
+ },
+/turf/open/indestructible/white,
+/area/deathmatch)
+"ZC" = (
+/obj/effect/turf_decal/tile/brown/half{
+ dir = 1
+ },
+/obj/item/stack/package_wrap,
+/turf/open/indestructible/large,
+/area/deathmatch)
+
+(1,1,1) = {"
+tV
+bE
+bE
+bE
+bE
+bE
+bE
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+tV
+tV
+tV
+tV
+tV
+tV
+tV
+"}
+(2,1,1) = {"
+bE
+QO
+bE
+tV
+tV
+IC
+KX
+KX
+vS
+iH
+mK
+vz
+mz
+KX
+Ve
+Ve
+kF
+sx
+kF
+KX
+KX
+tV
+tV
+tV
+tV
+tV
+tV
+"}
+(3,1,1) = {"
+bE
+bE
+tV
+tV
+IC
+IC
+US
+Vz
+sZ
+sZ
+sZ
+Tj
+zK
+kF
+sM
+tb
+sM
+tb
+Ve
+kF
+tU
+KX
+KX
+tV
+tV
+tV
+tV
+"}
+(4,1,1) = {"
+bE
+tV
+tV
+IC
+IC
+rU
+KX
+ub
+sZ
+Jc
+fy
+Tj
+zK
+kF
+rA
+Ku
+zH
+cp
+tb
+Ve
+KX
+kC
+KX
+KX
+tV
+tV
+tV
+"}
+(5,1,1) = {"
+bE
+tV
+IC
+IC
+kz
+Xk
+Fg
+sl
+sZ
+sZ
+sZ
+Tj
+Et
+KX
+kF
+cj
+tb
+rA
+Ku
+KX
+LY
+Yk
+Is
+KX
+KX
+tV
+tV
+"}
+(6,1,1) = {"
+bE
+IC
+IC
+ks
+Xk
+tl
+Co
+sZ
+sZ
+Nv
+sZ
+Xq
+eV
+KX
+kF
+rA
+oC
+cj
+tb
+KX
+Yk
+Yk
+Yk
+iz
+KX
+tV
+tV
+"}
+(7,1,1) = {"
+bE
+KX
+KX
+KX
+aY
+Co
+sZ
+sZ
+il
+Za
+CX
+XG
+XG
+KX
+KX
+KX
+Ve
+rA
+Ku
+kF
+PK
+Yk
+Me
+KX
+tU
+KX
+tV
+"}
+(8,1,1) = {"
+KX
+KX
+jh
+Yg
+oq
+sZ
+sZ
+sZ
+pU
+XG
+XG
+XG
+eH
+Xf
+Cf
+KX
+KX
+kF
+sM
+tb
+kF
+KX
+KX
+kF
+kF
+KX
+KX
+"}
+(9,1,1) = {"
+KX
+my
+sZ
+sZ
+sZ
+sZ
+Jc
+rO
+XG
+XG
+QF
+eH
+Qd
+Qd
+Qd
+bR
+bR
+in
+rA
+Ku
+sM
+tb
+cj
+tb
+Ve
+kF
+KX
+"}
+(10,1,1) = {"
+KX
+KM
+kD
+Mx
+il
+sZ
+rw
+XG
+XG
+eH
+yH
+Qd
+pX
+vH
+LE
+QU
+GT
+Js
+in
+kF
+rA
+Yf
+rA
+cp
+fe
+Ve
+KX
+"}
+(11,1,1) = {"
+KX
+AU
+sZ
+sZ
+sZ
+sZ
+Iw
+XG
+QF
+Qd
+Cj
+jK
+BC
+BC
+BC
+ep
+UQ
+cM
+PH
+KX
+kF
+sM
+tb
+rA
+Ku
+kF
+KX
+"}
+(12,1,1) = {"
+KX
+rX
+Tj
+Tj
+Tj
+Tj
+XG
+XG
+eH
+Qd
+jK
+BC
+vq
+Ke
+fN
+BC
+TB
+cM
+PH
+KX
+KX
+rA
+Ku
+cj
+tb
+Po
+KX
+"}
+(13,1,1) = {"
+KX
+oL
+EZ
+zK
+dV
+Ky
+XG
+QF
+ay
+Ot
+BC
+qs
+fN
+fN
+fN
+fN
+BC
+Cj
+Qd
+ch
+KX
+kF
+Ve
+rA
+Ku
+kF
+KX
+"}
+(14,1,1) = {"
+KX
+KX
+ME
+cL
+KX
+KX
+KX
+NF
+aM
+fD
+BC
+gN
+fN
+qm
+fN
+hJ
+BC
+Sh
+aM
+NP
+KX
+KX
+KX
+eJ
+eJ
+KX
+KX
+"}
+(15,1,1) = {"
+KX
+nV
+Jv
+Yz
+Bm
+RJ
+KX
+ch
+Qd
+dc
+BC
+fN
+fN
+fN
+fU
+qR
+BC
+LS
+Qd
+zn
+XG
+SV
+Df
+Df
+Df
+gR
+KX
+"}
+(16,1,1) = {"
+KX
+ul
+mu
+Ra
+yA
+gJ
+KX
+KX
+Qd
+zF
+EG
+BC
+fN
+uC
+Jx
+BC
+DA
+Qd
+eH
+XG
+XG
+fs
+dg
+BC
+BC
+MN
+KX
+"}
+(17,1,1) = {"
+KX
+Cv
+hV
+rc
+vl
+Ey
+ES
+KX
+yH
+zF
+pX
+EG
+BC
+BC
+BC
+DA
+Ew
+Qd
+eH
+XG
+SI
+fs
+ai
+BC
+BC
+MN
+KX
+"}
+(18,1,1) = {"
+KX
+XV
+ul
+cs
+iq
+Ey
+nT
+AT
+QS
+Bf
+QE
+zF
+Cj
+PV
+UQ
+Qd
+Qd
+eH
+XG
+XG
+fs
+HE
+dg
+BC
+BC
+DD
+KX
+"}
+(19,1,1) = {"
+KX
+ty
+Bm
+Ey
+zB
+sk
+qT
+nl
+qT
+QS
+NV
+NV
+Qd
+Qd
+Qd
+JE
+JE
+XG
+XG
+wd
+Qd
+Qd
+kG
+ir
+ir
+gf
+KX
+"}
+(20,1,1) = {"
+KX
+KX
+MT
+Ax
+tm
+Jv
+Jv
+Ey
+mu
+AT
+KX
+KX
+Pj
+tS
+JE
+XG
+XG
+XG
+KC
+Qd
+gE
+BC
+KJ
+LM
+rj
+KX
+KX
+"}
+(21,1,1) = {"
+tV
+KX
+Kz
+AT
+qT
+oo
+Ey
+Bp
+Bg
+QG
+Bm
+KX
+KX
+KX
+XG
+XG
+rR
+Qd
+Qd
+NL
+Pp
+Ef
+BC
+fs
+rj
+KX
+tV
+"}
+(22,1,1) = {"
+tV
+KX
+KX
+KS
+AT
+qT
+qT
+AT
+ew
+sQ
+VG
+kA
+AT
+KX
+Df
+fs
+fs
+Qd
+Qd
+Pp
+Pp
+zp
+gE
+rk
+IC
+IC
+bE
+"}
+(23,1,1) = {"
+tV
+tV
+KX
+KX
+AT
+Qh
+qT
+mu
+Mc
+ul
+qU
+mu
+Nc
+KX
+Df
+Gv
+Gv
+Gv
+ht
+BC
+BC
+gE
+Df
+IC
+IC
+tV
+bE
+"}
+(24,1,1) = {"
+tV
+tV
+tV
+KX
+KX
+WG
+AT
+Xn
+nl
+qT
+Og
+ul
+ul
+AT
+Df
+BC
+KJ
+BC
+qf
+fs
+fs
+dw
+IC
+IC
+tV
+tV
+bE
+"}
+(25,1,1) = {"
+tV
+tV
+tV
+tV
+KX
+KX
+HL
+Bm
+qT
+Rt
+Ey
+ew
+rc
+AT
+Df
+JF
+Pp
+BC
+ZC
+rj
+Ye
+IC
+IC
+tV
+bE
+tV
+bE
+"}
+(26,1,1) = {"
+tV
+tV
+tV
+tV
+tV
+KX
+KX
+KX
+Bt
+Ym
+ty
+nG
+Hq
+KX
+dF
+MN
+MN
+to
+dF
+KX
+KX
+IC
+tV
+tV
+tV
+bE
+tV
+"}
+(27,1,1) = {"
+tV
+tV
+tV
+tV
+tV
+tV
+tV
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+KX
+tV
+bE
+bE
+bE
+bE
+tV
+tV
+"}
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 1ed7706202c..28143ce53ea 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -1408,7 +1408,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 1
},
/obj/item/pillow/random,
@@ -30045,10 +30045,7 @@
location = "QM #1"
},
/obj/effect/turf_decal/delivery,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #3";
- suffix = "#3"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/storage)
"htQ" = (
@@ -55692,7 +55689,7 @@
/area/station/maintenance/department/science)
"nTU" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/start/hangover,
/obj/item/pillow/random,
@@ -58795,7 +58792,7 @@
/area/station/maintenance/department/science)
"oLO" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/status_display/evac/directional/east,
/obj/item/pillow/random,
/turf/open/floor/wood,
@@ -63738,7 +63735,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 1
},
/obj/machinery/status_display/evac/directional/north,
@@ -81530,10 +81527,7 @@
id = "warehouse_shutters";
name = "warehouse shutters control"
},
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/storage)
"upB" = (
@@ -82693,7 +82687,7 @@
/area/station/tcommsat/server)
"uEo" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/machinery/status_display/evac/directional/east,
/obj/effect/landmark/start/hangover,
/obj/item/pillow/random,
@@ -93655,7 +93649,7 @@
/area/station/science/genetics)
"xso" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/turf/open/floor/wood,
/area/station/maintenance/port/aft)
"xsp" = (
diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
index bb606d6d2a9..dc78c9b621c 100644
--- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm
+++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm
@@ -6937,7 +6937,7 @@
/area/station/engineering/atmos/project)
"ccp" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/machinery/button/door/directional/south{
id = "Dorm5";
@@ -10056,7 +10056,7 @@
/area/station/cargo/office)
"cXp" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood,
/area/station/maintenance/port/fore)
@@ -10419,7 +10419,7 @@
"dcq" = (
/obj/structure/bed,
/obj/machinery/airalarm/directional/north,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/button/door/directional/east{
id = "Dorm3";
name = "Dorm Bolt Control";
@@ -34263,7 +34263,7 @@
/area/station/hallway/secondary/service)
"kzv" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/plating,
/area/station/maintenance/department/medical/morgue)
"kzw" = (
@@ -41239,7 +41239,7 @@
},
/obj/machinery/power/apc/auto_name/directional/north,
/obj/structure/cable,
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/turf/open/floor/iron,
/area/mine/production)
"mHu" = (
@@ -41366,7 +41366,7 @@
"mJO" = (
/obj/structure/bed,
/obj/machinery/airalarm/directional/north,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/button/door/directional/east{
id = "Dorm2";
name = "Dorm Bolt Control";
@@ -45231,7 +45231,7 @@
"nOl" = (
/obj/structure/bed,
/obj/machinery/airalarm/directional/north,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/machinery/button/door/directional/east{
id = "Dorm4";
@@ -49810,7 +49810,7 @@
/area/station/hallway/primary/central)
"piC" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/button/door/directional/south{
id = "Dorm6";
name = "Cabin Bolt Control";
@@ -58780,10 +58780,7 @@
},
/obj/effect/turf_decal/bot,
/obj/machinery/light/small/directional/east,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #2";
- suffix = "#2"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/storage)
"rUz" = (
@@ -63486,7 +63483,7 @@
/obj/structure/bed{
dir = 1
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 1
},
/obj/effect/spawner/random/contraband/permabrig_gear,
@@ -66638,7 +66635,7 @@
/obj/structure/bed{
dir = 1
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 1
},
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -75177,10 +75174,7 @@
location = "QM #1"
},
/obj/effect/turf_decal/bot,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/storage)
"xaH" = (
diff --git a/_maps/map_files/KiloStation2/KiloStation2.dmm b/_maps/map_files/KiloStation2/KiloStation2.dmm
index a11adf92b82..bd6142a8329 100644
--- a/_maps/map_files/KiloStation2/KiloStation2.dmm
+++ b/_maps/map_files/KiloStation2/KiloStation2.dmm
@@ -7215,10 +7215,7 @@
/obj/effect/decal/cleanable/oil,
/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/contraband/the_griffin/directional/north,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
/area/station/cargo/storage)
@@ -7647,7 +7644,7 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/airalarm/directional/east,
/obj/effect/landmark/start/assistant,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/machinery/button/door/directional/north{
id = "Cabin_2";
@@ -18539,10 +18536,7 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/airalarm/directional/north,
/obj/machinery/light/small/directional/north,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #2";
- suffix = "#2"
- },
+/mob/living/simple_animal/bot/mulebot,
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
/area/station/cargo/storage)
@@ -21960,7 +21954,7 @@
},
/obj/machinery/airalarm/directional/west,
/obj/effect/landmark/start/assistant,
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/effect/landmark/start/hangover,
@@ -55143,7 +55137,7 @@
dir = 4
},
/obj/effect/landmark/start/assistant,
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/effect/landmark/start/hangover,
@@ -61124,7 +61118,7 @@
/obj/structure/window/reinforced/spawner/directional/north,
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron/showroomfloor,
/area/station/ai_monitored/security/armory)
"tGb" = (
@@ -72276,7 +72270,7 @@
"xds" = (
/obj/structure/bed,
/obj/effect/landmark/start/assistant,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/item/pillow/random,
/turf/open/floor/wood,
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index b2a9971f12f..443f7049dea 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -1124,7 +1124,7 @@
/area/station/maintenance/fore/lesser)
"avU" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/machinery/button/door/directional/east{
id = "Cabin2";
@@ -23833,7 +23833,7 @@
/obj/machinery/conveyor{
id = "mining"
},
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/turf/open/floor/iron,
/area/station/cargo/miningoffice)
"iIf" = (
@@ -24819,13 +24819,9 @@
/turf/open/floor/iron/white,
/area/station/science/ordnance/storage)
"iWB" = (
-/obj/structure/rack{
- icon = 'icons/obj/fluff/general.dmi';
- icon_state = "minibar";
- name = "skeletal minibar"
- },
/obj/item/storage/fancy/candle_box,
/obj/machinery/light/small/directional/east,
+/obj/structure/rack/skeletal,
/turf/open/floor/engine/cult,
/area/station/service/library)
"iWD" = (
@@ -31986,7 +31982,7 @@
/area/station/medical/virology)
"lxf" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/machinery/button/door/directional/west{
id = "Cabin5";
@@ -41784,7 +41780,7 @@
"oYv" = (
/obj/effect/decal/cleanable/cobweb,
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/machinery/button/door/directional/west{
id = "Cabin4";
@@ -50133,7 +50129,7 @@
/area/station/commons/locker)
"rUo" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
@@ -51804,7 +51800,7 @@
"sBa" = (
/obj/structure/bed,
/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/machinery/button/door/directional/east{
id = "Cabin3";
@@ -56637,10 +56633,6 @@
"uhI" = (
/obj/structure/cable,
/obj/effect/landmark/event_spawn,
-/obj/machinery/requests_console/directional/north{
- department = "Security";
- name = "Security Requests Console"
- },
/turf/open/floor/iron,
/area/station/security/checkpoint/customs)
"uhP" = (
@@ -64199,7 +64191,7 @@
"wNp" = (
/obj/structure/bed,
/obj/effect/decal/cleanable/cobweb,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2,
/obj/effect/landmark/start/hangover,
/obj/machinery/button/door/directional/west{
diff --git a/_maps/map_files/NSSJourney/NSSJourney.dmm b/_maps/map_files/NSSJourney/NSSJourney.dmm
index 11cc24a54dd..fffdc892162 100644
--- a/_maps/map_files/NSSJourney/NSSJourney.dmm
+++ b/_maps/map_files/NSSJourney/NSSJourney.dmm
@@ -2292,7 +2292,7 @@
/area/station/maintenance/solars/starboard/fore)
"apC" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood,
/area/station/maintenance/port/fore)
@@ -2411,7 +2411,7 @@
/area/station/security/execution/education)
"aqn" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/machinery/button/door{
id = "Dorm3";
@@ -2902,7 +2902,7 @@
/area/station/commons/fitness)
"ast" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet,
/area/station/commons/dorms)
"asu" = (
@@ -3442,7 +3442,7 @@
/area/station/security/checkpoint/customs)
"auw" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/button/door{
id = "Dorm2";
name = "Dorm Bolt Control";
@@ -4775,7 +4775,7 @@
/area/station/ai_monitored/command/storage/eva)
"ayV" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/button/door{
id = "Dorm1";
name = "Dorm Bolt Control";
@@ -6955,7 +6955,7 @@
/area/station/commons/dorms)
"aHG" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/machinery/button/door{
id = "Dorm4";
@@ -7065,7 +7065,7 @@
/area/station/commons/dorms)
"aHU" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/button/door{
id = "Dorm5";
name = "Cabin Bolt Control";
@@ -17148,10 +17148,7 @@
location = "QM #1"
},
/obj/effect/turf_decal/bot,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron/dark/textured_large,
/area/station/cargo/storage)
"brO" = (
@@ -17733,10 +17730,7 @@
location = "QM #2"
},
/obj/effect/turf_decal/bot,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #2";
- suffix = "#2"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron/dark/textured_large,
/area/station/cargo/storage)
"btt" = (
@@ -34332,7 +34326,7 @@
"dZT" = (
/obj/machinery/airalarm/directional/north,
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/obj/effect/turf_decal/delivery/red,
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
diff --git a/_maps/map_files/NSVBlueshift/Blueshift.dmm b/_maps/map_files/NSVBlueshift/Blueshift.dmm
index 51457f5c2a0..e61c50ca1c0 100644
--- a/_maps/map_files/NSVBlueshift/Blueshift.dmm
+++ b/_maps/map_files/NSVBlueshift/Blueshift.dmm
@@ -542,7 +542,7 @@
/obj/structure/bed{
dir = 1
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 1
},
/obj/machinery/light_switch/directional/west,
@@ -25949,7 +25949,7 @@
/obj/effect/turf_decal/delivery,
/obj/structure/rack/gunrack,
/obj/machinery/airalarm/directional/south,
-/obj/effect/spawner/armory_spawn/shotguns,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron,
/area/station/ai_monitored/security/armory)
"eTk" = (
@@ -48382,7 +48382,7 @@
/obj/effect/turf_decal/stripes{
dir = 1
},
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/obj/machinery/conveyor{
dir = 8;
id = "mining"
@@ -76512,6 +76512,8 @@
/obj/item/melee/baton/security/loaded,
/obj/structure/cable,
/obj/effect/spawner/random/armory/riot_shield,
+/obj/item/gun/energy/e_gun/dragnet,
+/obj/item/gun/energy/e_gun/dragnet,
/turf/open/floor/iron,
/area/station/ai_monitored/security/armory)
"oGG" = (
@@ -103491,7 +103493,7 @@
/obj/structure/bed{
dir = 1
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 1
},
/obj/effect/landmark/start/hangover,
@@ -108840,13 +108842,13 @@
/turf/closed/wall/r_wall,
/area/station/maintenance/rus_gambling)
"uKW" = (
-/obj/structure/table/reinforced,
-/obj/item/gun/energy/e_gun/dragnet,
-/obj/item/gun/energy/e_gun/dragnet,
/obj/machinery/camera/directional/south{
c_tag = "Armory - Interior"
},
/obj/machinery/light/directional/south,
+/obj/structure/rack/gunrack,
+/obj/effect/turf_decal/delivery,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"uLe" = (
@@ -117173,7 +117175,7 @@
/obj/effect/turf_decal/delivery,
/obj/structure/rack/gunrack,
/obj/machinery/firealarm/directional/south,
-/obj/effect/spawner/armory_spawn/microfusion,
+/obj/effect/spawner/armory_spawn/shotguns,
/turf/open/floor/iron/dark/corner{
dir = 8
},
diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm
index e01fb546e4c..63a8be2d8cf 100644
--- a/_maps/map_files/NorthStar/north_star.dmm
+++ b/_maps/map_files/NorthStar/north_star.dmm
@@ -26977,7 +26977,7 @@
/area/station/medical/pharmacy)
"heS" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
@@ -27019,7 +27019,7 @@
/area/station/maintenance/floor1/starboard/aft)
"hfy" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
@@ -33741,7 +33741,7 @@
/area/station/maintenance/floor1/starboard/fore)
"iTn" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/carpet/black,
/area/station/hallway/secondary/service)
"iTu" = (
@@ -63497,7 +63497,7 @@
/area/station/science/genetics)
"qBh" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
},
@@ -63553,7 +63553,7 @@
/area/station/commons/fitness)
"qCn" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/wood,
/area/station/medical/psychology)
"qCo" = (
@@ -73293,7 +73293,7 @@
/area/station/security/detectives_office/private_investigators_office)
"thH" = (
/obj/structure/cable,
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/obj/machinery/conveyor{
dir = 4;
id = "mining"
diff --git a/_maps/map_files/VoidRaptor/VoidRaptor.dmm b/_maps/map_files/VoidRaptor/VoidRaptor.dmm
index 4df7be29bc7..dfcd9235830 100644
--- a/_maps/map_files/VoidRaptor/VoidRaptor.dmm
+++ b/_maps/map_files/VoidRaptor/VoidRaptor.dmm
@@ -5175,19 +5175,6 @@
dir = 8
},
/area/station/hallway/secondary/construction)
-"bzd" = (
-/obj/structure/chair/sofa/corp/right{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/machinery/light/small/directional/west,
-/obj/effect/landmark/start/bitrunner,
-/turf/open/floor/iron/smooth_edge{
- dir = 4
- },
-/area/space)
"bzg" = (
/obj/structure/flora/tree/jungle/small,
/obj/structure/window/spawner/directional/south,
@@ -5378,7 +5365,7 @@
/area/station/science/ordnance/bomb)
"bBE" = (
/obj/machinery/newscaster/directional/east,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/structure/bed,
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -5636,16 +5623,6 @@
},
/turf/open/floor/engine,
/area/station/science/ordnance/storage)
-"bIo" = (
-/obj/structure/table,
-/obj/machinery/microwave,
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 5
- },
-/obj/machinery/light/small/directional/east,
-/obj/structure/sign/poster/contraband/random/directional/east,
-/turf/open/floor/iron/smooth,
-/area/space)
"bIs" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
dir = 4
@@ -12557,7 +12534,7 @@
/area/station/medical/treatment_center)
"dIL" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
/area/station/maintenance/department/science/xenobiology)
@@ -14911,7 +14888,7 @@
/turf/open/floor/iron/freezer,
/area/station/medical/treatment_center)
"enw" = (
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/obj/machinery/conveyor{
dir = 4;
id = "mining"
@@ -14924,7 +14901,7 @@
/area/station/cargo/miningfoundry)
"enC" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/item/radio/intercom/directional/east,
/turf/open/floor/carpet,
/area/station/commons/dorms)
@@ -16758,25 +16735,6 @@
dir = 1
},
/area/station/commons/storage/primary)
-"eOA" = (
-/obj/structure/table,
-/obj/item/food/ready_donk/mac_n_cheese{
- pixel_y = 3;
- pixel_x = 2
- },
-/obj/item/food/ready_donk/nachos_grandes{
- pixel_y = 7
- },
-/obj/item/food/ready_donk/donkhiladas{
- pixel_y = 11;
- pixel_x = 1
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 6
- },
-/obj/machinery/airalarm/directional/east,
-/turf/open/floor/iron/smooth,
-/area/space)
"eOF" = (
/obj/structure/lattice/catwalk,
/obj/structure/railing{
@@ -18699,7 +18657,7 @@
},
/area/station/hallway/primary/aft)
"fsk" = (
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/machinery/newscaster/directional/east,
/obj/structure/bed/double/pod,
/turf/open/floor/carpet/cyan,
@@ -21895,11 +21853,11 @@
/area/station/medical/medbay/central)
"gra" = (
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
/obj/effect/turf_decal/tile/dark_red/half{
dir = 1
},
/obj/effect/turf_decal/delivery,
+/obj/effect/spawner/armory_spawn/shotguns,
/turf/open/floor/engine,
/area/station/ai_monitored/security/armory)
"grg" = (
@@ -25572,15 +25530,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/circuit,
/area/station/command/teleporter)
-"hsX" = (
-/obj/structure/chair/plastic,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
- dir = 8
- },
-/obj/effect/landmark/start/bitrunner,
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_large,
-/area/space)
"htb" = (
/obj/machinery/status_display/evac/directional/south,
/obj/structure/rack,
@@ -29022,17 +28971,6 @@
},
/turf/open/floor/iron/white/smooth_large,
/area/station/science/lab)
-"iqv" = (
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_edge{
- dir = 4
- },
-/area/space)
"iqx" = (
/obj/machinery/digital_clock,
/turf/closed/wall/r_wall,
@@ -30005,15 +29943,6 @@
/obj/machinery/light/cold/directional/east,
/turf/open/floor/iron/dark,
/area/station/engineering/supermatter/room)
-"iCU" = (
-/obj/structure/table,
-/obj/item/modular_computer/laptop/preset/civilian{
- pixel_y = 5;
- pixel_x = 2
- },
-/obj/structure/cable,
-/turf/open/floor/iron/smooth_large,
-/area/space)
"iCZ" = (
/obj/machinery/computer/communications,
/obj/machinery/keycard_auth{
@@ -35915,7 +35844,6 @@
/area/station/commons/lounge)
"kjG" = (
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/shotguns,
/obj/effect/turf_decal/tile/dark_red/half{
dir = 1
},
@@ -35924,6 +35852,7 @@
/obj/machinery/digital_clock/directional/north{
pixel_y = 37
},
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/engine,
/area/station/ai_monitored/security/armory)
"kjL" = (
@@ -41159,19 +41088,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/smooth,
/area/station/maintenance/department/engine/atmos)
-"lDU" = (
-/obj/structure/chair/sofa/corp/left{
- desc = "Looks like someone threw it out. Covered in donut crumbs.";
- dir = 4;
- name = "couch"
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 9
- },
-/obj/structure/sign/poster/contraband/random/directional/west,
-/obj/effect/landmark/start/bitrunner,
-/turf/open/floor/iron/smooth,
-/area/space)
"lDY" = (
/turf/closed/wall/r_wall,
/area/station/hallway/primary/aft)
@@ -49263,7 +49179,7 @@
/area/station/maintenance/department/crew_quarters/bar)
"nQh" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/machinery/newscaster/directional/east,
/turf/open/floor/carpet/black,
/area/station/commons/dorms)
@@ -59043,15 +58959,6 @@
/obj/effect/turf_decal/siding/thinplating/dark/end,
/turf/open/floor/iron/checker,
/area/station/science/xenobiology)
-"qtJ" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/table,
-/obj/item/plate,
-/obj/effect/spawner/random/trash/food_packaging,
-/obj/structure/cable,
-/obj/machinery/camera/autoname/directional/north,
-/turf/open/floor/iron/smooth_edge,
-/area/space)
"qtL" = (
/turf/closed/mineral,
/area/space/nearstation)
@@ -60213,18 +60120,6 @@
},
/area/station/science/ordnance/testlab)
"qKP" = (
-/obj/structure/table/reinforced,
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_y = 2
- },
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = -4;
- pixel_y = -6
- },
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = 4;
- pixel_y = -6
- },
/obj/structure/window/reinforced/spawner/directional/north{
pixel_y = 1
},
@@ -60238,6 +60133,8 @@
pixel_x = 32
},
/obj/effect/turf_decal/delivery,
+/obj/structure/rack,
+/obj/effect/spawner/random/armory/disablers,
/turf/open/floor/engine,
/area/station/ai_monitored/security/armory)
"qLf" = (
@@ -67406,11 +67303,6 @@
/obj/machinery/light/directional/west,
/turf/open/floor/noslip,
/area/station/service/janitor)
-"sLi" = (
-/obj/machinery/holopad,
-/obj/effect/turf_decal/trimline/brown/filled/corner,
-/turf/open/floor/iron/smooth_corner,
-/area/space)
"sLk" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/effect/turf_decal/trimline/yellow/filled/corner{
@@ -70110,15 +70002,6 @@
/obj/machinery/light/cold/directional/south,
/turf/open/floor/iron/dark/diagonal,
/area/station/engineering/transit_tube)
-"tuN" = (
-/obj/effect/spawner/random/trash/grime,
-/obj/effect/turf_decal/trimline/brown/filled/corner{
- dir = 4
- },
-/turf/open/floor/iron/smooth_corner{
- dir = 4
- },
-/area/space)
"tuU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 8
@@ -70938,10 +70821,7 @@
location = "QM #4"
},
/obj/effect/turf_decal/box,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron/smooth_edge,
/area/station/cargo/storage)
"tEK" = (
@@ -71028,9 +70908,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/station/service/chapel/office)
-"tFN" = (
-/turf/closed/wall,
-/area/space)
"tFW" = (
/obj/effect/turf_decal/trimline/dark_red/arrow_cw{
dir = 1
@@ -77552,13 +77429,13 @@
/turf/open/floor/iron/smooth_large,
/area/station/cargo/sorting)
"vwn" = (
-/obj/structure/rack,
/obj/effect/turf_decal/tile/dark_red/anticorner{
dir = 1
},
/obj/machinery/requests_console/auto_name/directional/north,
/obj/effect/turf_decal/delivery,
-/obj/effect/spawner/random/armory/disablers,
+/obj/structure/rack/gunrack,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/engine,
/area/station/ai_monitored/security/armory)
"vwo" = (
@@ -83101,10 +82978,7 @@
location = "QM #1"
},
/obj/effect/turf_decal/box,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #3";
- suffix = "#3"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron/smooth_edge,
/area/station/cargo/storage)
"wWw" = (
@@ -85898,18 +85772,6 @@
/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms,
/turf/open/floor/catwalk_floor/iron_smooth,
/area/station/tcommsat/computer)
-"xPd" = (
-/obj/structure/chair/plastic{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/brown/filled/line{
- dir = 5
- },
-/obj/machinery/computer/security/telescreen/entertainment/directional/east,
-/obj/structure/sign/poster/contraband/random/directional/north,
-/obj/effect/landmark/start/bitrunner,
-/turf/open/floor/iron/smooth,
-/area/space)
"xPf" = (
/obj/structure/chair/wood,
/obj/item/radio/intercom/chapel{
@@ -135436,10 +135298,10 @@ ttw
ttw
ttw
ttw
-tFN
-lDU
-bzd
-iqv
+ttw
+ttw
+ttw
+ttw
ttw
ttw
ttw
@@ -135693,10 +135555,10 @@ ttw
ttw
ttw
ttw
-tFN
-qtJ
-iCU
-hsX
+ttw
+ttw
+ttw
+ttw
ttw
ttw
ttw
@@ -135950,10 +135812,10 @@ ttw
ttw
ttw
ttw
-tFN
-xPd
-tuN
-sLi
+ttw
+ttw
+ttw
+ttw
ttw
ttw
ttw
@@ -136207,10 +136069,10 @@ ttw
ttw
ttw
ttw
-tFN
-tFN
-bIo
-eOA
+ttw
+ttw
+ttw
+ttw
ttw
ttw
ttw
@@ -136464,10 +136326,10 @@ ttw
ttw
ttw
ttw
-kXK
-tFN
-tFN
-tFN
+ttw
+ttw
+ttw
+ttw
ttw
ttw
ttw
diff --git a/_maps/map_files/generic/CentCom_nova_z2.dmm b/_maps/map_files/generic/CentCom_nova_z2.dmm
index c13b11890c5..7f12a58bb35 100644
--- a/_maps/map_files/generic/CentCom_nova_z2.dmm
+++ b/_maps/map_files/generic/CentCom_nova_z2.dmm
@@ -570,7 +570,7 @@
/turf/open/misc/grass/planet,
/area/centcom/holding/cafepark)
"alk" = (
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/structure/bed/double,
/turf/open/indestructible/carpet,
/area/centcom/holding/cafe)
@@ -1084,7 +1084,7 @@
specialfunctions = 4
},
/obj/structure/bed/double/pod,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/indestructible/carpet,
/area/centcom/holding/cafe)
"aqy" = (
@@ -2499,13 +2499,13 @@
/area/centcom/holding/cafe)
"aGY" = (
/obj/structure/rack,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/indestructible/hotelwood,
/area/centcom/holding/cafe)
"aHb" = (
@@ -4203,6 +4203,12 @@
},
/turf/open/floor/iron,
/area/centcom/interlink)
+"baA" = (
+/obj/structure/chair/sofa/bamboo/left{
+ dir = 1
+ },
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"baM" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -4776,9 +4782,40 @@
/obj/machinery/light/warm/directional/south,
/turf/open/floor/iron/cafeteria,
/area/centcom/interlink)
+"bUH" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/rack/wooden,
+/obj/item/towel{
+ pixel_y = -2;
+ pixel_x = -4
+ },
+/obj/item/towel{
+ pixel_y = 1;
+ pixel_x = 1
+ },
+/obj/item/towel{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/obj/item/towel{
+ pixel_y = -2;
+ pixel_x = -4
+ },
+/obj/item/towel{
+ pixel_y = 1;
+ pixel_x = 1
+ },
+/obj/item/towel{
+ pixel_y = 6;
+ pixel_x = 7
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"bUO" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/turf/open/floor/wood,
/area/centcom/interlink/dorm_rooms)
"bUS" = (
@@ -4850,6 +4887,10 @@
},
/turf/open/floor/iron,
/area/centcom/holding/cafe)
+"bWP" = (
+/obj/structure/wall_torch/spawns_lit/directional/south,
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"bXF" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -5211,7 +5252,7 @@
/area/centcom/interlink)
"cGX" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/sign/painting/library_secure{
pixel_x = 32
},
@@ -6436,6 +6477,15 @@
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding/cafe)
+"ffD" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"fiC" = (
/obj/structure/closet/crate/bin,
/obj/item/paper/crumpled{
@@ -6831,6 +6881,9 @@
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding/cafe)
+"fVc" = (
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"fVr" = (
/obj/effect/light_emitter/interlink,
/obj/effect/turf_decal/weather/dirt,
@@ -6862,6 +6915,17 @@
},
/turf/open/floor/iron/dark,
/area/centcom/interlink)
+"gbM" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/structure/rack/wooden,
+/obj/item/food/grown/poppy/geranium,
+/obj/structure/railing/wooden_fencing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"gdL" = (
/obj/structure/towel_bin,
/obj/structure/table/wood,
@@ -7581,6 +7645,10 @@
/obj/effect/turf_decal/trimline/green/filled/arrow_ccw,
/turf/open/floor/iron/dark,
/area/centcom/interlink)
+"hsW" = (
+/obj/structure/chair/sofa/bamboo/right,
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"huq" = (
/obj/structure/chair/sofa/bench/right{
dir = 4
@@ -7592,6 +7660,10 @@
/obj/machinery/door/poddoor/shuttledock/interlink,
/turf/open/floor/plating,
/area/centcom/interlink)
+"hvL" = (
+/obj/structure/chair/sofa/bamboo,
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"hvQ" = (
/turf/open/floor/iron,
/area/centcom/interlink)
@@ -7933,6 +8005,15 @@
},
/turf/open/floor/grass,
/area/centcom/interlink)
+"iet" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 10
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 8
+ },
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"ifp" = (
/obj/structure/spacevine{
name = "thick vines";
@@ -8489,6 +8570,13 @@
smoothing_flags = 0
},
/area/centcom/holding/cafepark)
+"jdW" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 8
+ },
+/obj/structure/water_source/puddle,
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"jeI" = (
/obj/machinery/cryopod/quiet{
dir = 1
@@ -8771,6 +8859,18 @@
/obj/item/pen,
/turf/open/floor/iron/dark/textured_large,
/area/centcom/interlink)
+"jGP" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/chair/wood{
+ dir = 4
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"jHv" = (
/obj/structure/bookcase/random/reference,
/turf/open/floor/wood,
@@ -9933,7 +10033,7 @@
/obj/structure/bed/double{
dir = 8
},
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
dir = 8
},
/turf/open/floor/carpet/red,
@@ -10234,6 +10334,12 @@
},
/turf/open/floor/iron/dark,
/area/centcom/interlink)
+"mvU" = (
+/obj/structure/chair/sofa/bamboo/right{
+ dir = 1
+ },
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"mwo" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/cup/glass/mug{
@@ -10944,7 +11050,7 @@
/area/centcom/interlink)
"nCY" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/obj/effect/turf_decal/siding/wood/corner,
/turf/open/floor/wood,
/area/centcom/interlink/dorm_rooms)
@@ -11132,6 +11238,13 @@
/obj/structure/flora/grass/jungle/a/style_2,
/turf/open/misc/dirt/planet,
/area/centcom/holding/cafepark)
+"nVZ" = (
+/obj/structure/fake_stairs/wood/directional/east,
+/obj/structure/railing/wooden_fencing{
+ dir = 1
+ },
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"nWn" = (
/obj/effect/turf_decal/trimline/blue/filled/line{
dir = 1
@@ -12869,6 +12982,13 @@
icon_state = "floor"
},
/area/centcom/holding/cafepark)
+"qIH" = (
+/obj/effect/turf_decal/siding/wood/corner,
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"qIY" = (
/obj/effect/turf_decal/tile/green/opposingcorners,
/turf/open/floor/iron,
@@ -13105,7 +13225,7 @@
/obj/structure/bed/double{
pixel_y = -9
},
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
pixel_y = -9
},
/turf/open/floor/bamboo,
@@ -13218,10 +13338,6 @@
},
/turf/open/floor/iron/white,
/area/centcom/holding/cafe)
-"rnM" = (
-/obj/structure/wall_torch/spawns_lit/directional/south,
-/turf/open/misc/asteroid/snow/indestructible/planet,
-/area/centcom/holding/cafepark)
"roh" = (
/obj/structure/flora/grass/jungle/a/style_3,
/obj/structure/flora/tree/jungle/small/style_random,
@@ -13246,6 +13362,12 @@
smoothing_flags = 0
},
/area/centcom/holding/cafepark)
+"rvt" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"rxB" = (
/obj/structure/closet/secure_closet/freezer/meat,
/turf/open/indestructible/hoteltile{
@@ -13339,7 +13461,6 @@
/area/centcom/holding/cafepark)
"rHH" = (
/obj/structure/railing/wooden_fencing,
-/obj/structure/water_source/puddle,
/turf/open/misc/dirt/planet,
/area/centcom/holding/cafepark)
"rHY" = (
@@ -13851,7 +13972,7 @@
specialfunctions = 4
},
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/turf/open/indestructible/carpet,
/area/centcom/holding/cafepark)
"ssn" = (
@@ -14121,7 +14242,7 @@
/area/centcom/holding/cafe)
"sNs" = (
/obj/structure/bed/double/pod,
-/obj/item/bedsheet/random/double,
+/obj/effect/spawner/random/bedsheet/any/double,
/turf/open/indestructible/hotelwood,
/area/centcom/holding/cafe)
"sOj" = (
@@ -14423,6 +14544,15 @@
},
/turf/open/floor/wood/tile,
/area/centcom/interlink)
+"tnL" = (
+/obj/effect/turf_decal/siding/wood/end{
+ dir = 4
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"tpU" = (
/turf/open/misc/dirt/planet,
/area/centcom/interlink)
@@ -14795,6 +14925,13 @@
/obj/structure/flora/bush/fullgrass/style_random,
/turf/open/floor/grass,
/area/centcom/interlink)
+"uaY" = (
+/obj/structure/wall_torch/spawns_lit/directional/south,
+/obj/structure/chair/sofa/bamboo{
+ dir = 1
+ },
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"ubn" = (
/obj/effect/turf_decal/tile/dark_blue/opposingcorners,
/obj/effect/turf_decal/siding/wood,
@@ -15183,7 +15320,7 @@
/obj/structure/bed/double{
dir = 8
},
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
dir = 8
},
/turf/open/floor/carpet/blue,
@@ -15593,6 +15730,22 @@
"vLx" = (
/turf/closed/indestructible/rock,
/area/centcom/interlink)
+"vLz" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/structure/table/wood,
+/obj/item/paper_bin/bundlenatural,
+/obj/item/pen/charcoal,
+/obj/item/pen/charcoal{
+ pixel_y = 5;
+ pixel_x = 2
+ },
+/obj/structure/railing/wooden_fencing{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"vLY" = (
/obj/effect/turf_decal/trimline/green/corner{
dir = 8
@@ -15639,6 +15792,10 @@
/obj/structure/table/wood,
/turf/open/misc/dirt/planet,
/area/centcom/holding/cafepark)
+"vQP" = (
+/obj/effect/turf_decal/siding/wood,
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"vRf" = (
/obj/machinery/door/airlock/multi_tile/public/glass{
dir = 4;
@@ -15856,7 +16013,6 @@
/obj/structure/chair/wood{
dir = 1
},
-/obj/effect/turf_decal/weather/snow/corner,
/turf/open/misc/dirt/planet,
/area/centcom/holding/cafepark)
"wlA" = (
@@ -15962,6 +16118,12 @@
/obj/effect/light_emitter/interlink,
/turf/open/floor/grass,
/area/centcom/interlink)
+"wyd" = (
+/obj/structure/railing/wooden_fencing{
+ dir = 8
+ },
+/turf/open/misc/asteroid/snow/indestructible/planet,
+/area/centcom/holding/cafepark)
"wyn" = (
/obj/machinery/duct,
/turf/open/floor/iron/freezer,
@@ -16324,6 +16486,14 @@
},
/turf/open/indestructible/hotelwood,
/area/centcom/holding/cafepark)
+"xei" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 10
+ },
+/obj/structure/wall_torch/spawns_lit/directional/south,
+/obj/structure/closet/crate/wooden/storage_barrel,
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"xfD" = (
/obj/structure/punching_bag,
/turf/open/indestructible/hotelwood,
@@ -16461,6 +16631,13 @@
/obj/effect/turf_decal/trimline/green/filled/arrow_cw,
/turf/open/floor/iron/dark,
/area/centcom/interlink)
+"xso" = (
+/obj/structure/rack/wooden,
+/obj/effect/turf_decal/siding/wood{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
"xsM" = (
/obj/structure/window/spawner/directional/south,
/obj/structure/reagent_dispensers/water_cooler,
@@ -16589,6 +16766,19 @@
/obj/machinery/door/window/left/directional/south,
/turf/open/floor/iron/dark,
/area/centcom/interlink)
+"xFa" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/centcom/holding/cafepark)
+"xFg" = (
+/obj/effect/turf_decal/weather/snow/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/wood,
+/turf/open/misc/dirt/planet,
+/area/centcom/holding/cafepark)
"xFE" = (
/obj/structure/chair/sofa/bench/right{
dir = 1
@@ -16655,6 +16845,10 @@
/obj/effect/turf_decal/trimline/blue/filled/warning,
/turf/open/floor/iron/white,
/area/centcom/interlink)
+"xNO" = (
+/obj/structure/chair/sofa/bamboo/left,
+/turf/open/water/hot_spring/cafe,
+/area/centcom/holding/cafepark)
"xOm" = (
/obj/structure/chair/sofa/bench/corner{
dir = 1
@@ -16705,7 +16899,7 @@
/area/centcom/interlink)
"xQK" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/structure/sign/painting/library_secure{
pixel_y = -32
},
@@ -16865,7 +17059,7 @@
dir = 4
},
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/turf/open/floor/iron,
/area/centcom/holding/cafe)
"ycD" = (
@@ -64646,9 +64840,10 @@ pib
pib
aDB
aAd
-aAd
-izJ
izJ
+aAd
+gbM
+xso
amx
ajj
ajj
@@ -64800,7 +64995,6 @@ aaa
aaa
aaa
aaa
-aaa
"}
(187,1,1) = {"
aaa
@@ -64905,12 +65099,12 @@ aSZ
aDB
aAd
aAd
-aEX
+jGP
+bWP
amx
amx
ajj
-aaa
-aaa
+ajj
aaa
aaa
aaa
@@ -65155,20 +65349,20 @@ rjk
dIM
vTT
amx
-aiD
+jdW
eFC
aAd
aAd
aCX
aDB
aAd
-aAd
-izJ
-aAd
+vLz
+xFa
+qIH
+xFa
+bUH
+ajj
ajj
-aaa
-aaa
-aaa
aaa
aaa
aaa
@@ -65418,10 +65612,13 @@ izJ
aAd
aSZ
ayI
-aDB
-aAd
-aAd
-izJ
+aiD
+iet
+wyd
+tnL
+fVc
+fVc
+baA
ajj
aaa
aaa
@@ -65569,9 +65766,6 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
"}
(190,1,1) = {"
aaa
@@ -65676,9 +65870,12 @@ amU
aAd
aCX
hRJ
+ayI
aDB
-aAd
-aAd
+nVZ
+fVc
+fVc
+uaY
ajj
aaa
aaa
@@ -65826,9 +66023,6 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
"}
(191,1,1) = {"
aaa
@@ -65934,8 +66128,11 @@ aAd
cnz
hfJ
wkQ
-aAd
-aAd
+ayI
+rvt
+hsW
+fVc
+mvU
ajj
aaa
aaa
@@ -66083,9 +66280,6 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
"}
(192,1,1) = {"
aaa
@@ -66190,13 +66384,13 @@ aAd
rOQ
ayI
kLW
-eNw
-aAd
-aAd
+pib
+pib
+vQP
+hvL
+fVc
+ajj
ajj
-aaa
-aaa
-aaa
aaa
aaa
aaa
@@ -66449,7 +66643,9 @@ ayI
eNw
aAd
aAd
-izJ
+xFg
+xNO
+fVc
ajj
aaa
aaa
@@ -66598,8 +66794,6 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
"}
(194,1,1) = {"
aaa
@@ -66704,12 +66898,12 @@ jxl
aAd
aoE
aAd
-aAd
-izJ
izJ
+aAd
+ffD
+xei
+ajj
ajj
-aaa
-aaa
aaa
aaa
aaa
@@ -66961,12 +67155,12 @@ izJ
aAd
aoE
aAd
-rnM
+aAd
+aEX
amx
amx
ajj
-aaa
-aaa
+ajj
aaa
aaa
aaa
@@ -67219,6 +67413,7 @@ aAd
aoE
aAd
izJ
+aAd
amx
ajj
ajj
@@ -67370,7 +67565,6 @@ aaa
aaa
aaa
aaa
-aaa
"}
(197,1,1) = {"
aaa
diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm
index 9f005e43e00..ba8942326bc 100644
--- a/_maps/map_files/tramstation/tramstation.dmm
+++ b/_maps/map_files/tramstation/tramstation.dmm
@@ -2585,13 +2585,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron,
/area/station/engineering/atmos)
-"akS" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/structure/table,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"ala" = (
/obj/machinery/button/door/directional/west{
id = "private_g";
@@ -4550,13 +4543,10 @@
/area/station/security/prison)
"aFP" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 1
+ dir = 4
},
/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
+/area/station/hallway/secondary/exit)
"aFU" = (
/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance,
/obj/machinery/door/airlock/maintenance_hatch{
@@ -4580,11 +4570,6 @@
/turf/open/floor/iron,
/area/station/security/brig)
"aFZ" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/landmark/start/hangover,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit)
-"aGa" = (
/obj/effect/spawner/random/engineering/tracking_beacon,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit)
@@ -4630,23 +4615,13 @@
/turf/open/floor/iron/grimy,
/area/station/service/lawoffice)
"aGq" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 4
+/obj/machinery/vending/snack/blue,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 6
},
-/turf/open/floor/iron,
+/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit)
-"aGr" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Escape Wing"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"aGs" = (
/obj/structure/chair,
/obj/effect/turf_decal/trimline/neutral/filled/line{
@@ -4664,10 +4639,9 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"aGw" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/machinery/status_display/ai/directional/west,
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/effect/turf_decal/stripes/white/full,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"aGx" = (
@@ -6247,6 +6221,14 @@
},
/turf/open/floor/iron/dark,
/area/station/engineering/supermatter/room)
+"aZm" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/start/hangover,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit)
"aZo" = (
/obj/effect/turf_decal/siding/thinplating/dark{
dir = 4
@@ -7278,16 +7260,13 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 9
},
-/obj/structure/chair{
- dir = 4
- },
/obj/effect/turf_decal/trimline/red/filled/corner{
dir = 4
},
-/obj/effect/landmark/start/hangover,
/obj/effect/turf_decal/trimline/neutral/corner{
dir = 4
},
+/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"bxG" = (
@@ -7420,7 +7399,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/sign/clock/directional/west,
@@ -8858,9 +8837,6 @@
dir = 1
},
/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"bYd" = (
@@ -9831,6 +9807,7 @@
/obj/effect/turf_decal/trimline/neutral/corner{
dir = 4
},
+/obj/effect/landmark/start/hangover,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"cpR" = (
@@ -10176,7 +10153,7 @@
/area/station/command/heads_quarters/captain)
"cvg" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/effect/landmark/start/assistant,
/obj/structure/sign/clock/directional/north,
/obj/item/pillow/random,
@@ -10723,18 +10700,6 @@
/obj/structure/sign/warning/electric_shock,
/turf/closed/wall/r_wall,
/area/station/hallway/secondary/exit)
-"cFg" = (
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 4
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit)
"cFh" = (
/obj/machinery/modular_computer/preset/engineering{
dir = 8
@@ -11316,11 +11281,6 @@
},
/turf/open/floor/engine,
/area/station/engineering/supermatter/room)
-"cOM" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"cON" = (
/obj/machinery/deepfryer,
/turf/open/floor/iron/white/side{
@@ -11408,7 +11368,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/effect/landmark/start/assistant,
@@ -13099,6 +13059,7 @@
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/extinguisher_cabinet/directional/west,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit)
"duB" = (
@@ -13973,15 +13934,6 @@
},
/turf/open/floor/iron/white,
/area/station/science/ordnance)
-"dLs" = (
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit)
"dLt" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -14198,6 +14150,8 @@
/obj/effect/turf_decal/trimline/neutral/corner{
dir = 4
},
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"dPe" = (
@@ -14385,7 +14339,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/sign/clock/directional/south,
@@ -17448,7 +17402,7 @@
/turf/open/floor/iron/dark,
/area/station/cargo/miningdock/oresilo)
"fdc" = (
-/obj/machinery/bouldertech/brm,
+/obj/machinery/brm,
/obj/machinery/conveyor{
dir = 8;
id = "mining"
@@ -18442,6 +18396,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/cargo/storage)
+"ftZ" = (
+/obj/effect/spawner/structure/window,
+/turf/open/floor/plating,
+/area/station/hallway/primary/tram/right)
"fuj" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/engine,
@@ -19216,7 +19174,7 @@
/turf/open/floor/iron/white,
/area/station/science/lower)
"fKO" = (
-/obj/effect/spawner/structure/window/reinforced,
+/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/station/command/heads_quarters/hop)
"fKW" = (
@@ -22648,10 +22606,6 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 10
},
-/obj/structure/chair{
- dir = 4
- },
-/obj/effect/landmark/start/hangover,
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
@@ -22946,18 +22900,7 @@
/area/station/ai_monitored/command/storage/eva)
"heS" = (
/obj/machinery/holopad,
-/obj/effect/turf_decal/trimline/neutral/corner{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/neutral/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/effect/turf_decal/bot,
-/obj/machinery/status_display/evac/directional/east,
/obj/machinery/camera/directional/east{
c_tag = "Departures - West Main"
},
@@ -22966,6 +22909,10 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/effect/landmark/transport/nav_beacon/tram/nav/immovable_rod,
+/obj/machinery/status_display/ai/directional/east,
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"heY" = (
@@ -22999,7 +22946,7 @@
/obj/structure/bed{
dir = 8
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/sign/clock/directional/east,
/obj/item/pillow/random,
/turf/open/floor/wood,
@@ -23717,13 +23664,6 @@
},
/turf/open/floor/iron,
/area/station/hallway/primary/tram/right)
-"hsT" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 8
- },
-/obj/machinery/status_display/evac/directional/west,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"htb" = (
/obj/structure/closet/secure_closet/courtroom,
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -24598,23 +24538,6 @@
},
/turf/open/floor/engine/hull,
/area/station/solars/starboard/fore)
-"hNh" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Escape Wing"
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"hNo" = (
/obj/machinery/door/firedoor,
/obj/structure/disposalpipe/segment,
@@ -24884,7 +24807,7 @@
/area/station/security/brig)
"hRK" = (
/obj/structure/bed,
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/hangover,
/obj/structure/sign/clock/directional/south,
/obj/item/pillow/random,
@@ -24917,9 +24840,6 @@
c_tag = "Hallway - Central Escape Wing Entry"
},
/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
@@ -26301,6 +26221,15 @@
/obj/effect/turf_decal/stripes/white/full,
/turf/open/floor/iron/white,
/area/station/medical/medbay/central)
+"iur" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit/departure_lounge)
"iuz" = (
/obj/machinery/door/airlock/external{
name = "Port Docking Bay 1";
@@ -26311,7 +26240,7 @@
/area/station/hallway/secondary/entry)
"iuJ" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/structure/sign/clock/directional/north,
/obj/item/pillow/random,
/turf/open/floor/carpet,
@@ -28451,6 +28380,16 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
+"jhn" = (
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 8
+ },
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit)
"jhs" = (
/obj/effect/turf_decal/trimline/red/filled/line{
dir = 5
@@ -28841,7 +28780,7 @@
/obj/structure/bed{
dir = 8
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/assistant,
/obj/structure/sign/clock/directional/east,
/obj/item/pillow/random,
@@ -29049,12 +28988,12 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
},
-/obj/effect/turf_decal/trimline/red/corner{
- dir = 4
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
+/obj/effect/turf_decal/trimline/red/filled/corner{
+ dir = 4
+ },
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"jrz" = (
@@ -29675,11 +29614,9 @@
"jBk" = (
/obj/effect/turf_decal/trimline/neutral/filled/corner,
/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"jBn" = (
@@ -30950,6 +30887,14 @@
"jYS" = (
/turf/closed/wall,
/area/station/medical/chemistry)
+"jYT" = (
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/trimline/neutral/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/white/full,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit/departure_lounge)
"jYU" = (
/obj/structure/transport/linear/public,
/obj/effect/turf_decal/trimline/dark_red/warning{
@@ -30967,8 +30912,6 @@
dir = 1
},
/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/light/directional/south,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
@@ -35579,13 +35522,13 @@
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
"lyR" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 10
- },
-/obj/structure/chair{
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/effect/landmark/start/hangover,
+/obj/effect/turf_decal/trimline/neutral/filled/line,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"lyV" = (
@@ -36227,7 +36170,7 @@
/obj/structure/bed{
dir = 8
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/effect/landmark/start/assistant,
/obj/structure/sign/clock/directional/east,
/obj/item/pillow/random,
@@ -36569,10 +36512,7 @@
location = "QM #2"
},
/obj/effect/turf_decal/tile/brown/fourcorners,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #2";
- suffix = "#2"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
"lQH" = (
@@ -36622,14 +36562,9 @@
/turf/open/floor/iron/smooth,
/area/station/hallway/primary/tram/right)
"lRx" = (
-/obj/structure/chair{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
-/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/effect/landmark/start/hangover,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"lRC" = (
@@ -41744,10 +41679,7 @@
location = "QM #6"
},
/obj/effect/turf_decal/tile/brown/fourcorners,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #6";
- suffix = "#6"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
"nIQ" = (
@@ -41780,9 +41712,10 @@
/turf/open/floor/plating,
/area/station/maintenance/tram/left)
"nJx" = (
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/structure/cable,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"nJF" = (
@@ -42175,12 +42108,9 @@
/turf/open/floor/iron,
/area/station/hallway/secondary/construction/engineering)
"nQq" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"nQr" = (
@@ -44293,6 +44223,15 @@
},
/turf/open/floor/iron,
/area/station/cargo/office)
+"oGG" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit)
"oGJ" = (
/turf/closed/mineral/random/stationside/asteroid/porus,
/area/station/medical/chemistry)
@@ -44591,6 +44530,16 @@
},
/turf/open/space/openspace,
/area/station/solars/port)
+"oOP" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/corner,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit)
"oOT" = (
/obj/structure/table/wood,
/obj/item/food/grown/poppy{
@@ -45408,7 +45357,7 @@
/turf/open/floor/iron/showroomfloor,
/area/station/security/warden)
"pfm" = (
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
dir = 4
},
/obj/structure/bed/double{
@@ -47219,21 +47168,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/security/checkpoint/engineering)
-"pKa" = (
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 8
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner{
- dir = 1
- },
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
-/area/station/hallway/secondary/exit/departure_lounge)
"pKk" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/effect/turf_decal/bot{
@@ -47715,7 +47649,7 @@
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
},
-/obj/structure/extinguisher_cabinet/directional/east,
+/obj/structure/sign/departments/evac/directional/east,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit)
"pUi" = (
@@ -47921,10 +47855,7 @@
location = "QM #3"
},
/obj/effect/turf_decal/tile/brown/fourcorners,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #3";
- suffix = "#3"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
"pXC" = (
@@ -48171,7 +48102,6 @@
/area/station/security/checkpoint/engineering)
"qbW" = (
/obj/machinery/holopad,
-/obj/effect/landmark/observer_start,
/obj/structure/disposalpipe/segment{
dir = 4
},
@@ -48183,6 +48113,7 @@
id = 2
},
/obj/machinery/transport/destination_sign/indicator/directional/south,
+/obj/effect/landmark/observer_start,
/turf/open/floor/iron,
/area/station/hallway/primary/tram/center)
"qch" = (
@@ -48449,7 +48380,6 @@
"qfQ" = (
/obj/structure/cable,
/obj/machinery/power/apc/auto_name/directional/east,
-/obj/machinery/transport/power_rectifier,
/turf/open/floor/catwalk_floor,
/area/station/hallway/primary/tram/right)
"qfS" = (
@@ -49076,7 +49006,6 @@
"qrs" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
/obj/effect/decal/cleanable/dirt,
-/obj/structure/sign/clock/directional/east,
/obj/structure/closet/secure_closet/personal,
/obj/effect/spawner/random/bureaucracy/briefcase,
/obj/machinery/power/apc/auto_name/directional/north,
@@ -49878,7 +49807,9 @@
/turf/open/floor/iron/white,
/area/station/science/research)
"qFH" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4,
+/obj/structure/railing{
+ dir = 1
+ },
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"qFK" = (
@@ -51031,7 +50962,9 @@
dir = 8
},
/obj/structure/cable,
-/obj/structure/disposalpipe/segment,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/light/directional/west,
@@ -52540,10 +52473,7 @@
location = "QM #1"
},
/obj/effect/turf_decal/tile/brown/fourcorners,
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #1";
- suffix = "#1"
- },
+/mob/living/simple_animal/bot/mulebot,
/turf/open/floor/iron,
/area/station/cargo/warehouse)
"rCL" = (
@@ -54601,6 +54531,14 @@
},
/turf/open/floor/iron,
/area/station/commons/fitness)
+"snF" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/station/hallway/secondary/exit)
"snK" = (
/obj/effect/turf_decal/trimline/brown/filled/line{
dir = 1
@@ -55766,8 +55704,6 @@
},
/obj/effect/turf_decal/trimline/neutral/filled/line,
/obj/effect/landmark/start/hangover,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"sJQ" = (
@@ -56470,10 +56406,7 @@
/area/station/service/theater)
"sWq" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 9
- },
-/obj/structure/chair{
- dir = 4
+ dir = 1
},
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
@@ -56541,14 +56474,14 @@
/turf/open/floor/iron,
/area/station/cargo/drone_bay)
"sXo" = (
-/obj/structure/chair{
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/warning{
dir = 1
},
-/obj/effect/turf_decal/trimline/neutral/filled/line,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/obj/machinery/light/directional/south,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"sXL" = (
@@ -58372,9 +58305,8 @@
/area/station/service/theater)
"tEk" = (
/obj/effect/landmark/event_spawn,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
- dir = 1
- },
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/station/hallway/secondary/exit/departure_lounge)
"tEl" = (
@@ -58604,6 +58536,18 @@
/mob/living/simple_animal/bot/floorbot,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/turret_protected/aisat_interior)
+"tIk" = (
+/obj/effect/turf_decal/trimline/neutral/filled/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit/departure_lounge)
"tID" = (
/obj/structure/transport/linear/public,
/obj/effect/landmark/transport/transport_id{
@@ -59292,7 +59236,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/sign/clock/directional/west,
@@ -59904,7 +59848,7 @@
/obj/structure/bed{
dir = 8
},
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/structure/sign/clock/directional/east,
/obj/item/pillow/random,
/turf/open/floor/carpet,
@@ -60506,7 +60450,7 @@
/area/station/hallway/secondary/command)
"upb" = (
/obj/structure/bed/double,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/effect/landmark/start/hangover,
/obj/structure/sign/clock/directional/north,
/obj/item/pillow/random,
@@ -67537,7 +67481,7 @@
/obj/structure/bed/double{
dir = 4
},
-/obj/item/bedsheet/dorms_double{
+/obj/effect/spawner/random/bedsheet/double{
dir = 4
},
/obj/structure/sign/clock/directional/north,
@@ -67565,6 +67509,18 @@
dir = 1
},
/area/station/command/bridge)
+"wJF" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
+/obj/structure/cable,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/neutral/filled/line,
+/obj/effect/turf_decal/stripes/white/full,
+/turf/open/floor/iron,
+/area/station/hallway/secondary/exit/departure_lounge)
"wJM" = (
/obj/structure/lattice/catwalk,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
@@ -68066,17 +68022,12 @@
/turf/open/floor/wood,
/area/station/command/meeting_room)
"wWh" = (
-/obj/effect/turf_decal/trimline/neutral/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/neutral/filled/corner,
-/obj/structure/cable,
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/machinery/vending/cola/blue,
+/obj/effect/turf_decal/siding/thinplating/dark{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
-/turf/open/floor/iron,
+/obj/effect/turf_decal/tile/neutral/fourcorners,
+/turf/open/floor/iron/dark,
/area/station/hallway/secondary/exit)
"wWn" = (
/obj/effect/decal/cleanable/dirt,
@@ -185052,9 +185003,9 @@ bAj
dJk
vUE
vUE
+ftZ
vUE
-vUE
-vUE
+ftZ
vUE
nSI
tXz
@@ -186079,11 +186030,11 @@ qUB
hAR
veA
lCy
-lCy
-lCy
+cFb
+kDH
nzx
+kDH
cFb
-lCy
nSI
tXz
tXz
@@ -186336,13 +186287,13 @@ jha
qDn
ajg
qZZ
-ajg
+kAO
hSt
pgo
kAO
kAO
udX
-kAO
+jhn
duA
bPO
iVy
@@ -186592,9 +186543,9 @@ fZS
kDH
vPB
pzv
+oGG
geG
geG
-dLs
aFZ
geG
geG
@@ -186848,15 +186799,15 @@ lMg
qbu
riS
gAH
-wuF
-wuF
-wuF
-cFg
-aGa
-aDI
+aFP
+oOP
pTW
wuF
+aZm
wuF
+pTW
+aFP
+aDI
aHw
aHE
aHS
@@ -187105,15 +187056,15 @@ pSV
pSV
pSV
pEx
-pEx
-pEx
+jYT
+wJF
fmy
wWh
-wuF
+snF
aGq
fmy
-pEx
-pEx
+jYT
+aGw
pEx
fmy
dbV
@@ -187362,15 +187313,15 @@ gbB
pkD
pSV
bxC
-akS
+joi
lyR
-fmy
-hNh
-pEx
-aGr
-fmy
+xWu
+rUQ
+rUQ
+rUQ
+xWu
sWq
-akS
+eKD
gXH
fmy
fmy
@@ -187620,12 +187571,12 @@ aDN
wzg
tiM
qSm
-eKD
-hsT
-pKa
+tIk
+aGb
+aGb
+aGb
+aGb
aGb
-aFP
-aGw
joi
qSm
swr
@@ -187877,7 +187828,7 @@ aDN
wzg
tiM
qFH
-kIo
+iur
tEk
jBk
heS
@@ -188133,10 +188084,10 @@ wXP
loQ
wAh
cpK
-qSm
-kIo
-qSm
-sXo
+nJx
+nQq
+lRx
+jZe
fmy
aGs
kIo
@@ -188390,10 +188341,10 @@ fam
aDN
wzg
tiM
+qFH
+nQq
qSm
-kIo
-qSm
-lRx
+sJx
rUQ
aGt
kIo
@@ -188649,7 +188600,7 @@ vQX
dJp
jrc
fio
-nJx
+qSm
bYa
rUQ
lai
@@ -189162,9 +189113,9 @@ ifU
kLI
kFu
uCy
-tiM
+sXo
qSm
-nQq
+bYa
rUQ
lai
qSm
@@ -189420,7 +189371,7 @@ hoN
cHS
svC
nny
-cOM
+qSm
jZe
xWu
uuS
diff --git a/_maps/nova/automapper/templates/birdshot/birdshot_armory.dmm b/_maps/nova/automapper/templates/birdshot/birdshot_armory.dmm
index eef058070d4..4964ab7de12 100644
--- a/_maps/nova/automapper/templates/birdshot/birdshot_armory.dmm
+++ b/_maps/nova/automapper/templates/birdshot/birdshot_armory.dmm
@@ -7,9 +7,9 @@
dir = 1
},
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/airalarm/directional/west,
+/obj/effect/spawner/armory_spawn/smg,
/turf/open/floor/iron/dark/small,
/area/station/ai_monitored/security/armory)
"f" = (
@@ -30,53 +30,36 @@
},
/obj/structure/rack/gunrack,
/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/armory_spawn/smg,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron/dark/small,
/area/station/ai_monitored/security/armory)
"A" = (
-/obj/structure/rack,
-/obj/item/clothing/head/helmet/sec{
- pixel_x = -3;
- pixel_y = 3
+/obj/structure/cable,
+/obj/item/storage/barricade{
+ pixel_y = 5
+ },
+/obj/item/storage/barricade,
+/obj/item/storage/barricade{
+ pixel_y = -5
},
-/obj/item/clothing/head/helmet/sec,
-/obj/item/clothing/head/helmet/sec{
+/obj/structure/table,
+/obj/item/flashlight/seclite,
+/obj/item/flashlight/seclite,
+/obj/item/flashlight/seclite,
+/obj/item/clothing/mask/gas/sechailer{
pixel_x = 3;
pixel_y = -3
},
-/obj/item/clothing/suit/armor/vest/alt/sec{
+/obj/item/clothing/mask/gas/sechailer,
+/obj/item/clothing/mask/gas/sechailer{
pixel_x = -3;
pixel_y = 3
},
-/obj/item/clothing/suit/armor/vest/alt/sec,
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/structure/cable,
/turf/open/floor/iron/dark/small,
/area/station/ai_monitored/security/armory)
"B" = (
-/obj/item/clothing/mask/gas/sechailer{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/clothing/mask/gas/sechailer,
-/obj/item/clothing/mask/gas/sechailer{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
-/obj/item/flashlight/seclite,
-/obj/structure/table,
-/obj/item/storage/barricade{
- pixel_y = -5
- },
-/obj/item/storage/barricade,
-/obj/item/storage/barricade{
- pixel_y = 5
- },
+/obj/structure/rack/gunrack,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron/dark/small,
/area/station/ai_monitored/security/armory)
"Q" = (
diff --git a/_maps/nova/automapper/templates/deltastation/deltastation_armory.dmm b/_maps/nova/automapper/templates/deltastation/deltastation_armory.dmm
index 903d69e1062..b31565808ac 100644
--- a/_maps/nova/automapper/templates/deltastation/deltastation_armory.dmm
+++ b/_maps/nova/automapper/templates/deltastation/deltastation_armory.dmm
@@ -22,33 +22,18 @@
},
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/structure/window/reinforced/spawner/directional/south,
-/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
+/obj/item/gun/energy/temperature/security,
+/obj/item/clothing/suit/hooded/ablative,
+/obj/item/gun/energy/ionrifle,
+/obj/structure/rack,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"E" = (
-/obj/structure/rack,
/obj/structure/window/reinforced/spawner/directional/north,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/turf_decal/bot,
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/clothing/suit/armor/vest/alt/sec,
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/clothing/head/helmet/sec{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/clothing/head/helmet/sec,
-/obj/item/clothing/head/helmet/sec{
- pixel_x = -3;
- pixel_y = 3
- },
+/obj/structure/rack/gunrack,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"L" = (
@@ -62,13 +47,13 @@
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"M" = (
-/obj/structure/rack,
-/obj/item/gun/energy/ionrifle,
-/obj/item/clothing/suit/hooded/ablative,
-/obj/item/gun/energy/temperature/security,
/obj/structure/window/reinforced/spawner/directional/south,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/turf_decal/bot,
+/obj/effect/spawner/random/armory/riot_shield,
+/obj/effect/spawner/random/armory/riot_armor,
+/obj/effect/spawner/random/armory/riot_helmet,
+/obj/structure/rack,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"O" = (
@@ -85,20 +70,18 @@
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"R" = (
-/obj/structure/rack,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/armory/riot_helmet,
-/obj/effect/spawner/random/armory/riot_armor,
-/obj/effect/spawner/random/armory/riot_shield,
+/obj/effect/spawner/random/armory/bulletproof_armor,
+/obj/effect/spawner/random/armory/bulletproof_helmet,
+/obj/structure/rack,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"U" = (
-/obj/structure/rack,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/effect/turf_decal/bot,
-/obj/effect/spawner/random/armory/bulletproof_armor,
-/obj/effect/spawner/random/armory/bulletproof_helmet,
+/obj/structure/rack/gunrack,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"X" = (
diff --git a/_maps/nova/automapper/templates/icebox/icebox_armory_middle.dmm b/_maps/nova/automapper/templates/icebox/icebox_armory_middle.dmm
index d6797c049ee..03b1654a5c6 100644
--- a/_maps/nova/automapper/templates/icebox/icebox_armory_middle.dmm
+++ b/_maps/nova/automapper/templates/icebox/icebox_armory_middle.dmm
@@ -32,28 +32,11 @@
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
"i" = (
-/obj/structure/rack,
-/obj/item/clothing/head/helmet/sec{
- pixel_x = -3;
- pixel_y = 3
- },
-/obj/item/clothing/head/helmet/sec,
-/obj/item/clothing/head/helmet/sec{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = 3;
- pixel_y = -3
- },
-/obj/item/clothing/suit/armor/vest/alt/sec,
-/obj/item/clothing/suit/armor/vest/alt/sec{
- pixel_x = -3;
- pixel_y = 3
- },
/obj/effect/turf_decal/tile/red/half{
dir = 8
},
+/obj/effect/spawner/armory_spawn/shotguns,
+/obj/structure/rack/gunrack,
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
"q" = (
@@ -64,7 +47,7 @@
dir = 4
},
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/shotguns,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
"x" = (
@@ -72,7 +55,7 @@
dir = 4
},
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron/dark/textured,
/area/station/ai_monitored/security/armory)
"B" = (
diff --git a/_maps/nova/automapper/templates/metastation/metastation_armory.dmm b/_maps/nova/automapper/templates/metastation/metastation_armory.dmm
index 5375cc02872..a467bc31da2 100644
--- a/_maps/nova/automapper/templates/metastation/metastation_armory.dmm
+++ b/_maps/nova/automapper/templates/metastation/metastation_armory.dmm
@@ -8,8 +8,8 @@
"e" = (
/obj/machinery/airalarm/directional/north,
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
/obj/effect/turf_decal/delivery/red,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
"f" = (
@@ -128,7 +128,7 @@
"C" = (
/obj/effect/turf_decal/delivery/red,
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/smg,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron/smooth,
/area/station/ai_monitored/security/armory)
"D" = (
@@ -239,6 +239,14 @@
/obj/effect/spawner/random/armory/bulletproof_helmet,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
+"P" = (
+/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
+ dir = 1
+ },
+/obj/structure/rack/gunrack,
+/obj/effect/spawner/armory_spawn/smg,
+/turf/open/floor/iron/dark,
+/area/station/ai_monitored/security/armory)
"Q" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/corner,
/obj/effect/turf_decal/trimline/dark_blue/filled/warning{
@@ -342,7 +350,7 @@ N
(5,1,1) = {"
N
b
-D
+P
r
t
F
diff --git a/_maps/nova/automapper/templates/northstar/northstar_armory.dmm b/_maps/nova/automapper/templates/northstar/northstar_armory.dmm
index 3c8ea12baed..9c66b751297 100644
--- a/_maps/nova/automapper/templates/northstar/northstar_armory.dmm
+++ b/_maps/nova/automapper/templates/northstar/northstar_armory.dmm
@@ -3,14 +3,13 @@
/turf/template_noop,
/area/template_noop)
"y" = (
+/obj/effect/spawner/armory_spawn/shotguns,
/obj/structure/rack/gunrack,
-/obj/structure/window/reinforced/spawner/directional/west,
-/obj/effect/spawner/armory_spawn/smg,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"F" = (
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/shotguns,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"I" = (
@@ -20,20 +19,15 @@
/area/station/ai_monitored/security/armory)
"O" = (
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/cable,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"Z" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/barricade{
- pixel_y = 10
- },
-/obj/item/storage/barricade{
- pixel_y = 5
- },
-/obj/item/storage/barricade,
+/obj/structure/window/reinforced/spawner/directional/west,
+/obj/effect/spawner/armory_spawn/smg,
+/obj/structure/rack/gunrack,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
diff --git a/_maps/nova/automapper/templates/tramstation/tramstation_armory.dmm b/_maps/nova/automapper/templates/tramstation/tramstation_armory.dmm
index 6b9b4479c1d..05c9bdb7d5a 100644
--- a/_maps/nova/automapper/templates/tramstation/tramstation_armory.dmm
+++ b/_maps/nova/automapper/templates/tramstation/tramstation_armory.dmm
@@ -52,8 +52,8 @@
dir = 1
},
/obj/structure/rack/gunrack,
-/obj/effect/spawner/armory_spawn/microfusion,
/obj/structure/cable,
+/obj/effect/spawner/armory_spawn/mod_lasers_small,
/turf/open/floor/iron,
/area/station/ai_monitored/security/armory)
"Mp" = (
@@ -61,18 +61,11 @@
layer = 2.9
},
/obj/structure/window/reinforced/spawner/directional/south,
-/obj/structure/closet/secure_closet/armory_kiboko,
+/obj/structure/rack/gunrack,
+/obj/effect/spawner/armory_spawn/mod_lasers_big,
/turf/open/floor/iron,
/area/station/ai_monitored/security/armory)
"SD" = (
-/obj/structure/rack,
-/obj/item/storage/barricade{
- pixel_y = -5
- },
-/obj/item/storage/barricade,
-/obj/item/storage/barricade{
- pixel_y = 5
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -83,6 +76,7 @@
dir = 8
},
/obj/effect/turf_decal/tile/neutral,
+/obj/structure/closet/secure_closet/armory_kiboko,
/turf/open/floor/iron/dark,
/area/station/ai_monitored/security/armory)
"TP" = (
diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm
index f5c0ca4ea61..fc943e5287b 100644
--- a/_maps/shuttles/emergency_clown.dmm
+++ b/_maps/shuttles/emergency_clown.dmm
@@ -158,7 +158,7 @@
/area/shuttle/escape)
"aM" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/mineral/bananium,
/area/shuttle/escape)
"aQ" = (
@@ -246,7 +246,7 @@
/area/shuttle/escape)
"iU" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/light/small/directional/east,
/turf/open/floor/mineral/bananium,
/area/shuttle/escape)
@@ -254,7 +254,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/turf/open/floor/mineral/bananium,
@@ -289,7 +289,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/obj/machinery/light/small/directional/west,
@@ -300,7 +300,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/turf/open/floor/mineral/bananium,
@@ -315,7 +315,7 @@
"XT" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/mineral/bananium,
/area/shuttle/escape)
"YC" = (
diff --git a/_maps/shuttles/emergency_hugcage.dmm b/_maps/shuttles/emergency_hugcage.dmm
index 6e68506c433..4b500f7bdbd 100644
--- a/_maps/shuttles/emergency_hugcage.dmm
+++ b/_maps/shuttles/emergency_hugcage.dmm
@@ -3,7 +3,7 @@
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/escape/brig)
"aR" = (
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 8
},
/obj/structure/bed,
@@ -83,7 +83,7 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"gg" = (
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/obj/structure/bed{
@@ -116,7 +116,7 @@
/area/shuttle/escape)
"iI" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/item/pillow/random,
/obj/effect/spawner/random/entertainment/plushie_delux,
/turf/open/floor/mineral/titanium/yellow,
@@ -148,7 +148,7 @@
/obj/structure/bed{
dir = 1
},
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/obj/item/pillow/random,
@@ -211,7 +211,7 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ys" = (
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 4
},
/obj/structure/bed{
@@ -327,7 +327,7 @@
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/escape/brig)
"KW" = (
-/obj/item/bedsheet/random{
+/obj/effect/spawner/random/bedsheet/any{
dir = 8
},
/obj/structure/bed,
diff --git a/_maps/shuttles/emergency_monastery.dmm b/_maps/shuttles/emergency_monastery.dmm
index b115aa5d423..890cf947340 100644
--- a/_maps/shuttles/emergency_monastery.dmm
+++ b/_maps/shuttles/emergency_monastery.dmm
@@ -2444,16 +2444,12 @@
/turf/open/floor/carpet,
/area/shuttle/escape)
"Ju" = (
-/obj/structure/rack{
- icon = 'icons/obj/fluff/general.dmi';
- icon_state = "minibar";
- name = "skeletal minibar"
- },
/obj/item/book/codex_gigas,
/obj/machinery/camera/directional/south{
c_tag = "Monastery Archives Aft";
network = list("ss13","monastery")
},
+/obj/structure/rack/skeletal,
/turf/open/floor/iron/dark,
/area/shuttle/escape)
"Jv" = (
diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm
index 4f9861db6d5..69a4d6fa18c 100644
--- a/_maps/shuttles/ferry_base.dmm
+++ b/_maps/shuttles/ferry_base.dmm
@@ -62,6 +62,12 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/transport)
+"J" = (
+/obj/machinery/power/shuttle_engine/propulsion{
+ dir = 8
+ },
+/turf/closed/wall/mineral/titanium,
+/area/shuttle/transport)
"U" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
@@ -72,17 +78,17 @@
(1,1,1) = {"
a
-b
+J
k
-b
+J
a
"}
(2,1,1) = {"
-b
+J
g
l
g
-b
+J
"}
(3,1,1) = {"
c
@@ -148,9 +154,9 @@ q
c
"}
(12,1,1) = {"
-c
+b
e
m
e
-c
+b
"}
diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm
index 48d0c4f558f..18197d61f14 100644
--- a/_maps/shuttles/ferry_lighthouse.dmm
+++ b/_maps/shuttles/ferry_lighthouse.dmm
@@ -4,7 +4,7 @@
/area/template_noop)
"ab" = (
/obj/machinery/power/shuttle_engine/propulsion/left{
- dir = 4
+ dir = 8
},
/turf/open/floor/plating/airless,
/area/shuttle/transport)
@@ -257,6 +257,13 @@
},
/turf/open/floor/wood,
/area/shuttle/transport)
+"sy" = (
+/obj/machinery/power/shuttle_engine/propulsion/left{
+ dir = 8;
+ pixel_x = 1
+ },
+/turf/open/floor/plating/airless,
+/area/shuttle/transport)
"ZS" = (
/obj/machinery/light/warm/directional/west,
/turf/open/floor/wood,
@@ -299,7 +306,7 @@ ac
aa
"}
(3,1,1) = {"
-ab
+sy
af
ag
ag
diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm
index 35188f97429..fc986bcda50 100644
--- a/_maps/shuttles/ferry_meat.dmm
+++ b/_maps/shuttles/ferry_meat.dmm
@@ -4,7 +4,7 @@
/area/template_noop)
"b" = (
/obj/machinery/power/shuttle_engine/propulsion{
- dir = 4
+ dir = 8
},
/turf/closed/wall/mineral/titanium,
/area/shuttle/transport)
diff --git a/_maps/shuttles/nova/pirate_nri_raider.dmm b/_maps/shuttles/nova/pirate_nri_raider.dmm
index 72e7adb01f2..f691dc8f150 100644
--- a/_maps/shuttles/nova/pirate_nri_raider.dmm
+++ b/_maps/shuttles/nova/pirate_nri_raider.dmm
@@ -675,6 +675,17 @@
},
/turf/closed/wall/mineral/titanium/spaceship/nodiagonal,
/area/shuttle/pirate/nri)
+"yP" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/item/ammo_box/advanced/s12gauge/magnum,
+/obj/item/ammo_box/advanced/s12gauge/magnum,
+/obj/item/ammo_box/advanced/s12gauge/magnum,
+/obj/item/ammo_box/advanced/s12gauge/beehive,
+/obj/item/ammo_box/advanced/s12gauge/beehive,
+/obj/item/ammo_box/advanced/s12gauge/beehive,
+/obj/structure/rack/shelf,
+/turf/open/floor/pod/light,
+/area/shuttle/pirate/nri)
"zb" = (
/obj/structure/deployable_barricade/guardrail,
/obj/structure/lattice/catwalk,
@@ -885,17 +896,6 @@
},
/turf/open/floor/engine/hull/reinforced,
/area/shuttle/pirate/nri)
-"Gh" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/rack/shelf,
-/obj/item/ammo_box/advanced/s12gauge/bean,
-/obj/item/ammo_box/advanced/s12gauge/bean,
-/obj/item/ammo_box/advanced/s12gauge/magnum,
-/obj/item/ammo_box/advanced/s12gauge/magnum,
-/obj/item/ammo_box/advanced/s12gauge/rubber,
-/obj/item/ammo_box/advanced/s12gauge/rubber,
-/turf/open/floor/pod/light,
-/area/shuttle/pirate/nri)
"GO" = (
/turf/open/floor/engine/hull,
/area/shuttle/pirate/nri)
@@ -1602,7 +1602,7 @@ Hz
"}
(12,1,1) = {"
Hz
-Gh
+yP
qp
qp
wM
diff --git a/_maps/shuttles/nova/ruin_tarkon_driver.dmm b/_maps/shuttles/nova/ruin_tarkon_driver.dmm
index d0e3819e11c..b10221a5542 100644
--- a/_maps/shuttles/nova/ruin_tarkon_driver.dmm
+++ b/_maps/shuttles/nova/ruin_tarkon_driver.dmm
@@ -9,6 +9,7 @@
/obj/machinery/light/directional/east,
/obj/structure/table/reinforced,
/obj/effect/spawner/random/food_or_drink/snack,
+/obj/item/crowbar/red,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"cP" = (
@@ -31,6 +32,11 @@
"ef" = (
/turf/open/floor/iron/recharge_floor,
/area/shuttle/tarkon_driver)
+"eP" = (
+/obj/machinery/power/smes/tarkon_driver,
+/obj/structure/cable,
+/turf/open/floor/mineral/titanium,
+/area/shuttle/tarkon_driver)
"fg" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 4
@@ -59,6 +65,13 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/closed/wall/mineral/titanium/spaceship,
/area/shuttle/tarkon_driver)
+"hT" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
+ dir = 1
+ },
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/mineral/titanium,
+/area/shuttle/tarkon_driver)
"hW" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
@@ -94,6 +107,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"ni" = (
@@ -122,6 +136,12 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{
dir = 1
},
+/obj/machinery/camera/tarkon/directional/south,
+/turf/open/floor/mineral/titanium,
+/area/shuttle/tarkon_driver)
+"pi" = (
+/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"rr" = (
@@ -194,7 +214,7 @@
/obj/item/flashlight/flare,
/obj/item/flashlight/flare,
/obj/item/flashlight/flare,
-/obj/machinery/door/window/right/directional/west,
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/west,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Cn" = (
@@ -202,8 +222,9 @@
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/emergency_oxygen,
-/obj/machinery/door/window/right/directional/west,
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/west,
/obj/machinery/light/directional/south,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Cv" = (
@@ -227,8 +248,7 @@
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Fp" = (
-/obj/structure/table/reinforced,
-/obj/item/crowbar/red,
+/obj/machinery/computer/camera_advanced/tarkon_cam,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"GN" = (
@@ -258,8 +278,9 @@
/obj/item/clothing/suit/space/eva,
/obj/item/clothing/head/helmet/space/eva,
/obj/item/clothing/mask/breath,
-/obj/machinery/door/window/right/directional/east,
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/east,
/obj/machinery/light/directional/south,
+/obj/machinery/camera/tarkon/directional/south,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Jo" = (
@@ -318,8 +339,10 @@
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Pn" = (
-/obj/machinery/power/smes/engineering,
-/obj/structure/cable,
+/obj/machinery/power/smes/engineering{
+ input_level = 5000
+ },
+/obj/machinery/power/smes/tarkon_driver,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Qe" = (
@@ -352,7 +375,7 @@
/obj/item/clothing/suit/space/eva,
/obj/item/clothing/head/helmet/space/eva,
/obj/item/clothing/mask/breath,
-/obj/machinery/door/window/right/directional/east,
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/east,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Tp" = (
@@ -360,7 +383,7 @@
/obj/item/oxygen_candle,
/obj/item/oxygen_candle,
/obj/item/oxygen_candle,
-/obj/machinery/door/window/right/directional/west,
+/obj/machinery/door/window/brigdoor/tarkon/right/directional/west,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"TS" = (
@@ -373,6 +396,7 @@
/obj/structure/table/reinforced,
/obj/machinery/cell_charger,
/obj/machinery/light_switch/directional/east,
+/obj/machinery/camera/tarkon/directional/east,
/turf/open/floor/mineral/titanium,
/area/shuttle/tarkon_driver)
"Ut" = (
@@ -490,7 +514,7 @@ IP
LG
Vp
Xb
-XN
+pi
hH
zL
"}
@@ -608,7 +632,7 @@ Em
uk
Kv
gu
-Xb
+hT
JF
Tp
Cf
@@ -632,7 +656,7 @@ fy
fy
tV
LG
-Pn
+eP
Vt
Pn
GN
diff --git a/_maps/shuttles/nova/whiteship_blueshift.dmm b/_maps/shuttles/nova/whiteship_blueshift.dmm
index 9d8e943f27e..58d0ff34ac6 100644
--- a/_maps/shuttles/nova/whiteship_blueshift.dmm
+++ b/_maps/shuttles/nova/whiteship_blueshift.dmm
@@ -161,7 +161,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/alien/weeds/node,
/obj/structure/bed/double/pod,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/structure/sign/poster/random/directional/east,
/turf/open/floor/wood,
/area/shuttle/abandoned/crew)
@@ -1493,7 +1493,7 @@
/turf/open/floor/plating,
/area/shuttle/abandoned/bridge)
"nX" = (
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -3601,7 +3601,7 @@
/obj/structure/alien/weeds,
/obj/structure/alien/weeds,
/obj/structure/bed/double/pod,
-/obj/item/bedsheet/dorms_double,
+/obj/effect/spawner/random/bedsheet/double,
/obj/structure/sign/poster/random/directional/east,
/turf/open/floor/wood,
/area/shuttle/abandoned/crew)
@@ -3901,7 +3901,7 @@
/turf/template_noop,
/area/shuttle/abandoned/bridge)
"LG" = (
-/obj/item/bedsheet/dorms,
+/obj/effect/spawner/random/bedsheet,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/decal/cleanable/dirt,
/obj/structure/alien/weeds,
diff --git a/_maps/shuttles/pirate_dutchman.dmm b/_maps/shuttles/pirate_dutchman.dmm
index 86b85f7b70e..fb36638173e 100644
--- a/_maps/shuttles/pirate_dutchman.dmm
+++ b/_maps/shuttles/pirate_dutchman.dmm
@@ -464,15 +464,11 @@
/obj/effect/turf_decal/siding/wood{
dir = 8
},
-/obj/structure/rack{
- icon = 'icons/obj/fluff/general.dmi';
- icon_state = "minibar";
- name = "skeletal minibar"
- },
/obj/item/food/grown/sugarcane,
/obj/item/food/grown/sugarcane,
/obj/item/food/grown/sugarcane,
/obj/item/reagent_containers/cup/bucket/wooden,
+/obj/structure/rack/skeletal,
/turf/open/floor/wood/airless,
/area/shuttle/pirate/flying_dutchman)
"vT" = (
@@ -550,17 +546,13 @@
dir = 10
},
/obj/machinery/light/floor,
-/obj/structure/rack{
- icon = 'icons/obj/fluff/general.dmi';
- icon_state = "minibar";
- name = "skeletal minibar"
- },
/obj/item/reagent_containers/condiment/milk{
pixel_x = -5
},
/obj/item/reagent_containers/condiment/milk{
pixel_x = 5
},
+/obj/structure/rack/skeletal,
/turf/open/floor/wood/airless,
/area/shuttle/pirate/flying_dutchman)
"zE" = (
diff --git a/_maps/shuttles/pirate_grey.dmm b/_maps/shuttles/pirate_grey.dmm
index 0726d8d1ea1..7ba8fdd5a5c 100644
--- a/_maps/shuttles/pirate_grey.dmm
+++ b/_maps/shuttles/pirate_grey.dmm
@@ -955,7 +955,7 @@
/area/shuttle/pirate)
"DP" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/floor/plating,
/area/shuttle/pirate)
"DX" = (
diff --git a/_maps/shuttles/pirate_silverscale.dmm b/_maps/shuttles/pirate_silverscale.dmm
index e4838e040e4..d4bd9d0c16b 100644
--- a/_maps/shuttles/pirate_silverscale.dmm
+++ b/_maps/shuttles/pirate_silverscale.dmm
@@ -91,7 +91,7 @@
/obj/structure/bed/pod{
dir = 4
},
-/obj/item/bedsheet/black{
+/obj/item/bedsheet/pirate{
dir = 4
},
/turf/open/floor/carpet/royalblack,
@@ -288,7 +288,7 @@
/area/shuttle/pirate)
"uP" = (
/obj/structure/bed/pod,
-/obj/item/bedsheet/black,
+/obj/item/bedsheet/pirate,
/turf/open/floor/carpet/royalblack,
/area/shuttle/pirate)
"vw" = (
@@ -381,7 +381,7 @@
/obj/machinery/airalarm/directional/east,
/obj/effect/mapping_helpers/airalarm/all_access,
/obj/structure/bed/pod,
-/obj/item/bedsheet/black,
+/obj/item/bedsheet/pirate,
/turf/open/floor/carpet/royalblack,
/area/shuttle/pirate)
"zB" = (
diff --git a/_maps/shuttles/ruin_pirate_cutter.dmm b/_maps/shuttles/ruin_pirate_cutter.dmm
index 9fa1943c5f8..e99c5097664 100644
--- a/_maps/shuttles/ruin_pirate_cutter.dmm
+++ b/_maps/shuttles/ruin_pirate_cutter.dmm
@@ -344,7 +344,7 @@
"wV" = (
/obj/machinery/light/small/directional/north,
/obj/structure/bed,
-/obj/item/bedsheet/brown,
+/obj/item/bedsheet/pirate,
/turf/open/floor/iron/dark,
/area/shuttle/ruin/caravan/pirate)
"xb" = (
@@ -501,7 +501,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/brown{
+/obj/item/bedsheet/pirate{
dir = 4
},
/obj/machinery/airalarm/directional/west,
@@ -514,7 +514,7 @@
"Ha" = (
/obj/machinery/light/small/directional/south,
/obj/structure/bed,
-/obj/item/bedsheet/brown,
+/obj/item/bedsheet/pirate,
/turf/open/floor/iron/dark,
/area/shuttle/ruin/caravan/pirate)
"Hb" = (
@@ -838,7 +838,7 @@
/obj/structure/bed{
dir = 4
},
-/obj/item/bedsheet/brown{
+/obj/item/bedsheet/pirate{
dir = 4
},
/obj/machinery/firealarm/directional/west,
diff --git a/_maps/shuttles/whiteship_cere.dmm b/_maps/shuttles/whiteship_cere.dmm
index e6a677d57c3..1f0308690e7 100644
--- a/_maps/shuttles/whiteship_cere.dmm
+++ b/_maps/shuttles/whiteship_cere.dmm
@@ -388,7 +388,7 @@
/area/shuttle/abandoned/cargo)
"oB" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/machinery/light/small/directional/east,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
diff --git a/_maps/shuttles/whiteship_kilo.dmm b/_maps/shuttles/whiteship_kilo.dmm
index 2dc2e1c54d5..cbc214f21d8 100644
--- a/_maps/shuttles/whiteship_kilo.dmm
+++ b/_maps/shuttles/whiteship_kilo.dmm
@@ -1176,7 +1176,7 @@
/obj/structure/bed/pod{
dir = 1
},
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
diff --git a/_maps/shuttles/whiteship_personalshuttle.dmm b/_maps/shuttles/whiteship_personalshuttle.dmm
index e3f432f350b..8e041082bc6 100644
--- a/_maps/shuttles/whiteship_personalshuttle.dmm
+++ b/_maps/shuttles/whiteship_personalshuttle.dmm
@@ -273,7 +273,7 @@
/area/shuttle/abandoned/bridge)
"pS" = (
/obj/machinery/light/small/directional/south,
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/bed/pod{
diff --git a/_maps/templates/hilbertshotel.dmm b/_maps/templates/hilbertshotel.dmm
index 2895d104069..8c425aa9c13 100644
--- a/_maps/templates/hilbertshotel.dmm
+++ b/_maps/templates/hilbertshotel.dmm
@@ -76,7 +76,7 @@
/area/misc/hilbertshotel)
"q" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/turf/open/indestructible/hotelwood,
/area/misc/hilbertshotel)
"r" = (
diff --git a/_maps/templates/hilbertshotellore.dmm b/_maps/templates/hilbertshotellore.dmm
index a9333eaea8b..716fa330de5 100644
--- a/_maps/templates/hilbertshotellore.dmm
+++ b/_maps/templates/hilbertshotellore.dmm
@@ -204,7 +204,7 @@
/area/misc/hilbertshotel)
"aU" = (
/obj/structure/bed,
-/obj/item/bedsheet/random,
+/obj/effect/spawner/random/bedsheet/any,
/obj/effect/decal/cleanable/dirt,
/turf/open/indestructible/hotelwood,
/area/misc/hilbertshotel)
diff --git a/_maps/templates/lazy_templates/wizard_den.dmm b/_maps/templates/lazy_templates/wizard_den.dmm
index 8c2ad8d2153..58e09b40a0a 100644
--- a/_maps/templates/lazy_templates/wizard_den.dmm
+++ b/_maps/templates/lazy_templates/wizard_den.dmm
@@ -229,7 +229,8 @@
"nV" = (
/obj/structure/flora/bush/fullgrass/style_random,
/mob/living/simple_animal/hostile/ooze/gelatinous{
- name = "Jimmy"
+ name = "Jimmy";
+ faction = list("slime", "Wizard")
},
/turf/open/floor/grass,
/area/centcom/wizard_station)
@@ -536,7 +537,8 @@
/area/centcom/wizard_station)
"AW" = (
/mob/living/simple_animal/pet/gondola{
- name = "Jommy"
+ name = "Jommy";
+ faction = list("gondola", "Wizard")
},
/obj/structure/flora/bush/fullgrass/style_random,
/turf/open/floor/grass,
diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm
index edea28b064f..63681684161 100644
--- a/_maps/virtual_domains/beach_bar.dmm
+++ b/_maps/virtual_domains/beach_bar.dmm
@@ -84,34 +84,7 @@
/turf/open/water/beach,
/area/virtual_domain/fullbright)
"db" = (
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/vending_refill/cigarette,
-/obj/item/vending_refill/boozeomat,
-/obj/structure/closet/secure_closet{
- icon_state = "cabinet";
- name = "booze storage";
- req_access = list("bar")
- },
-/obj/item/storage/backpack/duffelbag,
-/obj/item/etherealballdeployer,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/bottle/beer/light,
-/obj/item/reagent_containers/cup/glass/colocup,
-/obj/item/reagent_containers/cup/glass/colocup,
-/obj/item/reagent_containers/cup/glass/colocup,
-/obj/item/reagent_containers/cup/glass/colocup,
-/obj/item/reagent_containers/cup/glass/colocup,
+/obj/structure/closet/secure_closet/bar/lavaland_bartender_booze,
/turf/open/floor/wood,
/area/virtual_domain/fullbright)
"di" = (
@@ -395,19 +368,8 @@
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/virtual_domain/fullbright)
"ug" = (
-/obj/structure/closet/secure_closet{
- icon_state = "cabinet";
- name = "bartender's closet";
- req_access = list("bar")
- },
-/obj/item/clothing/shoes/sandal{
- desc = "A very fashionable pair of flip-flops.";
- name = "flip-flops"
- },
-/obj/item/clothing/neck/beads,
-/obj/item/clothing/glasses/sunglasses/reagent,
-/obj/item/clothing/suit/costume/hawaiian,
/obj/machinery/light/small/directional/east,
+/obj/structure/closet/secure_closet/bar/lavaland_bartender_clothes,
/turf/open/floor/wood,
/area/virtual_domain/fullbright)
"uk" = (
@@ -897,7 +859,7 @@
/turf/open/misc/beach/sand,
/area/virtual_domain/fullbright)
"Nw" = (
-/obj/item/bedsheet/dorms{
+/obj/effect/spawner/random/bedsheet{
dir = 4
},
/obj/structure/bed{
diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm
index 5db01cc36a9..5b681ab7a30 100644
--- a/_maps/virtual_domains/pirates.dmm
+++ b/_maps/virtual_domains/pirates.dmm
@@ -480,14 +480,10 @@
/area/virtual_domain/fullbright)
"AF" = (
/obj/effect/mapping_helpers/burnt_floor,
-/obj/structure/rack{
- icon = 'icons/obj/fluff/general.dmi';
- icon_state = "minibar";
- name = "skeletal minibar"
- },
/obj/item/storage/bag/money/dutchmen{
pixel_y = 13
},
+/obj/structure/rack/skeletal,
/turf/open/floor/wood/parquet,
/area/virtual_domain)
"AP" = (
diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm
index 012ded7eac1..55b5b12b531 100644
--- a/code/__DEFINES/_flags.dm
+++ b/code/__DEFINES/_flags.dm
@@ -133,22 +133,36 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
the atom/checkpass() proc uses them (tables will call movable atom checkpass(PASSTABLE) for example)
*/
//flags for pass_flags
+/// Allows you to pass over tables.
#define PASSTABLE (1<<0)
+/// Allows you to pass over glass(this generally includes anything see-through that's glass-adjacent, ie. windows, windoors, airlocks with glass, etc.)
#define PASSGLASS (1<<1)
+/// Allows you to pass over grilles.
#define PASSGRILLE (1<<2)
+/// Allows you to pass over blob tiles.
#define PASSBLOB (1<<3)
+/// Allows you to pass over mobs.
#define PASSMOB (1<<4)
+/// Allows you to pass over closed turfs, ie. walls.
#define PASSCLOSEDTURF (1<<5)
/// Let thrown things past us. **ONLY MEANINGFUL ON pass_flags_self!**
#define LETPASSTHROW (1<<6)
+/// Allows you to pass over machinery, ie. vending machines, computers, protolathes, etc.
#define PASSMACHINE (1<<7)
+/// Allows you to pass over structures, ie. racks, tables(if you don't already have PASSTABLE), etc.
#define PASSSTRUCTURE (1<<8)
+/// Allows you to pass over plastic flaps, often found at cargo or MULE dropoffs.
#define PASSFLAPS (1<<9)
+/// Allows you to pass over airlocks and mineral doors.
#define PASSDOORS (1<<10)
+/// Allows you to pass over vehicles, ie. mecha, secways, the pimpin' ride, etc.
#define PASSVEHICLE (1<<11)
+/// Allows you to pass over dense items.
#define PASSITEM (1<<12)
/// Do not intercept click attempts during Adjacent() checks. See [turf/proc/ClickCross]. **ONLY MEANINGFUL ON pass_flags_self!**
#define LETPASSCLICKS (1<<13)
+/// Allows you to pass over windows and window-adjacent stuff, like windows and windoors. Does not include airlocks with glass in them.
+#define PASSWINDOW (1<<14)
//Movement Types
#define GROUND (1<<0)
diff --git a/code/__DEFINES/ai/ai_blackboard.dm b/code/__DEFINES/ai/ai_blackboard.dm
index daa5d4285f9..6dc90ea4d64 100644
--- a/code/__DEFINES/ai/ai_blackboard.dm
+++ b/code/__DEFINES/ai/ai_blackboard.dm
@@ -141,5 +141,8 @@
/// The next time at which this mob can call for reinforcements
#define BB_BASIC_MOB_REINFORCEMENTS_COOLDOWN "BB_basic_mob_reinforcements_cooldown"
+/// the direction we started when executing stare at things
+#define BB_STARTING_DIRECTION "BB_startdir"
+
///Text we display when we befriend someone
#define BB_FRIENDLY_MESSAGE "friendly_message"
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index d750a0a3631..888164e5256 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -213,6 +213,9 @@ GLOBAL_LIST_INIT(ai_employers, list(
/// Checks if the given mob is a blood cultist
#define IS_CULTIST(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/cult))
+/// Checks if the given mob is a changeling
+#define IS_CHANGELING(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/changeling))
+
/// Checks if the given mob is a nuclear operative
#define IS_NUKE_OP(mob) (mob?.mind?.has_antag_datum(/datum/antagonist/nukeop))
diff --git a/code/__DEFINES/atmospherics/atmos_machinery.dm b/code/__DEFINES/atmospherics/atmos_machinery.dm
index eb0f853ee94..ef1d06f7eee 100644
--- a/code/__DEFINES/atmospherics/atmos_machinery.dm
+++ b/code/__DEFINES/atmospherics/atmos_machinery.dm
@@ -49,6 +49,13 @@
/// Fire alarm has all components but isn't completed
#define FIRE_ALARM_BUILD_SECURED 2
+// Fault levels for air alarm display
+/// Area faults clear
+#define AREA_FAULT_NONE 0
+/// Fault triggered by manual intervention (ie: fire alarm pull)
+#define AREA_FAULT_MANUAL 1
+/// Fault triggered automatically (ie: firedoor detection)
+#define AREA_FAULT_AUTOMATIC 2
// threshold_type values for [/datum/tlv/proc/set_value] and [/datum/tlv/proc/reset_value]
/// [/datum/tlv/var/warning_min]
diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm
index c7da3473fa3..bcb63c15382 100644
--- a/code/__DEFINES/colors.dm
+++ b/code/__DEFINES/colors.dm
@@ -61,6 +61,7 @@
#define COLOR_VERY_SOFT_YELLOW "#FAE48E"
#define COLOR_GOLD "#FFD700"
#define COLOR_ETHIOPIA_YELLOW "#FCDD09"
+#define COLOR_LIGHT_YELLOW "#FFFEE0"
#define COLOR_OLIVE "#808000"
#define COLOR_ASSISTANT_OLIVE "#828163"
diff --git a/code/__DEFINES/dcs/signals/signals_camera.dm b/code/__DEFINES/dcs/signals/signals_camera.dm
index 6ec142f54fa..92e9b94f35b 100644
--- a/code/__DEFINES/dcs/signals/signals_camera.dm
+++ b/code/__DEFINES/dcs/signals/signals_camera.dm
@@ -1,2 +1,4 @@
-///Signal sent when a /datum/trackable found a target: (datum/trackable/source, mob/living/target)
+///Signal sent when a /datum/trackable found a target: (mob/living/target)
#define COMSIG_TRACKABLE_TRACKING_TARGET "comsig_trackable_tracking_target"
+///Signal sent when the mob a /datum/trackable is actively following changes glide size: mob/living/target, new_glide_size)
+#define COMSIG_TRACKABLE_GLIDE_CHANGED "comsig_trackable_glide_changed"
diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm
index a40e731fc7b..c70cdfde1a3 100644
--- a/code/__DEFINES/dcs/signals/signals_fish.dm
+++ b/code/__DEFINES/dcs/signals/signals_fish.dm
@@ -28,6 +28,8 @@
#define COMSIG_FISHING_ROD_CAUGHT_FISH "fishing_rod_caught_fish"
/// From /obj/item/fishing_rod/proc/hook_item(): (reward, user)
#define COMSIG_FISHING_ROD_HOOKED_ITEM "fishing_rod_hooked_item"
+/// From /datum/fish_source/proc/use_slot(), sent to the slotted item: (obj/item/fishing_rod/rod)
+#define COMSIG_FISHING_EQUIPMENT_SLOTTED "fishing_equipment_slotted"
/// Sent when the challenge is to be interrupted: (reason)
#define COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE "fishing_spot_interrupt_challenge"
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm
index 2b113f853da..533ad2e1ae8 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm
@@ -12,8 +12,6 @@
#define COMSIG_ORGAN_BEING_REPLACED "organ_being_replaced"
/// Called when an organ gets surgically removed (mob/living/user, mob/living/carbon/old_owner, target_zone, obj/item/tool)
#define COMSIG_ORGAN_SURGICALLY_REMOVED "organ_surgically_removed"
-/// Called when using the *wag emote
-#define COMSIG_ORGAN_WAG_TAIL "wag_tail"
///from base of mob/update_transform()
#define COMSIG_LIVING_POST_UPDATE_TRANSFORM "living_post_update_transform"
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
index 6b63c1aaa9f..cd1c636c283 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm
@@ -240,3 +240,9 @@
#define COMPONENT_BLOCK_MOB_CHANGE (1<<0)
/// from /mob/proc/change_mob_type_unchecked() : ()
#define COMSIG_MOB_CHANGED_TYPE "mob_changed_type"
+
+/// from /mob/proc/slip(): (knockdown_amonut, obj/slipped_on, lube_flags [mobs.dm], paralyze, force_drop)
+#define COMSIG_MOB_SLIPPED "mob_slipped"
+
+/// from /mob/proc/key_down(): (key, client/client, full_key)
+#define COMSIG_MOB_KEYDOWN "mob_key_down"
diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm
index a73d59a234c..38d2ae92d9d 100644
--- a/code/__DEFINES/dcs/signals/signals_reagent.dm
+++ b/code/__DEFINES/dcs/signals/signals_reagent.dm
@@ -55,3 +55,7 @@
#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf"
///from base of [/datum/component/personal_crafting/proc/del_reqs]: ()
#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping"
+/// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to)
+#define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to"
+/// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from)
+#define COMSIG_REAGENTS_CUP_TRANSFER_FROM "reagents_cup_transfer_from"
diff --git a/code/__DEFINES/dcs/signals/uplink.dm b/code/__DEFINES/dcs/signals/uplink.dm
new file mode 100644
index 00000000000..1daa4f31270
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/uplink.dm
@@ -0,0 +1,2 @@
+///Signal sent to a mob when they purchase an item from their uplink: (datum/uplink_handler/uplink_handler_source, atom/spawned_item, mob/user)
+#define COMSIG_ON_UPLINK_PURCHASE "comsig_on_uplink_purchase"
diff --git a/code/__DEFINES/fish.dm b/code/__DEFINES/fish.dm
index 62954a649e2..24c3c963598 100644
--- a/code/__DEFINES/fish.dm
+++ b/code/__DEFINES/fish.dm
@@ -3,6 +3,7 @@
// Baseline fishing difficulty levels
#define FISHING_DEFAULT_DIFFICULTY 15
+#define FISHING_EASY_DIFFICULTY 10
/// Difficulty modifier when bait is fish's favorite
#define FAV_BAIT_DIFFICULTY_MOD -5
@@ -52,6 +53,8 @@
#define FISHING_LINE_BOUNCY (1 << 2)
/// The sorta opposite of FISHING_LINE_BOUNCY. It makes it slower to gain completion and faster to lose it.
#define FISHING_LINE_STIFF (1 << 3)
+///Skip the biting phase and go straight to the fishing phase.
+#define FISHING_LINE_AUTOREEL (1 << 4)
///Keeps the bait from falling from gravity, instead allowing the player to move the bait down with right click.
#define FISHING_MINIGAME_RULE_BIDIRECTIONAL (1 << 0)
@@ -65,6 +68,8 @@
#define FISHING_MINIGAME_RULE_ANTIGRAV (1 << 4)
///Will filp the minigame hud for the duration of the effect
#define FISHING_MINIGAME_RULE_FLIP (1 << 5)
+///Skip the biting phase and go straight to the minigame, avoiding the penalty for having slow reflexes.
+#define FISHING_MINIGAME_AUTOREEL (1 << 6)
///all the effects that are active and will last for a few seconds before triggering a cooldown
#define FISHING_MINIGAME_ACTIVE_EFFECTS (FISHING_MINIGAME_RULE_ANTIGRAV|FISHING_MINIGAME_RULE_FLIP)
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index 4f741b58e4e..23c7428625d 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -210,7 +210,6 @@ GLOBAL_LIST_INIT(detective_vest_allowed, list(
/obj/item/storage/belt/holster/nukie,
/obj/item/storage/belt/holster/energy,
/obj/item/gun/ballistic/shotgun/automatic/combat/compact,
- /obj/item/gun/microfusion, //NOVA EDIT ADDITION
))
GLOBAL_LIST_INIT(security_vest_allowed, list(
@@ -228,7 +227,6 @@ GLOBAL_LIST_INIT(security_vest_allowed, list(
/obj/item/storage/belt/holster/energy,
/obj/item/gun/ballistic/shotgun/automatic/combat/compact,
/obj/item/pen/red/security,
- /obj/item/gun/microfusion, //NOVA EDIT ADDITION
))
GLOBAL_LIST_INIT(security_wintercoat_allowed, list(
@@ -241,7 +239,6 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, list(
/obj/item/storage/belt/holster/nukie,
/obj/item/storage/belt/holster/energy,
/obj/item/gun/ballistic/shotgun/automatic/combat/compact,
- /obj/item/gun/microfusion, //NOVA EDIT ADDITION
))
//Allowed list for all chaplain suits (except the honkmother robe)
diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm
index 3316aa6afe2..ca03017686f 100644
--- a/code/__DEFINES/lighting.dm
+++ b/code/__DEFINES/lighting.dm
@@ -1,17 +1,17 @@
/// Object doesn't use any of the light systems. Should be changed to add a light source to the object.
#define NO_LIGHT_SUPPORT 0
/// Light made with the lighting datums, applying a matrix.
-#define STATIC_LIGHT 1
+#define COMPLEX_LIGHT 1
/// Light made by masking the lighting darkness plane.
-#define MOVABLE_LIGHT 2
+#define OVERLAY_LIGHT 2
/// Light made by masking the lighting darkness plane, and is directional.
-#define MOVABLE_LIGHT_DIRECTIONAL 3
+#define OVERLAY_LIGHT_DIRECTIONAL 3
///Light made by masking the lighting darkness plane, and is a directionally focused beam.
-#define MOVABLE_LIGHT_BEAM 4
+#define OVERLAY_LIGHT_BEAM 4
/// Nonesensical value for light color, used for null checks.
#define NONSENSICAL_VALUE -99999
-/// Is a movable light source attached to another movable (its loc), meaning that the lighting component should go one level deeper.
+/// Is our overlay light source attached to another movable (its loc), meaning that the lighting component should go one level deeper.
#define LIGHT_ATTACHED (1<<0)
/// Freezes a light in its current state, blocking any attempts at modification
#define LIGHT_FROZEN (1<<1)
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 4c2eea59834..87450bf333e 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -504,9 +504,6 @@
#define ROBOTIC_BRUTE_EXAMINE_TEXT "denting"
#define ROBOTIC_BURN_EXAMINE_TEXT "charring"
-// If a mob has a higher threshold than this, the icon shown will be increased to the big fire icon.
-#define MOB_BIG_FIRE_STACK_THRESHOLD 3
-
#define GRAB_PIXEL_SHIFT_PASSIVE 6
#define GRAB_PIXEL_SHIFT_AGGRESSIVE 12
#define GRAB_PIXEL_SHIFT_NECK 16
@@ -785,8 +782,8 @@ GLOBAL_LIST_INIT(human_heights_to_offsets, list(
#define WOUND_LAYER 3
/// Blood cult ascended halo layer, because there's currently no better solution for adding/removing
#define HALO_LAYER 2
-/// Fire layer when you're on fire
-#define FIRE_LAYER 1
+/// The highest most layer for mob overlays. Unused
+#define HIGHEST_LAYER 1
#define UPPER_BODY "upper body"
#define LOWER_BODY "lower body"
@@ -827,7 +824,7 @@ GLOBAL_LIST_INIT(layers_to_offset, list(
// BODY_BEHIND_LAYER (external organs like wings)
// BODY_FRONT_LAYER (external organs like wings)
// DAMAGE_LAYER (full body)
- // FIRE_LAYER (full body)
+ // HIGHEST_LAYER (full body)
// UNIFORM_LAYER (full body)
// WOUND_LAYER (full body)
))
diff --git a/code/__DEFINES/random_spawner.dm b/code/__DEFINES/random_spawner.dm
new file mode 100644
index 00000000000..2a012e79048
--- /dev/null
+++ b/code/__DEFINES/random_spawner.dm
@@ -0,0 +1,3 @@
+///Used by bedsheets spawners to tell if it's a single or double bedsheet.
+#define BEDSHEET_SINGLE "single"
+#define BEDSHEET_DOUBLE "double"
diff --git a/code/__DEFINES/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm
index 0ae1c24b0e3..6f4bc3cd89d 100644
--- a/code/__DEFINES/research/anomalies.dm
+++ b/code/__DEFINES/research/anomalies.dm
@@ -7,6 +7,7 @@
#define MAX_CORES_HALLUCINATION 8
#define MAX_CORES_BIOSCRAMBLER 8
#define MAX_CORES_DIMENSIONAL 8
+#define MAX_CORES_ECTOPLASMIC 8
///Defines for the different types of explosion a flux anomaly can have
#define FLUX_NO_EXPLOSION 0
diff --git a/code/__DEFINES/research/research_categories.dm b/code/__DEFINES/research/research_categories.dm
index 65de3edca53..3f6428eb731 100644
--- a/code/__DEFINES/research/research_categories.dm
+++ b/code/__DEFINES/research/research_categories.dm
@@ -187,6 +187,7 @@
#define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_TOOLS "/Cybernetic Implanting Tools"
#define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_UTILITY "/Cybernetic Utility Implants"
#define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_MISC "/Cybernetic Miscellaneous Implants"
+#define RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_SECURITY "/Cybernetic Security Implants"
#define RND_SUBCATEGORY_CYBERNETICS_ADVANCED_LIMBS "/Cybernetic Advanced Limbs"
// Limb Categories
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 768f1faa514..4e901c4ba2c 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -31,6 +31,11 @@
/// If the incapacitated status effect will ignore a mob being agressively grabbed
#define IGNORE_GRAB (1<<2)
+/// Maxamounts of fire stacks a mob can get
+#define MAX_FIRE_STACKS 20
+/// If a mob has a higher threshold than this, the icon shown will be increased to the big fire icon.
+#define MOB_BIG_FIRE_STACK_THRESHOLD 3
+
// Grouped effect sources, see also code/__DEFINES/traits.dm
#define STASIS_MACHINE_EFFECT "stasis_machine"
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index bdb16c191bc..88d4a6a50f2 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -317,6 +317,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Is a medbot healing you
#define TRAIT_MEDIBOTCOMINGTHROUGH "medbot"
#define TRAIT_PASSTABLE "passtable"
+/// Lets you fly through windows
+#define TRAIT_PASSWINDOW "passwindow"
/// Makes you immune to flashes
#define TRAIT_NOFLASH "noflash"
/// prevents xeno huggies implanting skeletons
@@ -341,6 +343,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_DEL_ON_SPACE_DUMP "del_on_hyperspace_leave"
/// We can walk up or around cliffs, or at least we don't fall off of it
#define TRAIT_CLIFF_WALKER "cliff_walker"
+/// This means the user is currently holding/wearing a "tactical camouflage" item (like a potted plant).
+#define TRAIT_TACTICALLY_CAMOUFLAGED "tactically_camouflaged"
/// Gets double arcade prizes
#define TRAIT_GAMERGOD "gamer-god"
#define TRAIT_GIANT "giant"
@@ -353,10 +357,13 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_TUMOR_SUPPRESSED "brain_tumor_suppressed"
/// Prevents hallucinations from the hallucination brain trauma (RDS)
#define TRAIT_RDS_SUPPRESSED "rds_suppressed"
-/// mobs that have this trait cannot be extinguished
-#define TRAIT_PERMANENTLY_ONFIRE "permanently_onfire"
+/// Mobs that have this trait cannot be extinguished
+#define TRAIT_NO_EXTINGUISH "no_extinguish"
/// Indicates if the mob is currently speaking with sign language
#define TRAIT_SIGN_LANG "sign_language"
+/// Trait given to mobs to indicate that they can catch papers thrown at them midair without trying,
+/// and make syndicate airplanes when folding paper up.
+#define TRAIT_PAPER_MASTER "paper_master"
/// This mob is able to use sign language over the radio.
#define TRAIT_CAN_SIGN_ON_COMMS "can_sign_on_comms"
/// nobody can use martial arts on this mob
@@ -601,6 +608,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_LAVA_STOPPED "lava_stopped"
///Chasms will be safe to cross while they've this trait.
#define TRAIT_CHASM_STOPPED "chasm_stopped"
+///Chasms will be safe to cross if there is something with this trait on it
+#define TRAIT_CHASM_STOPPER "chasm_stopper"
///The effects of the immerse element will be halted while this trait is present.
#define TRAIT_IMMERSE_STOPPED "immerse_stopped"
/// The effects of hyperspace drift are blocked when the tile has this trait
@@ -630,6 +639,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// Used by the honkspam element to avoid spamming the sound. Amusing considering its name.
#define TRAIT_HONKSPAMMING "trait_honkspamming"
+/// Required by the waddling element since there are multiple sources of it.
+#define TRAIT_WADDLING "trait_waddling"
///Used for managing KEEP_TOGETHER in [/atom/var/appearance_flags]
#define TRAIT_KEEP_TOGETHER "keep-together"
@@ -929,6 +940,11 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
/// This atom is currently spinning.
#define TRAIT_SPINNING "spinning"
+/// This limb can't be torn open anymore
+#define TRAIT_IMMUNE_TO_CRANIAL_FISSURE "immune_to_cranial_fissure"
+/// Trait given if the mob has a cranial fissure.
+#define TRAIT_HAS_CRANIAL_FISSURE "has_cranial_fissure"
+
/// Denotes that this id card was given via the job outfit, aka the first ID this player got.
#define TRAIT_JOB_FIRST_ID_CARD "job_first_id_card"
/// ID cards with this trait will attempt to forcibly occupy the front-facing ID card slot in wallets.
diff --git a/code/__DEFINES/traits/sources.dm b/code/__DEFINES/traits/sources.dm
index f9cdbe4326d..dd237bf54b7 100644
--- a/code/__DEFINES/traits/sources.dm
+++ b/code/__DEFINES/traits/sources.dm
@@ -41,6 +41,9 @@
/// Trait from light debugging
#define LIGHT_DEBUG_TRAIT "light-debug"
+/// Trait given by an Action datum
+#define ACTION_TRAIT "action"
+
#define CLOTHING_TRAIT "clothing"
#define HELMET_TRAIT "helmet"
/// inherited from the mask
@@ -180,6 +183,8 @@
#define TRAIT_SUBTREE_REQUIRED_OPERATIONAL_DATUM "element-required"
/// Trait applied by MODsuits.
#define MOD_TRAIT "mod"
+/// Trait applied to tram passengers
+#define TRAM_PASSENGER_TRAIT "tram-passenger"
/// Trait granted by the berserker hood.
#define BERSERK_TRAIT "berserk_trait"
@@ -279,3 +284,6 @@
#define ORGAN_INSIDE_BODY_TRAIT "organ_inside_body"
/// Trait when something was labelled by a pen.
#define PEN_LABEL_TRAIT "pen_label"
+
+/// Trait when a drink was renamed by a shaker
+#define SHAKER_LABEL_TRAIT "shaker_trait"
diff --git a/code/__DEFINES/wounds.dm b/code/__DEFINES/wounds.dm
index 224b2c973cb..7d02aa7f3eb 100644
--- a/code/__DEFINES/wounds.dm
+++ b/code/__DEFINES/wounds.dm
@@ -123,6 +123,8 @@ GLOBAL_LIST_INIT(bio_state_anatomy, list(
#define WOUND_SERIES_FLESH_PUNCTURE_BLEED "wound_series_flesh_puncture_bleed"
/// Generic loss wounds. See loss.dm
#define WOUND_SERIES_LOSS_BASIC "wound_series_loss_basic"
+/// Cranial fissure wound.
+#define WOUND_SERIES_CRANIAL_FISSURE "wound_series_cranial_fissure"
// NOVA EDIT ADDITION BEGIN - MUSCLE AND SYNTH WOUNDS
// Have to put it here so I can use it in the global list of wound series
diff --git a/code/__DEFINES/~nova_defines/colony_fabricator_misc.dm b/code/__DEFINES/~nova_defines/colony_fabricator_misc.dm
index 0ebd9a14240..5e741ddfa69 100644
--- a/code/__DEFINES/~nova_defines/colony_fabricator_misc.dm
+++ b/code/__DEFINES/~nova_defines/colony_fabricator_misc.dm
@@ -2,8 +2,6 @@
#define RND_CATEGORY_AKHTER_CLOTHING "Clothing"
/// Category for equipment like belts and bags in the organics printer
#define RND_CATEGORY_AKHTER_EQUIPMENT "Equipment"
-/// Category for medical items in the organics printer
-#define RND_CATEGORY_AKHTER_MEDICAL "Emergency Medical"
/// Category for resources made by the organics printer
#define RND_CATEGORY_AKHTER_RESOURCES "Resources"
@@ -18,6 +16,11 @@
/// Category for the seeds the organics printer can make
#define RND_CATEGORY_AKHTER_SEEDS "Synthesized Seeds"
+/// Medical items in the deforest medstation
+#define RND_CATEGORY_DEFOREST_MEDICAL "Emergency Medical"
+/// Blood and blood bags
+#define RND_CATEGORY_DEFOREST_BLOOD "Synthesized Blood"
+
/// The items the frontier clothing can hold
GLOBAL_LIST_INIT(colonist_suit_allowed, list(
/obj/item/ammo_box,
diff --git a/code/__DEFINES/~nova_defines/manufacturer_strings.dm b/code/__DEFINES/~nova_defines/manufacturer_strings.dm
index b9cdddc78b0..81819d4f0ef 100644
--- a/code/__DEFINES/~nova_defines/manufacturer_strings.dm
+++ b/code/__DEFINES/~nova_defines/manufacturer_strings.dm
@@ -8,14 +8,17 @@
#define COMPANY_CARWO "It has a small [span_cyan("four pointed star")] alongside [span_cyan("Carwo Defense Systems")] etched into it."
#define COMPANY_TRAPPISTE "It has a small [span_red("pattern of five squares")] alongside [span_red("Trappiste Fabriek")] etched into it."
+#define COMPANY_CYBERSUN "It has a [span_red("red circle")] broken by a hexagonal flower alongside [span_red("Cybersun Industries")] in Konjin etched into it."
#define COMPANY_SCARBOROUGH "It has [span_orange("Scarborough Arms")] stamped onto it."
#define COMPANY_INTERDYNE "It has [span_cyan("Interdyne Pharmaceuticals")] stamped onto it."
#define COMPANY_ALLSTAR "It has [span_red("Allstar Lasers Inc.")] stamped onto it."
#define COMPANY_MICRON "It has [span_cyan("Micron Control Sys.")] cut into it."
+#define COMPANY_NAKAMURA "It has [span_orange("Nakamura Engineering")] embossed onto it."
+#define COMPANY_BLACKSTEEL "It bears the [span_grey("crossed sword and hammer")] crafter's mark of the [span_grey("Jarnsmiour Blacksteel Foundation")] upon its fore."
+
#define COMPANY_SZOT "It has a small [span_engradio("three point crown")] alongside [span_engradio("Szot Dynamica")] cut into it."
-#define COMPANY_TKACH "It has [span_robot("Tkach Design Bureau")] stamped onto it."
#define COMPANY_SAKHNO "It has [span_green("Sakhno Concern")] stamped onto it."
#define COMPANY_XHIHAO "It has [span_purple("Xhihao Light Arms")] etched into it."
diff --git a/code/__HELPERS/colors.dm b/code/__HELPERS/colors.dm
index 4742118bebe..9f17d4c0028 100644
--- a/code/__HELPERS/colors.dm
+++ b/code/__HELPERS/colors.dm
@@ -47,24 +47,24 @@
var/list/color = rgb2num(HTMLstring)
return rgb(255 - color[1], 255 - color[2], 255 - color[3])
-///Flash a color on the client
+///Flash a color on the passed mob
/proc/flash_color(mob_or_client, flash_color="#960000", flash_time=20)
- var/client/flashed_client
+ var/mob/flashed_mob
if(ismob(mob_or_client))
- var/mob/client_mob = mob_or_client
- if(client_mob.client)
- flashed_client = client_mob.client
- else
- return
+ flashed_mob = mob_or_client
else if(istype(mob_or_client, /client))
- flashed_client = mob_or_client
+ var/client/flashed_client = mob_or_client
+ flashed_mob = flashed_client.mob
- if(!istype(flashed_client))
+ if(!istype(flashed_mob))
return
- var/animate_color = flashed_client.color
- flashed_client.color = flash_color
- animate(flashed_client, color = animate_color, time = flash_time)
+ var/datum/client_colour/temp/temp_color = new(flashed_mob)
+ temp_color.colour = flash_color
+ temp_color.fade_in = flash_time * 0.25
+ temp_color.fade_out = flash_time * 0.25
+ QDEL_IN(temp_color, (flash_time * 0.5) + 1)
+ flashed_mob.add_client_colour(temp_color)
/// Blends together two colors (passed as 3 or 4 length lists) using the screen blend mode
/// Much like multiply, screen effects the brightness of the resulting color
@@ -103,4 +103,3 @@
#define RANDOM_COLOUR (rgb(rand(0,255),rand(0,255),rand(0,255)))
-
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 1e447ac1470..c54c052d05d 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -27,7 +27,6 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, GLOB.wings_open_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/spines, GLOB.spines_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/spines_animated, GLOB.animated_spines_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/tail_spines, GLOB.tail_spines_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
diff --git a/code/__HELPERS/memory_helpers.dm b/code/__HELPERS/memory_helpers.dm
index bc916b2d20f..807610af864 100644
--- a/code/__HELPERS/memory_helpers.dm
+++ b/code/__HELPERS/memory_helpers.dm
@@ -113,6 +113,11 @@
/datum/mind/proc/wipe_memory()
QDEL_LIST_ASSOC_VAL(memories)
+/// Helder to wipe the passed memory type ONLY from our list of memories
+/datum/mind/proc/wipe_memory_type(memory_type)
+ qdel(memories[memory_type])
+ memories -= memory_type
+
/// Helper to create quick copies of all of our memories
/// Quick copies aren't full copies - just basic copies containing necessities.
/// They cannot be used in stories.
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index c35c591bc7c..9f4fea5ed11 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -501,6 +501,19 @@ GLOBAL_LIST_EMPTY(species_list)
if(!HAS_TRAIT(L, TRAIT_PASSTABLE))
L.pass_flags &= ~PASSTABLE
+/proc/passwindow_on(target, source)
+ var/mob/living/target_mob = target
+ if (!HAS_TRAIT(target_mob, TRAIT_PASSWINDOW) && target_mob.pass_flags & PASSWINDOW)
+ ADD_TRAIT(target_mob, TRAIT_PASSWINDOW, INNATE_TRAIT)
+ ADD_TRAIT(target_mob, TRAIT_PASSWINDOW, source)
+ target_mob.pass_flags |= PASSWINDOW
+
+/proc/passwindow_off(target, source)
+ var/mob/living/target_mob = target
+ REMOVE_TRAIT(target_mob, TRAIT_PASSWINDOW, source)
+ if(!HAS_TRAIT(target_mob, TRAIT_PASSWINDOW))
+ target_mob.pass_flags &= ~PASSWINDOW
+
/proc/dance_rotate(atom/movable/AM, datum/callback/callperrotate, set_original_dir=FALSE)
set waitfor = FALSE
var/originaldir = AM.dir
diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm
index a099199cce0..df84c1cdcf4 100644
--- a/code/__HELPERS/pronouns.dm
+++ b/code/__HELPERS/pronouns.dm
@@ -386,3 +386,33 @@
temp_gender = gender
if(temp_gender != PLURAL)
return "es"
+
+/datum/mind/p_they(temp_gender)
+ return current?.p_they(temp_gender) || ..()
+
+/datum/mind/p_their(temp_gender)
+ return current?.p_their(temp_gender) || ..()
+
+/datum/mind/p_theirs(temp_gender)
+ return current?.p_theirs(temp_gender) || ..()
+
+/datum/mind/p_them(capitalized, temp_gender)
+ return current?.p_them(capitalized, temp_gender) || ..()
+
+/datum/mind/p_have(temp_gender)
+ return current?.p_have(temp_gender) || ..()
+
+/datum/mind/p_are(temp_gender)
+ return current?.p_are(temp_gender) || ..()
+
+/datum/mind/p_were(temp_gender)
+ return current?.p_were(temp_gender) || ..()
+
+/datum/mind/p_do(temp_gender)
+ return current?.p_do(temp_gender) || ..()
+
+/datum/mind/p_s(temp_gender)
+ return current?.p_s(temp_gender) || ..()
+
+/datum/mind/p_es(temp_gender)
+ return current?.p_es(temp_gender) || ..()
diff --git a/code/__HELPERS/~nova_helpers/is_helpers.dm b/code/__HELPERS/~nova_helpers/is_helpers.dm
index 6c46b9295b1..75aa3ca1001 100644
--- a/code/__HELPERS/~nova_helpers/is_helpers.dm
+++ b/code/__HELPERS/~nova_helpers/is_helpers.dm
@@ -17,6 +17,7 @@
#define ishemophage(A) (is_species(A, /datum/species/hemophage))
#define issnail(A) (is_species(A, /datum/species/snail))
#define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent))
+#define isprimitivedemihuman(A) (is_species(A, /datum/species/human/felinid/primitive))
//Antags
#define ishorrorling(A) (istype(A, /mob/living/simple_animal/hostile/true_changeling))
#define iscorticalborer(A) (istype(A, /mob/living/basic/cortical_borer))
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 6c5f013a379..ba2177ef64c 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -306,6 +306,7 @@ DEFINE_BITFIELD(pass_flags, list(
"PASSGRILLE" = PASSGRILLE,
"PASSMOB" = PASSMOB,
"PASSTABLE" = PASSTABLE,
+ "PASSWINDOW" = PASSWINDOW,
))
DEFINE_BITFIELD(resistance_flags, list(
diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm
index 893d5de66ce..8a1493e383d 100644
--- a/code/_globalvars/game_modes.dm
+++ b/code/_globalvars/game_modes.dm
@@ -7,3 +7,5 @@ GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report
/// We want reality_smash_tracker to exist only once and be accessible from anywhere.
GLOBAL_DATUM_INIT(reality_smash_track, /datum/reality_smash_tracker, new)
+
+GLOBAL_DATUM(deathmatch_game, /datum/deathmatch_controller) // Deathmatch Minigame controller
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index a26ff1752f2..d6ec01e5912 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -28,7 +28,6 @@ GLOBAL_LIST_EMPTY(frills_list)
GLOBAL_LIST_EMPTY(spines_list)
GLOBAL_LIST_EMPTY(tail_spines_list)
GLOBAL_LIST_EMPTY(legs_list)
-GLOBAL_LIST_EMPTY(animated_spines_list)
//Mutant Human bits
GLOBAL_LIST_EMPTY(tails_list_human)
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index 3ff0dbfd8e8..3d1087dcd6d 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -64,7 +64,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_UNIQUE_IMMERSE" = TRAIT_UNIQUE_IMMERSE,
"TRAIT_VOIDSTORM_IMMUNE" = TRAIT_VOIDSTORM_IMMUNE,
"TRAIT_WAS_RENAMED" = TRAIT_WAS_RENAMED,
+ "TRAIT_WADDLING" = TRAIT_WADDLING,
"TRAIT_WEATHER_IMMUNE" = TRAIT_WEATHER_IMMUNE,
+ "TRAIT_CHASM_STOPPER" = TRAIT_CHASM_STOPPER,
),
/datum/controller/subsystem/economy = list(
"TRAIT_MARKET_CRASHING" = TRAIT_MARKET_CRASHING,
@@ -110,17 +112,18 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_ADVANCEDTOOLUSER" = TRAIT_ADVANCEDTOOLUSER,
"TRAIT_AGENDER" = TRAIT_AGENDER,
"TRAIT_AGEUSIA" = TRAIT_AGEUSIA,
- "TRAIT_AI_BAGATTACK" = TRAIT_AI_BAGATTACK,
"TRAIT_AIRLOCK_SHOCKIMMUNE" = TRAIT_AIRLOCK_SHOCKIMMUNE,
+ "TRAIT_AI_BAGATTACK" = TRAIT_AI_BAGATTACK,
"TRAIT_ALCOHOL_TOLERANCE" = TRAIT_ALCOHOL_TOLERANCE,
- "TRAIT_ALLOW_HERETIC_CASTING" = TRAIT_ALLOW_HERETIC_CASTING,
"TRAIT_ALLOWED_HONORBOUND_ATTACK" = TRAIT_ALLOWED_HONORBOUND_ATTACK,
+ "TRAIT_ALLOW_HERETIC_CASTING" = TRAIT_ALLOW_HERETIC_CASTING,
"TRAIT_ALWAYS_NO_ACCESS" = TRAIT_ALWAYS_NO_ACCESS,
+ "TRAIT_ALWAYS_WANTED" = TRAIT_ALWAYS_WANTED,
"TRAIT_ANGELIC" = TRAIT_ANGELIC,
"TRAIT_ANTENNAE" = TRAIT_ANTENNAE,
"TRAIT_ANTICONVULSANT" = TRAIT_ANTICONVULSANT,
- "TRAIT_ANTIMAGIC_NO_SELFBLOCK" = TRAIT_ANTIMAGIC_NO_SELFBLOCK,
"TRAIT_ANTIMAGIC" = TRAIT_ANTIMAGIC,
+ "TRAIT_ANTIMAGIC_NO_SELFBLOCK" = TRAIT_ANTIMAGIC_NO_SELFBLOCK,
"TRAIT_ANXIOUS" = TRAIT_ANXIOUS,
"TRAIT_BADDNA" = TRAIT_BADDNA,
"TRAIT_BADTOUCH" = TRAIT_BADTOUCH,
@@ -128,37 +131,36 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_BATON_RESISTANCE" = TRAIT_BATON_RESISTANCE,
"TRAIT_BEING_BLADE_SHIELDED" = TRAIT_BEING_BLADE_SHIELDED,
"TRAIT_BLOB_ALLY" = TRAIT_BLOB_ALLY,
- "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS,
- "TRAIT_BLOOD_DEFICIENCY" = TRAIT_BLOOD_DEFICIENCY,
"TRAIT_BLOODSHOT_EYES" = TRAIT_BLOODSHOT_EYES,
"TRAIT_BLOODY_MESS" = TRAIT_BLOODY_MESS,
+ "TRAIT_BLOOD_CLANS" = TRAIT_BLOOD_CLANS,
+ "TRAIT_BLOOD_DEFICIENCY" = TRAIT_BLOOD_DEFICIENCY,
"TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE,
"TRAIT_BONSAI" = TRAIT_BONSAI,
"TRAIT_BOOZE_SLIDER" = TRAIT_BOOZE_SLIDER,
"TRAIT_BRAINWASHING" = TRAIT_BRAINWASHING,
"TRAIT_BYPASS_EARLY_IRRADIATED_CHECK" = TRAIT_BYPASS_EARLY_IRRADIATED_CHECK,
"TRAIT_BYPASS_MEASURES" = TRAIT_BYPASS_MEASURES,
- "TRAIT_CAN_HOLD_ITEMS" = TRAIT_CAN_HOLD_ITEMS,
- "TRAIT_CAN_SIGN_ON_COMMS" = TRAIT_CAN_SIGN_ON_COMMS,
- "TRAIT_CAN_STRIP" = TRAIT_CAN_STRIP,
- "TRAIT_CAN_USE_NUKE" = TRAIT_CAN_USE_NUKE,
"TRAIT_CANNOT_BE_UNBUCKLED" = TRAIT_CANNOT_BE_UNBUCKLED,
"TRAIT_CANNOT_CRYSTALIZE" = TRAIT_CANNOT_CRYSTALIZE,
"TRAIT_CANNOT_OPEN_PRESENTS" = TRAIT_CANNOT_OPEN_PRESENTS,
"TRAIT_CANT_RIDE" = TRAIT_CANT_RIDE,
+ "TRAIT_CAN_HOLD_ITEMS" = TRAIT_CAN_HOLD_ITEMS,
+ "TRAIT_CAN_SIGN_ON_COMMS" = TRAIT_CAN_SIGN_ON_COMMS,
+ "TRAIT_CAN_STRIP" = TRAIT_CAN_STRIP,
+ "TRAIT_CAN_USE_NUKE" = TRAIT_CAN_USE_NUKE,
"TRAIT_CATLIKE_GRACE" = TRAIT_CATLIKE_GRACE,
"TRAIT_CHANGELING_HIVEMIND_MUTE" = TRAIT_CHANGELING_HIVEMIND_MUTE,
"TRAIT_CHASM_DESTROYED" = TRAIT_CHASM_DESTROYED,
"TRAIT_CHEF_KISS" = TRAIT_CHEF_KISS,
- "TRAIT_CHUNKYFINGERS_IGNORE_BATON" = TRAIT_CHUNKYFINGERS_IGNORE_BATON,
"TRAIT_CHUNKYFINGERS" = TRAIT_CHUNKYFINGERS,
+ "TRAIT_CHUNKYFINGERS_IGNORE_BATON" = TRAIT_CHUNKYFINGERS_IGNORE_BATON,
"TRAIT_CLEANBOT_WHISPERER" = TRAIT_CLEANBOT_WHISPERER,
"TRAIT_CLIFF_WALKER" = TRAIT_CLIFF_WALKER,
"TRAIT_CLOWN_ENJOYER" = TRAIT_CLOWN_ENJOYER,
"TRAIT_CLUMSY" = TRAIT_CLUMSY,
"TRAIT_COAGULATING" = TRAIT_COAGULATING,
"TRAIT_CORPSELOCKED" = TRAIT_CORPSELOCKED,
- "TRAIT_ALWAYS_WANTED" = TRAIT_ALWAYS_WANTED,
"TRAIT_CRITICAL_CONDITION" = TRAIT_CRITICAL_CONDITION,
"TRAIT_CULT_HALO" = TRAIT_CULT_HALO,
"TRAIT_CURSED" = TRAIT_CURSED,
@@ -181,8 +183,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_DUMB" = TRAIT_DUMB,
"TRAIT_DWARF" = TRAIT_DWARF,
"TRAIT_EASILY_WOUNDED" = TRAIT_EASILY_WOUNDED,
- "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
"TRAIT_EASYBLEED" = TRAIT_EASYBLEED,
+ "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
"TRAIT_ECHOLOCATION_EXTRA_RANGE" = TRAIT_ECHOLOCATION_EXTRA_RANGE,
"TRAIT_ECHOLOCATION_RECEIVER" = TRAIT_ECHOLOCATION_RECEIVER,
"TRAIT_ELDRITCH_PAINTING_EXAMINE" = TRAIT_ELDRITCH_PAINTING_EXAMINE,
@@ -211,10 +213,10 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_FORCED_GRAVITY" = TRAIT_FORCED_GRAVITY,
"TRAIT_FORCED_STANDING" = TRAIT_FORCED_STANDING,
"TRAIT_FOV_APPLIED" = TRAIT_FOV_APPLIED,
+ "TRAIT_FREERUNNING" = TRAIT_FREERUNNING,
"TRAIT_FREE_FLOAT_MOVEMENT" = TRAIT_FREE_FLOAT_MOVEMENT,
"TRAIT_FREE_HYPERSPACE_MOVEMENT" = TRAIT_FREE_HYPERSPACE_MOVEMENT,
"TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT" = TRAIT_FREE_HYPERSPACE_SOFTCORDON_MOVEMENT,
- "TRAIT_FREERUNNING" = TRAIT_FREERUNNING,
"TRAIT_FRIENDLY" = TRAIT_FRIENDLY,
"TRAIT_FUGU_GLANDED" = TRAIT_FUGU_GLANDED,
"TRAIT_GAMER" = TRAIT_GAMER,
@@ -226,12 +228,13 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_GOOD_HEARING" = TRAIT_GOOD_HEARING,
"TRAIT_GRABWEAKNESS" = TRAIT_GRABWEAKNESS,
"TRAIT_GREENTEXT_CURSED" = TRAIT_GREENTEXT_CURSED,
- "TRAIT_GUN_NATURAL" = TRAIT_GUN_NATURAL,
"TRAIT_GUNFLIP" = TRAIT_GUNFLIP,
+ "TRAIT_GUN_NATURAL" = TRAIT_GUN_NATURAL,
"TRAIT_HALT_RADIATION_EFFECTS" = TRAIT_HALT_RADIATION_EFFECTS,
"TRAIT_HANDS_BLOCKED" = TRAIT_HANDS_BLOCKED,
"TRAIT_HARDLY_WOUNDED" = TRAIT_HARDLY_WOUNDED,
"TRAIT_HAS_BEEN_KIDNAPPED" = TRAIT_HAS_BEEN_KIDNAPPED,
+ "TRAIT_HAS_CRANIAL_FISSURE" = TRAIT_HAS_CRANIAL_FISSURE,
"TRAIT_HAS_MARKINGS" = TRAIT_HAS_MARKINGS,
"TRAIT_HATED_BY_DOGS" = TRAIT_HATED_BY_DOGS,
"TRAIT_HEALS_FROM_CARP_RIFTS" = TRAIT_HEALS_FROM_CARP_RIFTS,
@@ -252,36 +255,34 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_IGNORING_GRAVITY" = TRAIT_IGNORING_GRAVITY,
"TRAIT_ILLITERATE" = TRAIT_ILLITERATE,
"TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED,
- "TRAIT_IN_CALL" = TRAIT_IN_CALL,
"TRAIT_INCAPACITATED" = TRAIT_INCAPACITATED,
"TRAIT_INTROVERT" = TRAIT_INTROVERT,
"TRAIT_INVISIBLE_MAN" = TRAIT_INVISIBLE_MAN,
"TRAIT_INVISIMIN" = TRAIT_INVISIMIN,
+ "TRAIT_IN_CALL" = TRAIT_IN_CALL,
"TRAIT_IWASBATONED" = TRAIT_IWASBATONED,
"TRAIT_JOLLY" = TRAIT_JOLLY,
"TRAIT_KISS_OF_DEATH" = TRAIT_KISS_OF_DEATH,
"TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT,
"TRAIT_KNOW_ENGI_WIRES" = TRAIT_KNOW_ENGI_WIRES,
"TRAIT_KNOW_ROBO_WIRES" = TRAIT_KNOW_ROBO_WIRES,
+ "TRAIT_LIGHTBULB_REMOVER" = TRAIT_LIGHTBULB_REMOVER,
"TRAIT_LIGHT_DRINKER" = TRAIT_LIGHT_DRINKER,
"TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP,
- "TRAIT_LIGHTBULB_REMOVER" = TRAIT_LIGHTBULB_REMOVER,
"TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT,
"TRAIT_LITERATE" = TRAIT_LITERATE,
"TRAIT_LIVERLESS_METABOLISM" = TRAIT_LIVERLESS_METABOLISM,
- "TRAIT_LIVERLESS_METABOLISM" = TRAIT_LIVERLESS_METABOLISM,
"TRAIT_MADNESS_IMMUNE" = TRAIT_MADNESS_IMMUNE,
"TRAIT_MAGICALLY_GIFTED" = TRAIT_MAGICALLY_GIFTED,
"TRAIT_MAGICALLY_PHASED" = TRAIT_MAGICALLY_PHASED,
"TRAIT_MARTIAL_ARTS_IMMUNE" = TRAIT_MARTIAL_ARTS_IMMUNE,
"TRAIT_MEDIBOTCOMINGTHROUGH" = TRAIT_MEDIBOTCOMINGTHROUGH,
- "TRAIT_MEDIBOTCOMINGTHROUGH" = TRAIT_MEDIBOTCOMINGTHROUGH,
"TRAIT_MEDICAL_HUD" = TRAIT_MEDICAL_HUD,
"TRAIT_MESON_VISION" = TRAIT_MESON_VISION,
"TRAIT_MIME_FAN" = TRAIT_MIME_FAN,
"TRAIT_MIMING" = TRAIT_MIMING,
- "TRAIT_MIND_TEMPORARILY_GONE" = TRAIT_MIND_TEMPORARILY_GONE,
"TRAIT_MINDSHIELD" = TRAIT_MINDSHIELD,
+ "TRAIT_MIND_TEMPORARILY_GONE" = TRAIT_MIND_TEMPORARILY_GONE,
"TRAIT_MOB_BREEDER" = TRAIT_MOB_BREEDER,
"TRAIT_MOB_TIPPED" = TRAIT_MOB_TIPPED,
"TRAIT_MORBID" = TRAIT_MORBID,
@@ -319,6 +320,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_NO_DEBRAIN_OVERLAY" = TRAIT_NO_DEBRAIN_OVERLAY,
"TRAIT_NO_DNA_COPY" = TRAIT_NO_DNA_COPY,
"TRAIT_NO_DNA_SCRAMBLE" = TRAIT_NO_DNA_SCRAMBLE,
+ "TRAIT_NO_EXTINGUISH" = TRAIT_NO_EXTINGUISH,
"TRAIT_NO_FLOATING_ANIM" = TRAIT_NO_FLOATING_ANIM,
"TRAIT_NO_GLIDE" = TRAIT_NO_GLIDE,
"TRAIT_NO_PLASMA_TRANSFORM" = TRAIT_NO_PLASMA_TRANSFORM,
@@ -340,31 +342,13 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE,
"TRAIT_NO_UNDERWEAR" = TRAIT_NO_UNDERWEAR,
"TRAIT_NO_ZOMBIFY" = TRAIT_NO_ZOMBIFY,
- "TRAIT_NOBLOOD" = TRAIT_NOBLOOD,
- "TRAIT_NOBREATH" = TRAIT_NOBREATH,
- "TRAIT_NOCRITDAMAGE" = TRAIT_NOCRITDAMAGE,
- "TRAIT_NOCRITOVERLAY" = TRAIT_NOCRITOVERLAY,
- "TRAIT_NODEATH" = TRAIT_NODEATH,
- "TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER,
- "TRAIT_NOFAT" = TRAIT_NOFAT,
- "TRAIT_NOFEAR_HOLDUPS" = TRAIT_NOFEAR_HOLDUPS,
- "TRAIT_NOFIRE_SPREAD" = TRAIT_NOFIRE_SPREAD,
- "TRAIT_NOFIRE" = TRAIT_NOFIRE,
- "TRAIT_NOFLASH" = TRAIT_NOFLASH,
- "TRAIT_NOGUNS" = TRAIT_NOGUNS,
- "TRAIT_NOHARDCRIT" = TRAIT_NOHARDCRIT,
- "TRAIT_NOHUNGER" = TRAIT_NOHUNGER,
- "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE,
- "TRAIT_NOMOBSWAP" = TRAIT_NOMOBSWAP,
- "TRAIT_NOSELFIGNITION_HEAD_ONLY" = TRAIT_NOSELFIGNITION_HEAD_ONLY,
- "TRAIT_NOSOFTCRIT" = TRAIT_NOSOFTCRIT,
"TRAIT_NUKEIMMUNE" = TRAIT_NUKEIMMUNE,
"TRAIT_OIL_FRIED" = TRAIT_OIL_FRIED,
"TRAIT_ON_ELEVATED_SURFACE" = TRAIT_ON_ELEVATED_SURFACE,
"TRAIT_ORBITING_FORBIDDEN" = TRAIT_ORBITING_FORBIDDEN,
"TRAIT_OVERDOSEIMMUNE" = TRAIT_OVERDOSEIMMUNE,
- "TRAIT_OVERWATCH_IMMUNE" = TRAIT_OVERWATCH_IMMUNE,
"TRAIT_OVERWATCHED" = TRAIT_OVERWATCHED,
+ "TRAIT_OVERWATCH_IMMUNE" = TRAIT_OVERWATCH_IMMUNE,
"TRAIT_PACIFISM" = TRAIT_PACIFISM,
"TRAIT_PARALYSIS_L_ARM" = TRAIT_PARALYSIS_L_ARM,
"TRAIT_PARALYSIS_L_LEG" = TRAIT_PARALYSIS_L_LEG,
@@ -372,9 +356,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG,
"TRAIT_PARROT_PERCHED" = TRAIT_PARROT_PERCHED,
"TRAIT_PASSTABLE" = TRAIT_PASSTABLE,
+ "TRAIT_PASSWINDOW" = TRAIT_PASSWINDOW,
"TRAIT_PERFECT_ATTACKER" = TRAIT_PERFECT_ATTACKER,
"TRAIT_PERMANENTLY_MORTAL" = TRAIT_PERMANENTLY_MORTAL,
- "TRAIT_PERMANENTLY_ONFIRE" = TRAIT_PERMANENTLY_ONFIRE,
"TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
"TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
"TRAIT_PLANT_SAFE" = TRAIT_PLANT_SAFE,
@@ -387,9 +371,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_PROSOPAGNOSIA" = TRAIT_PROSOPAGNOSIA,
"TRAIT_PULL_BLOCKED" = TRAIT_PULL_BLOCKED,
"TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE,
+ "TRAIT_QUICKER_CARRY" = TRAIT_QUICKER_CARRY,
"TRAIT_QUICK_BUILD" = TRAIT_QUICK_BUILD,
"TRAIT_QUICK_CARRY" = TRAIT_QUICK_CARRY,
- "TRAIT_QUICKER_CARRY" = TRAIT_QUICKER_CARRY,
"TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
"TRAIT_RDS_SUPPRESSED" = TRAIT_RDS_SUPPRESSED,
"TRAIT_REAGENT_SCANNER" = TRAIT_REAGENT_SCANNER,
@@ -421,6 +405,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
"TRAIT_SHOVE_KNOCKDOWN_BLOCKED" = TRAIT_SHOVE_KNOCKDOWN_BLOCKED,
"TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG,
+ "TRAIT_PAPER_MASTER" = TRAIT_PAPER_MASTER,
"TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS,
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
@@ -450,6 +435,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_TACKLING_FRAIL_ATTACKER" = TRAIT_TACKLING_FRAIL_ATTACKER,
"TRAIT_TACKLING_TAILED_DEFENDER" = TRAIT_TACKLING_TAILED_DEFENDER,
"TRAIT_TACKLING_WINGED_ATTACKER" = TRAIT_TACKLING_WINGED_ATTACKER,
+ "TRAIT_TACTICALLY_CAMOUFLAGED" = TRAIT_TACTICALLY_CAMOUFLAGED,
"TRAIT_TAGGER" = TRAIT_TAGGER,
"TRAIT_TEMPORARY_BODY" = TRAIT_TEMPORARY_BODY,
"TRAIT_TENACIOUS" = TRAIT_TENACIOUS,
@@ -481,16 +467,16 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_VATGROWN" = TRAIT_VATGROWN,
"TRAIT_VENTCRAWLER_ALWAYS" = TRAIT_VENTCRAWLER_ALWAYS,
"TRAIT_VENTCRAWLER_NUDE" = TRAIT_VENTCRAWLER_NUDE,
- "TRAIT_VIRUS_RESISTANCE" = TRAIT_VIRUS_RESISTANCE,
"TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
+ "TRAIT_VIRUS_RESISTANCE" = TRAIT_VIRUS_RESISTANCE,
"TRAIT_VORACIOUS" = TRAIT_VORACIOUS,
"TRAIT_WAS_EVOLVED" = TRAIT_WAS_EVOLVED,
"TRAIT_WEAK_SOUL" = TRAIT_WEAK_SOUL,
"TRAIT_WEB_SURFER" = TRAIT_WEB_SURFER,
"TRAIT_WEB_WEAVER" = TRAIT_WEB_WEAVER,
"TRAIT_WINE_TASTER" = TRAIT_WINE_TASTER,
- "TRAIT_WING_BUFFET_TIRED" = TRAIT_WING_BUFFET_TIRED,
"TRAIT_WING_BUFFET" = TRAIT_WING_BUFFET,
+ "TRAIT_WING_BUFFET_TIRED" = TRAIT_WING_BUFFET_TIRED,
"TRAIT_XENO_HOST" = TRAIT_XENO_HOST,
"TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE,
"TRAIT_XRAY_HEARING" = TRAIT_XRAY_HEARING,
@@ -530,6 +516,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
/obj/item/bodypart = list(
"TRAIT_DISABLED_BY_WOUND" = TRAIT_DISABLED_BY_WOUND,
"TRAIT_IGNORED_BY_LIVING_FLESH" = TRAIT_IGNORED_BY_LIVING_FLESH,
+ "TRAIT_IMMUNE_TO_CRANIAL_FISSURE" = TRAIT_IMMUNE_TO_CRANIAL_FISSURE,
),
/obj/item/bodypart = list(
"TRAIT_PARALYSIS" = TRAIT_PARALYSIS,
diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm
index 02499c7b889..54f9db6b89c 100644
--- a/code/_globalvars/traits/admin_tooling.dm
+++ b/code/_globalvars/traits/admin_tooling.dm
@@ -113,7 +113,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT,
"TRAIT_LITERATE" = TRAIT_LITERATE,
"TRAIT_LIVERLESS_METABOLISM" = TRAIT_LIVERLESS_METABOLISM,
- "TRAIT_LIVERLESS_METABOLISM" = TRAIT_LIVERLESS_METABOLISM,
+ "TRAIT_MAGICALLY_GIFTED" = TRAIT_MAGICALLY_GIFTED,
"TRAIT_MEDICAL_HUD" = TRAIT_MEDICAL_HUD,
"TRAIT_MIME_FAN" = TRAIT_MIME_FAN,
"TRAIT_MIMING" = TRAIT_MIMING,
@@ -129,6 +129,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_NO_AUGMENTS" = TRAIT_NO_AUGMENTS,
"TRAIT_NO_BLOOD_OVERLAY" = TRAIT_NO_BLOOD_OVERLAY,
"TRAIT_NO_DNA_COPY" = TRAIT_NO_DNA_COPY,
+ "TRAIT_NO_EXTINGUISH" = TRAIT_NO_EXTINGUISH,
"TRAIT_NO_GLIDE" = TRAIT_NO_GLIDE,
"TRAIT_NO_PLASMA_TRANSFORM" = TRAIT_NO_PLASMA_TRANSFORM,
"TRAIT_NO_SLIP_ALL" = TRAIT_NO_SLIP_ALL,
@@ -161,8 +162,8 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_PARALYSIS_R_ARM" = TRAIT_PARALYSIS_R_ARM,
"TRAIT_PARALYSIS_R_LEG" = TRAIT_PARALYSIS_R_LEG,
"TRAIT_PASSTABLE" = TRAIT_PASSTABLE,
+ "TRAIT_PASSWINDOW" = TRAIT_PASSWINDOW,
"TRAIT_PERFECT_ATTACKER" = TRAIT_PERFECT_ATTACKER,
- "TRAIT_PERMANENTLY_ONFIRE" = TRAIT_PERMANENTLY_ONFIRE,
"TRAIT_PHOTOGRAPHER" = TRAIT_PHOTOGRAPHER,
"TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
"TRAIT_PLANT_SAFE" = TRAIT_PLANT_SAFE,
@@ -188,6 +189,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
"TRAIT_SHIFTY_EYES" = TRAIT_SHIFTY_EYES,
"TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
"TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG,
+ "TRAIT_PAPER_MASTER" = TRAIT_PAPER_MASTER,
"TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS,
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index 7660b0c7bc3..067f2b013b7 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -11,7 +11,7 @@
return
if(ismob(A))
- ai_tracking_tool.set_tracked_mob(src, A.name)
+ ai_tracking_tool.track_mob(src, A)
else
A.move_camera_by_click()
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index 533e8f1e8dd..92defc66101 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -18,6 +18,8 @@
/// A weakref of the last thing we hovered over
/// God I hate how dragging works
var/datum/weakref/last_hovored_ref
+ /// overlay for keybind maptext
+ var/mutable_appearance/keybind_maptext
/atom/movable/screen/movable/action_button/Destroy()
if(our_hud)
@@ -48,6 +50,9 @@
return FALSE
var/list/modifiers = params2list(params)
+ if(LAZYACCESS(modifiers, ALT_CLICK))
+ begin_creating_bind(usr)
+ return TRUE
if(LAZYACCESS(modifiers, SHIFT_CLICK))
var/datum/hud/our_hud = usr.hud_used
our_hud.position_action(src, SCRN_OBJ_DEFAULT)
@@ -61,6 +66,14 @@
linked_action.Trigger(trigger_flags = trigger_flags)
return TRUE
+/atom/movable/screen/movable/action_button/proc/begin_creating_bind(mob/user)
+ if(!isnull(linked_action.full_key))
+ linked_action.full_key = null
+ linked_action.update_button_status(src)
+ return
+ linked_action.full_key = tgui_input_keycombo(user, "Please bind a key for this action.")
+ linked_action.update_button_status(src)
+
// Entered and Exited won't fire while you're dragging something, because you're still "holding" it
// Very much byond logic, but I want nice behavior, so we fake it with drag
/atom/movable/screen/movable/action_button/MouseDrag(atom/over_object, src_location, over_location, src_control, over_control, params)
@@ -149,6 +162,15 @@
return
user.client.prefs.action_buttons_screen_locs -= "[name]_[id]"
+/atom/movable/screen/movable/action_button/proc/update_keybind_maptext(key)
+ cut_overlay(keybind_maptext)
+ if(!key)
+ return
+ keybind_maptext = new
+ keybind_maptext.maptext = MAPTEXT("[key]")
+ keybind_maptext.transform = keybind_maptext.transform.Translate(-4, length(key) > 1 ? -6 : 2) //with modifiers, its placed lower so cooldown is visible
+ add_overlay(keybind_maptext)
+
/**
* This is a silly proc used in hud code code to determine what icon and icon state we should be using
* for hud elements (such as action buttons) that don't have their own icon and icon state set.
@@ -241,7 +263,7 @@
action.HideFrom(src)
/atom/movable/screen/button_palette
- desc = "Drag buttons to move them
Shift-click any button to reset it
Alt-click this to reset all buttons"
+ desc = "Drag buttons to move them
Shift-click any button to reset it
Alt-click any button to begin binding it to a key
Alt-click this to reset all buttons"
icon = 'icons/hud/64x16_actions.dmi'
icon_state = "screen_gen_palette"
screen_loc = ui_action_palette
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index e73cebf14c0..1f5f7588162 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -464,7 +464,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
var/mob/living/living_owner = owner
var/last_whisper
if(!HAS_TRAIT(living_owner, TRAIT_SUCCUMB_OVERRIDE))
- last_whisper = tgui_input_text(usr, "Do you have any last words?", "Goodnight, Sweet Prince")
+ last_whisper = tgui_input_text(usr, "Do you have any last words?", "Goodnight, Sweet Prince", encode = FALSE) // saycode already handles sanitization
if(isnull(last_whisper))
if(!HAS_TRAIT(living_owner, TRAIT_SUCCUMB_OVERRIDE))
return
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index e928a2b8b3e..79f857e8cbe 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -223,4 +223,3 @@
icon_state = "noise"
color = "#04a8d1"
alpha = 80
-
diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm
index e42c1f94f68..d33162a5b5f 100644
--- a/code/_onclick/hud/rendering/render_plate.dm
+++ b/code/_onclick/hud/rendering/render_plate.dm
@@ -212,7 +212,7 @@
That's how lighting functions at base. Because it uses BLEND_MULTIPLY and occasionally color matrixes, it needs a backdrop of blackness.\
See This byond post\
Lemme see uh, we're masked by the emissive plane so it can actually function (IE: make things glow in the dark).\
-
We're also masked by the overlay lighting plane, which contains all the movable lights in the game. It draws to us and also the game plane.\
+
We're also masked by the overlay lighting plane, which contains all the well overlay lights in the game. It draws to us and also the game plane.\
Masks us out so it has the breathing room to apply its effect.\
Oh and we quite often have our alpha changed to achive night vision effects, or things of that sort."
plane = RENDER_PLANE_LIGHTING
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index 04bbc048e66..ec79374cb4f 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -229,6 +229,9 @@
/mob/living/carbon/alien/larva/resolve_right_click_attack(atom/target, list/modifiers)
return target.attack_larva_secondary(src, modifiers)
+/mob/living/carbon/alien/larva/can_unarmed_attack() //We bite stuff, and our head is always free.
+ return TRUE
+
/atom/proc/attack_larva(mob/user, list/modifiers)
return
diff --git a/code/controllers/master.dm b/code/controllers/master.dm
index ce660ff512b..32093c12745 100644
--- a/code/controllers/master.dm
+++ b/code/controllers/master.dm
@@ -688,10 +688,16 @@ GLOBAL_REAL(Master, /datum/controller/master)
queue_node.state = SS_RUNNING
+ if(queue_node.profiler_focused)
+ world.Profile(PROFILE_START)
+
tick_usage = TICK_USAGE
var/state = queue_node.ignite(queue_node_paused)
tick_usage = TICK_USAGE - tick_usage
+ if(queue_node.profiler_focused)
+ world.Profile(PROFILE_STOP)
+
if (state == SS_RUNNING)
state = SS_IDLE
current_tick_budget -= queue_node_priority
diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm
index ddeb9368f50..b01f4b17b9d 100644
--- a/code/controllers/subsystem.dm
+++ b/code/controllers/subsystem.dm
@@ -38,6 +38,12 @@
///Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.
var/runlevels = RUNLEVELS_DEFAULT //points of the game at which the SS can fire
+ /**
+ * boolean set by admins. if TRUE then this subsystem will stop the world profiler after ignite() returns and start it again when called.
+ * used so that you can audit a specific subsystem or group of subsystems' synchronous call chain.
+ */
+ var/profiler_focused = FALSE
+
/*
* The following variables are managed by the MC and should not be modified directly.
*/
@@ -65,7 +71,7 @@
/// Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping
var/state = SS_IDLE
-
+
/// Tracks how many times a subsystem has ever slept in fire().
var/slept_count = 0
diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm
index 916bbed6e4e..71eaed14ea2 100644
--- a/code/controllers/subsystem/atoms.dm
+++ b/code/controllers/subsystem/atoms.dm
@@ -1,4 +1,3 @@
-#define SUBSYSTEM_INIT_SOURCE "subsystem init"
SUBSYSTEM_DEF(atoms)
name = "Atoms"
init_order = INIT_ORDER_ATOMS
@@ -41,11 +40,16 @@ SUBSYSTEM_DEF(atoms)
if(initialized == INITIALIZATION_INSSATOMS)
return
- set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD, SUBSYSTEM_INIT_SOURCE)
+ // Generate a unique mapload source for this run of InitializeAtoms
+ var/static/uid = 0
+ uid = (uid + 1) % (SHORT_REAL_LIMIT - 1)
+ var/source = "subsystem init [uid]"
+ set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD, source)
// This may look a bit odd, but if the actual atom creation runtimes for some reason, we absolutely need to set initialized BACK
- CreateAtoms(atoms, atoms_to_return)
- clear_tracked_initalize(SUBSYSTEM_INIT_SOURCE)
+ CreateAtoms(atoms, atoms_to_return, source)
+ clear_tracked_initalize(source)
+ SSicon_smooth.free_deferred(source)
if(late_loaders.len)
for(var/I in 1 to late_loaders.len)
@@ -72,7 +76,7 @@ SUBSYSTEM_DEF(atoms)
#endif
/// Actually creates the list of atoms. Exists soley so a runtime in the creation logic doesn't cause initalized to totally break
-/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms, list/atoms_to_return = null)
+/datum/controller/subsystem/atoms/proc/CreateAtoms(list/atoms, list/atoms_to_return = null, mapload_source = null)
if (atoms_to_return)
LAZYINITLIST(created_atoms)
@@ -90,7 +94,12 @@ SUBSYSTEM_DEF(atoms)
for(var/I in 1 to atoms.len)
var/atom/A = atoms[I]
if(!(A.flags_1 & INITIALIZED_1))
- CHECK_TICK
+ // Unrolled CHECK_TICK setup to let us enable/disable mapload based off source
+ if(TICK_CHECK)
+ clear_tracked_initalize(mapload_source)
+ stoplag()
+ if(mapload_source)
+ set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD, mapload_source)
PROFILE_INIT_ATOM_BEGIN()
InitAtom(A, TRUE, mapload_arg)
PROFILE_INIT_ATOM_END(A)
@@ -107,7 +116,11 @@ SUBSYSTEM_DEF(atoms)
#ifdef TESTING
++count
#endif
- CHECK_TICK
+ if(TICK_CHECK)
+ clear_tracked_initalize(mapload_source)
+ stoplag()
+ if(mapload_source)
+ set_tracked_initalized(INITIALIZATION_INNEW_MAPLOAD, mapload_source)
testing("Initialized [count] atoms")
@@ -117,6 +130,13 @@ SUBSYSTEM_DEF(atoms)
/datum/controller/subsystem/atoms/proc/map_loader_stop(source)
clear_tracked_initalize(source)
+/// Returns the source currently modifying SSatom's init behavior
+/datum/controller/subsystem/atoms/proc/get_initialized_source()
+ var/state_length = length(initialized_state)
+ if(!state_length)
+ return null
+ return initialized_state[state_length][1]
+
/// Use this to set initialized to prevent error states where the old initialized is overriden, and we end up losing all context
/// Accepts a state and a source, the most recent state is used, sources exist to prevent overriding old values accidentially
/datum/controller/subsystem/atoms/proc/set_tracked_initalized(state, source)
@@ -199,5 +219,3 @@ SUBSYSTEM_DEF(atoms)
var/initlog = InitLog()
if(initlog)
text2file(initlog, "[GLOB.log_directory]/initialize.log")
-
-#undef SUBSYSTEM_INIT_SOURCE
diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm
index f8377302bd3..7b3f93f5d82 100644
--- a/code/controllers/subsystem/economy.dm
+++ b/code/controllers/subsystem/economy.dm
@@ -29,6 +29,8 @@ SUBSYSTEM_DEF(economy)
* A list of sole account datums can be obtained with flatten_list(), another variable would be redundant rn.
*/
var/list/bank_accounts_by_id = list()
+ /// A list of bank accounts indexed by their assigned job.
+ var/list/bank_accounts_by_job = list()
///List of the departmental budget cards in existance.
var/list/dep_cards = list()
/// A var that collects the total amount of credits owned in player accounts on station, reset and recounted on fire()
diff --git a/code/controllers/subsystem/icon_smooth.dm b/code/controllers/subsystem/icon_smooth.dm
index 4d5f3069eca..9e5e9ffa99d 100644
--- a/code/controllers/subsystem/icon_smooth.dm
+++ b/code/controllers/subsystem/icon_smooth.dm
@@ -9,6 +9,7 @@ SUBSYSTEM_DEF(icon_smooth)
var/list/blueprint_queue = list()
var/list/smooth_queue = list()
var/list/deferred = list()
+ var/list/deferred_by_source = list()
/datum/controller/subsystem/icon_smooth/fire()
// We do not want to smooth icons of atoms whose neighbors are not initialized yet,
@@ -61,16 +62,30 @@ SUBSYSTEM_DEF(icon_smooth)
return SS_INIT_SUCCESS
+/// Releases a pool of delayed smooth attempts from a particular source
+/datum/controller/subsystem/icon_smooth/proc/free_deferred(source_to_free)
+ smooth_queue += deferred_by_source[source_to_free]
+ deferred_by_source -= source_to_free
+ if(!can_fire)
+ can_fire = TRUE
/datum/controller/subsystem/icon_smooth/proc/add_to_queue(atom/thing)
if(thing.smoothing_flags & SMOOTH_QUEUED)
return
thing.smoothing_flags |= SMOOTH_QUEUED
+ // If we're currently locked into mapload BY something
+ // Then put us in a deferred list that we release when this mapload run is finished
+ if(initialized && length(SSatoms.initialized_state) && SSatoms.initialized == INITIALIZATION_INNEW_MAPLOAD)
+ var/source = SSatoms.get_initialized_source()
+ LAZYADD(deferred_by_source[source], thing)
+ return
smooth_queue += thing
if(!can_fire)
can_fire = TRUE
/datum/controller/subsystem/icon_smooth/proc/remove_from_queues(atom/thing)
+ // Lack of removal from deferred_by_source is safe because the lack of SMOOTH_QUEUED will just free it anyway
+ // Hopefully this'll never cause a harddel (dies)
thing.smoothing_flags &= ~SMOOTH_QUEUED
smooth_queue -= thing
if(blueprint_queue)
diff --git a/code/controllers/subsystem/ore_generation.dm b/code/controllers/subsystem/ore_generation.dm
index 162bc2e99d9..ca8aa09d611 100644
--- a/code/controllers/subsystem/ore_generation.dm
+++ b/code/controllers/subsystem/ore_generation.dm
@@ -6,11 +6,11 @@ SUBSYSTEM_DEF(ore_generation)
runlevels = RUNLEVEL_GAME
/// All ore vents that are currently producing boulders.
- var/list/processed_vents = list()
- /// All the boulders that have been produced by ore vents to be pulled by BRM machines.
- var/list/available_boulders = list()
+ var/list/obj/structure/ore_vent/processed_vents = list()
/// All the ore vents that are currently in the game, not just the ones that are producing boulders.
- var/list/possible_vents = list()
+ var/list/obj/structure/ore_vent/possible_vents = list()
+ /// All the boulders that have been produced by ore vents to be pulled by BRM machines.
+ var/list/obj/item/boulder/available_boulders = list()
/**
* A list of all the minerals that are being mined by ore vents. We reset this list every time cave generation is done.
* Generally Should be empty by the time initialize ends on lavaland.
@@ -18,6 +18,7 @@ SUBSYSTEM_DEF(ore_generation)
* If we call cave_generation more than once, we copy a list from the lists in lists/ores_spawned.dm
*/
var/list/ore_vent_minerals = list()
+
/// A tracker of how many of each ore vent size we have in the game. Useful for tracking purposes.
var/list/ore_vent_sizes = list(
LARGE_VENT_TYPE = 0,
@@ -60,7 +61,7 @@ SUBSYSTEM_DEF(ore_generation)
return SS_INIT_SUCCESS
/datum/controller/subsystem/ore_generation/fire(resumed)
- available_boulders = list() // reset upon new fire.
+ available_boulders.Cut() // reset upon new fire.
for(var/obj/structure/ore_vent/current_vent as anything in processed_vents)
var/local_vent_count = 0
@@ -71,6 +72,4 @@ SUBSYSTEM_DEF(ore_generation)
if(local_vent_count >= MAX_BOULDERS_PER_VENT)
continue //We don't want to be accountable for literally hundreds of unprocessed boulders for no reason.
- var/obj/item/boulder/new_rock = current_vent.produce_boulder()
- available_boulders += new_rock
-
+ available_boulders += current_vent.produce_boulder()
diff --git a/code/controllers/subsystem/polling.dm b/code/controllers/subsystem/polling.dm
index 8bbb37661c0..038050cfb7d 100644
--- a/code/controllers/subsystem/polling.dm
+++ b/code/controllers/subsystem/polling.dm
@@ -16,7 +16,38 @@ SUBSYSTEM_DEF(polling)
if(running_poll.time_left() <= 0)
polling_finished(running_poll)
-/datum/controller/subsystem/polling/proc/poll_candidates(question, role, check_jobban, poll_time = 30 SECONDS, ignore_category = null, flash_window = TRUE, list/group = null, pic_source, role_name_text, list/custom_response_messages)
+/**
+ * Starts a poll.
+ *
+ * Arguments
+ * * question: Optional, The question to ask the candidates. If null, a default question will be used. ("Do you want to play as role?")
+ * * role: Optional, An antag role (IE, ROLE_TRAITOR) to pass, it won't show to any candidates who don't have it in their preferences.
+ * * check_jobban: Optional, What jobban role / flag to check, it won't show to any candidates who have this jobban.
+ * * poll_time: How long the poll will last.
+ * * ignore_category: Optional, A poll category. If a candidate has this category in their ignore list, they won't be polled.
+ * * flash_window: If TRUE, the candidate's window will flash when they're polled.
+ * * list/group: A list of candidates to poll.
+ * * pic_source: Optional, An /atom or an /image to display on the poll alert.
+ * * role_name_text: Optional, A string to display in logging / the (default) question. If null, the role name will be used.
+ * * list/custom_response_messages: Optional, A list of strings to use as responses to the poll. If null, the default responses will be used. see __DEFINES/polls.dm for valid keys to use.
+ * * start_signed_up: If TRUE, all candidates will start signed up for the poll, making it opt-out rather than opt-in.
+ *
+ * Returns a list of all mobs who signed up for the poll.
+ */
+/datum/controller/subsystem/polling/proc/poll_candidates(
+ question,
+ role,
+ check_jobban,
+ poll_time = 30 SECONDS,
+ ignore_category = null,
+ flash_window = TRUE,
+ list/group = null,
+ pic_source,
+ role_name_text,
+ list/custom_response_messages,
+ start_signed_up = FALSE,
+)
+ RETURN_TYPE(/list/mob)
if(group.len == 0)
return list()
if(role && !role_name_text)
@@ -49,7 +80,8 @@ SUBSYSTEM_DEF(polling)
if(role && !is_eligible(candidate_mob, role, check_jobban, ignore_category))
continue
- SEND_SOUND(candidate_mob, 'sound/misc/notice2.ogg')
+ if(start_signed_up)
+ new_poll.sign_up(candidate_mob, TRUE)
if(flash_window)
window_flash(candidate_mob.client)
@@ -76,6 +108,8 @@ SUBSYSTEM_DEF(polling)
poll_alert_button.poll = alert_poll
poll_alert_button.set_role_overlay()
poll_alert_button.update_stacks_overlay()
+ poll_alert_button.update_candidates_number_overlay()
+ poll_alert_button.update_signed_up_overlay()
// Sign up inheritance and stacking
@@ -111,12 +145,15 @@ SUBSYSTEM_DEF(polling)
// Chat message
var/act_jump = ""
if(isatom(pic_source) && isobserver(candidate_mob))
- act_jump = "\[Teleport]"
- var/act_signup = "\[Sign Up]"
+ act_jump = "\[Teleport\]"
+ var/act_signup = "\[[start_signed_up ? "Opt out" : "Sign Up"]\]"
var/act_never = ""
if(ignore_category)
- act_never = "\[Never For This Round]"
- to_chat(candidate_mob, span_boldnotice(examine_block("Now looking for candidates [role_name_text ? "to play as \an [role_name_text]." : "\"[question]\""] [act_jump] [act_signup] [act_never]")))
+ act_never = "\[Never For This Round\]"
+
+ if(!duplicate_message_check(alert_poll)) //Only notify people once. They'll notice if there are multiple and we don't want to spam people.
+ SEND_SOUND(candidate_mob, 'sound/misc/notice2.ogg')
+ to_chat(candidate_mob, span_boldnotice(examine_block("Now looking for candidates [role_name_text ? "to play as \an [role_name_text]." : "\"[question]\""] [act_jump] [act_signup] [act_never]")))
// Start processing it so it updates visually the timer
START_PROCESSING(SSprocessing, poll_alert_button)
@@ -197,13 +234,8 @@ SUBSYSTEM_DEF(polling)
// Take care of updating the remaining screen alerts if a similar poll is found, or deleting them.
if(length(finishing_poll.alert_buttons))
- var/polls_of_same_type_left = FALSE
- for(var/datum/candidate_poll/running_poll as anything in currently_polling)
- if(running_poll.poll_key == finishing_poll.poll_key && running_poll.time_left() > 0)
- polls_of_same_type_left = TRUE
- break
for(var/atom/movable/screen/alert/poll_alert/alert as anything in finishing_poll.alert_buttons)
- if(polls_of_same_type_left)
+ if(duplicate_message_check(finishing_poll))
alert.update_stacks_overlay()
else
alert.owner.clear_alert("[finishing_poll.poll_key]_poll_alert")
@@ -218,6 +250,13 @@ SUBSYSTEM_DEF(polling)
msg += " | Next: [DisplayTimeText(soonest_to_complete.time_left())] ([length(soonest_to_complete.signed_up)] candidates)"
return ..()
+///Is there a multiple of the given event type running right now?
+/datum/controller/subsystem/polling/proc/duplicate_message_check(datum/candidate_poll/poll_to_check)
+ for(var/datum/candidate_poll/running_poll as anything in currently_polling)
+ if((running_poll.poll_key == poll_to_check.poll_key && running_poll != poll_to_check) && running_poll.time_left() > 0)
+ return TRUE
+ return FALSE
+
/datum/controller/subsystem/polling/proc/get_next_poll_to_finish()
var/lowest_time_left = INFINITY
var/next_poll_to_finish
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index d112cfe49e2..040276b5596 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -5,6 +5,7 @@
// Shifted to glob so they are generated at world start instead of risking players doing preference stuff before the subsystem inits
GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list(
list(/datum/quirk/item_quirk/blindness, /datum/quirk/item_quirk/nearsighted),
+ list(/datum/quirk/item_quirk/blindness, /datum/quirk/touchy),
list(/datum/quirk/jolly, /datum/quirk/depression, /datum/quirk/apathetic, /datum/quirk/hypersensitive),
list(/datum/quirk/no_taste, /datum/quirk/vegetarian, /datum/quirk/deviant_tastes, /datum/quirk/gamer),
list(/datum/quirk/pineapple_liker, /datum/quirk/pineapple_hater, /datum/quirk/gamer),
diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm
index 40600aaafbb..8bba21500b5 100644
--- a/code/controllers/subsystem/research.dm
+++ b/code/controllers/subsystem/research.dm
@@ -62,6 +62,7 @@ SUBSYSTEM_DEF(research)
/obj/item/assembly/signaler/anomaly/hallucination = MAX_CORES_HALLUCINATION,
/obj/item/assembly/signaler/anomaly/bioscrambler = MAX_CORES_BIOSCRAMBLER,
/obj/item/assembly/signaler/anomaly/dimensional = MAX_CORES_DIMENSIONAL,
+ /obj/item/assembly/signaler/anomaly/ectoplasm = MAX_CORES_ECTOPLASMIC,
)
/// Lookup list for ordnance briefers.
diff --git a/code/controllers/subsystem/server_maint.dm b/code/controllers/subsystem/server_maint.dm
index 69a5edcca3a..f011d01ca67 100644
--- a/code/controllers/subsystem/server_maint.dm
+++ b/code/controllers/subsystem/server_maint.dm
@@ -19,6 +19,9 @@ SUBSYSTEM_DEF(server_maint)
world.hub_password = "" //quickly! before the hubbies see us.
/datum/controller/subsystem/server_maint/Initialize()
+ if (fexists("tmp/"))
+ fdel("tmp/")
+
if (CONFIG_GET(flag/hub))
world.update_hub_visibility(TRUE)
//Keep in mind, because of how delay works adding a list here makes each list take wait * delay more time to clear
@@ -82,6 +85,8 @@ SUBSYSTEM_DEF(server_maint)
return
/datum/controller/subsystem/server_maint/Shutdown()
+ if (fexists("tmp/"))
+ fdel("tmp/")
kick_clients_in_lobby(span_boldannounce("The round came to an end with you in the lobby."), TRUE) //second parameter ensures only afk clients are kicked
var/server = CONFIG_GET(string/server)
for(var/thing in GLOB.clients)
diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm
index 80ee843bf8b..bc894de9bee 100644
--- a/code/controllers/subsystem/timer.dm
+++ b/code/controllers/subsystem/timer.dm
@@ -4,8 +4,6 @@
#define BUCKET_POS(timer) (((ROUND_UP((timer.timeToRun - timer.timer_subsystem.head_offset) / world.tick_lag)+1) % BUCKET_LEN) || BUCKET_LEN)
/// Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue
#define TIMER_MAX(timer_ss) (timer_ss.head_offset + TICKS2DS(BUCKET_LEN + timer_ss.practical_offset - 1))
-/// Max float with integer precision
-#define TIMER_ID_MAX (2**24)
/**
* # Timer Subsystem
@@ -731,4 +729,3 @@ SUBSYSTEM_DEF(timer)
#undef BUCKET_LEN
#undef BUCKET_POS
#undef TIMER_MAX
-#undef TIMER_ID_MAX
diff --git a/code/datums/achievements/_achievement_data.dm b/code/datums/achievements/_achievement_data.dm
index 295770b89b5..8b78cf7c8f3 100644
--- a/code/datums/achievements/_achievement_data.dm
+++ b/code/datums/achievements/_achievement_data.dm
@@ -113,7 +113,7 @@
"name" = award.name,
"desc" = award.desc,
"category" = award.category,
- "icon_class" = assets.icon_class_name(award.icon),
+ "icon_class" = assets.icon_class_name("achievement-[award.icon_state]"),
"value" = data[achievement_type],
)
award_data += award.get_ui_data(user.ckey)
diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm
index 23ab5e81001..d99659ea780 100644
--- a/code/datums/achievements/_awards.dm
+++ b/code/datums/achievements/_awards.dm
@@ -2,8 +2,10 @@
///Name of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees)
var/name
var/desc = "You did it."
- ///The icon state for this award. The icon file is found in ui_icons/achievements.
- var/icon = "default"
+ ///The dmi icon file that holds the award's icon state.
+ var/icon = ACHIEVEMENTS_SET
+ ///The icon state for this award.
+ var/icon_state = "default"
var/category = "Normal"
@@ -80,7 +82,7 @@
///Achievements are one-off awards for usually doing cool things.
/datum/award/achievement
desc = "Achievement for epic people"
- icon = "" // This should warn contributors that do not declare an icon when contributing new achievements.
+ icon_state = "" // This should warn contributors that do not declare an icon when contributing new achievements.
///How many players have earned this achievement
var/times_achieved = 0
@@ -171,7 +173,7 @@
/datum/award/score/achievements_score
name = "Achievements Unlocked"
desc = "Don't worry, metagaming is all that matters."
- icon = "elephant" //Obey the reference
+ icon_state = "elephant" //Obey the reference
database_id = ACHIEVEMENTS_SCORE
/datum/award/score/achievements_score/get_ui_data(key)
diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm
index a378b703e46..c02286b8f7a 100644
--- a/code/datums/achievements/boss_achievements.dm
+++ b/code/datums/achievements/boss_achievements.dm
@@ -5,119 +5,119 @@
name = "Tendril Exterminator"
desc = "Watch your step"
database_id = BOSS_MEDAL_TENDRIL
- icon = "tendril"
+ icon_state = "tendril"
/datum/award/achievement/boss/boss_killer
name = "Boss Killer"
desc = "You've come a long ways from asking how to switch hands."
database_id = "Boss Killer"
- icon = "firstboss"
+ icon_state = "firstboss"
/datum/award/achievement/boss/blood_miner_kill
name = "Blood-Drunk Miner Killer"
desc = "I guess he couldn't handle his drink that well."
database_id = BOSS_MEDAL_MINER
- icon = "miner"
+ icon_state = "miner"
/datum/award/achievement/boss/demonic_miner_kill
name = "Demonic-Frost Miner Killer"
desc = "Definitely harder than the Blood-Drunk Miner."
database_id = BOSS_MEDAL_FROSTMINER
- icon = "frostminer"
+ icon_state = "frostminer"
/datum/award/achievement/boss/bubblegum_kill
name = "Bubblegum Killer"
desc = "I guess he wasn't made of candy after all"
database_id = BOSS_MEDAL_BUBBLEGUM
- icon = "bbgum"
+ icon_state = "bbgum"
/datum/award/achievement/boss/colossus_kill
name = "Colossus Killer"
desc = "The bigger they are... the better the loot"
database_id = BOSS_MEDAL_COLOSSUS
- icon = "colossus"
+ icon_state = "colossus"
/datum/award/achievement/boss/drake_kill
name = "Drake Killer"
desc = "Now I can wear Rune Platebodies!"
database_id = BOSS_MEDAL_DRAKE
- icon = "drake"
+ icon_state = "drake"
/datum/award/achievement/boss/hierophant_kill
name = "Hierophant Killer"
desc = "Hierophant, but not triumphant."
database_id = BOSS_MEDAL_HIEROPHANT
- icon = "hierophant"
+ icon_state = "hierophant"
/datum/award/achievement/boss/legion_kill
name = "Legion Killer"
desc = "We were many..now we are none."
database_id = BOSS_MEDAL_LEGION
- icon = "legion"
+ icon_state = "legion"
/datum/award/achievement/boss/wendigo_kill
name = "Wendigo Killer"
desc = "You've now ruined years of mythical storytelling."
database_id = BOSS_MEDAL_WENDIGO
- icon = "wendigo"
+ icon_state = "wendigo"
/datum/award/achievement/boss/blood_miner_crusher
name = "Blood-Drunk Miner Crusher"
desc = "I guess he couldn't handle his drink that well."
database_id = BOSS_MEDAL_MINER_CRUSHER
- icon = "miner"
+ icon_state = "miner"
/datum/award/achievement/boss/demonic_miner_crusher
name = "Demonic-Frost Miner Crusher"
desc = "Definitely harder than the Blood-Drunk Miner."
database_id = BOSS_MEDAL_FROSTMINER_CRUSHER
- icon = "frostminer"
+ icon_state = "frostminer"
/datum/award/achievement/boss/bubblegum_crusher
name = "Bubblegum Crusher"
desc = "I guess he wasn't made of candy after all"
database_id = BOSS_MEDAL_BUBBLEGUM_CRUSHER
- icon = "bbgum"
+ icon_state = "bbgum"
/datum/award/achievement/boss/colossus_crusher
name = "Colossus Crusher"
desc = "The bigger they are... the better the loot"
database_id = BOSS_MEDAL_COLOSSUS_CRUSHER
- icon = "colossus"
+ icon_state = "colossus"
/datum/award/achievement/boss/drake_crusher
name = "Drake Crusher"
desc = "Now I can wear Rune Platebodies!"
database_id = BOSS_MEDAL_DRAKE_CRUSHER
- icon = "drake"
+ icon_state = "drake"
/datum/award/achievement/boss/hierophant_crusher
name = "Hierophant Crusher"
desc = "Hierophant, but not triumphant."
database_id = BOSS_MEDAL_HIEROPHANT_CRUSHER
- icon = "hierophant"
+ icon_state = "hierophant"
/datum/award/achievement/boss/legion_crusher
name = "Legion Crusher"
desc = "We were many... now we are none."
database_id = BOSS_MEDAL_LEGION_CRUSHER
- icon = "legion"
+ icon_state = "legion"
/datum/award/achievement/boss/wendigo_crusher
name = "Wendigo Crusher"
desc = "You've now ruined years of mythical storytelling."
database_id = BOSS_MEDAL_WENDIGO_CRUSHER
- icon = "wendigo"
+ icon_state = "wendigo"
//should be removed soon
/datum/award/achievement/boss/king_goat_kill
name = "King Goat Killer"
desc = "The king is dead, long live the king!"
database_id = BOSS_MEDAL_KINGGOAT
- icon = "goatboss"
+ icon_state = "goatboss"
/datum/award/achievement/boss/king_goat_crusher
name = "King Goat Crusher"
desc = "The king is dead, long live the king!"
database_id = BOSS_MEDAL_KINGGOAT_CRUSHER
- icon = "goatboss"
+ icon_state = "goatboss"
diff --git a/code/datums/achievements/job_achievements.dm b/code/datums/achievements/job_achievements.dm
index 6aafbee8e68..bd37de7c0e1 100644
--- a/code/datums/achievements/job_achievements.dm
+++ b/code/datums/achievements/job_achievements.dm
@@ -8,7 +8,7 @@
name = "All Within Theoretical Limits"
desc = "I never thought I'd see a resonance cascade, let alone prevent one..."
database_id = MEDAL_THEORETICAL_LIMITS
- icon = "theoreticallimits"
+ icon_state = "theoreticallimits"
//medical
@@ -16,13 +16,13 @@
name = "Mister Sandman"
desc = "Mechanically speaking, there's no real benefit to being unconscious during surgery. Weird how insistent this doctor is about using the N2O anyway though, huh?"
database_id = MEDAL_SANDMAN
- icon = "basemisc"
+ icon_state = "basemisc"
/datum/award/achievement/jobs/helbitaljanken
name = "Helbitaljanken"
desc = "You janked hard"
database_id = MEDAL_HELBITALJANKEN
- icon = "helbital"
+ icon_state = "helbital"
//mining
@@ -30,7 +30,7 @@
name = "Frenching"
desc = "Just a taste, for science!"
database_id = MEDAL_FRENCHING
- icon = "frenchingthebubble"
+ icon_state = "frenchingthebubble"
//science
@@ -38,13 +38,13 @@
name = "Feat of Strength"
desc = "If the rod is immovable, is it passing you or are you passing it?"
database_id = MEDAL_RODSUPLEX
- icon = "featofstrength"
+ icon_state = "featofstrength"
/datum/award/achievement/jobs/snail
name = "KKKiiilll mmmeee"
desc = "You were a little too ambitious, but hey, I guess you're still alive?"
database_id = MEDAL_SNAIL
- icon = "snail"
+ icon_state = "snail"
//all of service! hip hip!
@@ -52,18 +52,18 @@
name = "Centcom Grade: Shitty Service"
desc = "Well, you at least tried. How about trying harder?"
database_id = MEDAL_BAD_SERVICE
- icon = "service_bad"
+ icon_state = "service_bad"
/datum/award/achievement/jobs/service_okay
name = "Centcom Grade: Acceptable Service"
desc = "Well, it'll do! You and your department did just fine."
database_id = MEDAL_OKAY_SERVICE
- icon = "service_okay"
+ icon_state = "service_okay"
/datum/award/achievement/jobs/service_good
name = "Centcom Grade: Exemplary Service"
desc = "Centcom is very impressed with your department!"
database_id = MEDAL_GOOD_SERVICE
- icon = "service_good"
+ icon_state = "service_good"
//civilian achievies! while not recognized by the code, it is recognized by our hearts
diff --git a/code/datums/achievements/mafia_achievements.dm b/code/datums/achievements/mafia_achievements.dm
index da70fb11e87..31462f7a0ce 100644
--- a/code/datums/achievements/mafia_achievements.dm
+++ b/code/datums/achievements/mafia_achievements.dm
@@ -7,103 +7,103 @@
name = "Assistant Victory"
desc = "If you got killed instead of someone more important, you just flexed the true strength of your \"\"\"\"role\"\"\"\"."
database_id = MAFIA_MEDAL_ASSISTANT
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/detective
name = "Detective Victory"
desc = "If you did this with a Medical Doctor in the game, i'm not really that impressed."
database_id = MAFIA_MEDAL_DETECTIVE
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/psychologist
name = "Psychologist Victory"
desc = "You learned how to not reveal someone random night one! Or... maybe you're just a lucky bastard."
database_id = MAFIA_MEDAL_PSYCHOLOGIST
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/chaplain
name = "Chaplain Victory"
desc = "Useless... until the one night the thoughtfeeder confidently claims themselves as detective. Mafia's true bullshit detector."
database_id = MAFIA_MEDAL_CHAPLAIN
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/md
name = "Medical Doctor Victory"
desc = "Congratulations on learning how to not talk!"
database_id = MAFIA_MEDAL_MD
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/officer
name = "Security Officer Victory"
desc = "Don't worry, you can win this if you're dead! You... did use your ability to become dead, right?"
database_id = MAFIA_MEDAL_OFFICER
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/lawyer
name = "Lawyer Victory"
desc = "Oh don't mind me, i'm just the worst rol- Oops, I just instantly ended the game."
database_id = MAFIA_MEDAL_LAWYER
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/hop
name = "Head of Personnel Victory"
desc = "King of Assistants, waster of a single mafia's night, thrower of games."
database_id = MAFIA_MEDAL_HOP
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/warden
name = "Warden Victory"
desc = "Make changelings think you're detective, go on lockdown, actual detective investigates you and dies. Cha cha real smooth!"
database_id = MAFIA_MEDAL_WARDEN
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/hos
name = "Head of Security Victory"
desc = "Certified not shitcurity."
database_id = MAFIA_MEDAL_HOS
- icon = "town"
+ icon_state = "town"
/datum/award/achievement/mafia/changeling
name = "Changeling Victory"
desc = "I think the changelings are metacomming."
database_id = MAFIA_MEDAL_CHANGELING
- icon = "mafia"
+ icon_state = "mafia"
/datum/award/achievement/mafia/thoughtfeeder
name = "Thoughtfeeder Victory"
desc = "Clown's best friend. And Obsessed. And fugitive? Whose side are you on?!"
database_id = MAFIA_MEDAL_THOUGHTFEEDER
- icon = "mafia"
+ icon_state = "mafia"
/datum/award/achievement/mafia/traitor
name = "Traitor Victory"
desc = "Guys, we still have two more changelings to ki-!! TRAITOR VICTORY !!"
database_id = MAFIA_MEDAL_TRAITOR
- icon = "neutral"
+ icon_state = "neutral"
/datum/award/achievement/mafia/nightmare
name = "Nightmare Victory"
desc = "DID YOUR LIGHT FLICKER?!"
database_id = MAFIA_MEDAL_NIGHTMARE
- icon = "neutral"
+ icon_state = "neutral"
/datum/award/achievement/mafia/fugitive
name = "Fugitive Victory"
desc = "I'm just the description on an achievement, but if you end up having to choose between town and changelings, go changelings."
database_id = MAFIA_MEDAL_FUGITIVE
- icon = "neutral"
+ icon_state = "neutral"
/datum/award/achievement/mafia/obsessed
name = "Obsessed Victory"
desc = "You got your target lynched, so instead of being spiteful and annoying, you're just smug and annoying."
database_id = MAFIA_MEDAL_OBSESSED
- icon = "neutral"
+ icon_state = "neutral"
/datum/award/achievement/mafia/clown
name = "Clown Victory"
desc = "Did you know this works on traitors, despite their immunity? If you hit the jackpot and manage to kill one, they'll salt into the next dimension. Clown tips!"
database_id = MAFIA_MEDAL_CLOWN
- icon = "neutral"
+ icon_state = "neutral"
///ALL THE ACHIEVEMENTS FOR MISC MAFIA ODDITIES///
@@ -111,4 +111,4 @@
name = "Universally Hated"
desc = "Managed to get more than 12 votes when put up on trial, jesus christ."
database_id = MAFIA_MEDAL_HATED
- icon = "hated"
+ icon_state = "hated"
diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm
index e452b860f00..e92fc3bc56b 100644
--- a/code/datums/achievements/misc_achievements.dm
+++ b/code/datums/achievements/misc_achievements.dm
@@ -1,54 +1,54 @@
/datum/award/achievement/misc
category = "Misc"
- icon = "basemisc" //for those achievements that still need an actual icon, later.
+ icon_state = "basemisc" //for those achievements that still need an actual icon, later.
/datum/award/achievement/misc/meteor_examine
name = "Your Life Before Your Eyes"
desc = "Take a close look at hurtling space debris"
database_id = MEDAL_METEOR
- icon = "meteors"
+ icon_state = "meteors"
/datum/award/achievement/misc/pulse
name = "Jackpot"
desc = "Win a pulse rifle from an arcade machine"
database_id = MEDAL_PULSE
- icon = "jackpot"
+ icon_state = "jackpot"
/datum/award/achievement/misc/time_waste
name = "Time waster"
desc = "Speak no evil, hear no evil, see just errors"
database_id = MEDAL_TIMEWASTE
- icon = "timewaste"
+ icon_state = "timewaste"
/datum/award/achievement/misc/round_and_full
name = "Round and Full"
desc = "Well at least you aren't down the river, I hear they eat people there."
database_id = MEDAL_CLOWNCARKING
- icon = "clownking"
+ icon_state = "clownking"
/datum/award/achievement/misc/the_best_driver
name = "The Best Driver"
desc = "100 honks later"
database_id = MEDAL_THANKSALOT
- icon = "clownthanks"
+ icon_state = "clownthanks"
/datum/award/achievement/misc/getting_an_upgrade
name = "Getting an upgrade"
desc = "Make your first unique material item!"
database_id = MEDAL_MATERIALCRAFT
- icon = "upgrade"
+ icon_state = "upgrade"
/datum/award/achievement/misc/rocket_holdup
name = "Disk, Please!"
desc = "Is the man currently pointing a loaded rocket launcher at your head point blank really dumb enough to pull the trigger? Do you really want to find out?"
database_id = MEDAL_DISKPLEASE
- icon = "rocket_holdup"
+ icon_state = "rocket_holdup"
/datum/award/achievement/misc/gamer
name = "My Watchlist Status is Not Important"
desc = "You may be under the impression that violent video games are a harmless pastime, but the security and medical personnel swarming your location with batons and knockout gas look like they disagree."
database_id = MEDAL_GAMER
- icon = "live_sec_reaction"
+ icon_state = "live_sec_reaction"
/datum/award/achievement/misc/vendor_squish
name = "I Was a Teenage Anarchist"
@@ -69,161 +69,161 @@
name = "One Lean, Mean, Cleaning Machine"
desc = "How does it feel to know that your workplace values a mop bucket on wheels more than you?" // i can do better than this give me time
database_id = MEDAL_CLEANBOSS
- icon = "cleanboss"
+ icon_state = "cleanboss"
/datum/award/achievement/misc/rule8
name = "Rule 8"
desc = "Call an admin this is ILLEGAL!!"
database_id = MEDAL_RULE8
- icon = "rule8"
+ icon_state = "rule8"
/datum/award/achievement/misc/speed_round
name = "Long shift"
desc = "Well, that didn't take long."
database_id = MEDAL_LONGSHIFT
- icon = "longshift"
+ icon_state = "longshift"
/datum/award/achievement/misc/lookoutsir
name = "Look Out, Sir!"
desc = "Either awarded for making the ultimate sacrifice for your comrades, or a really dumb attempt at grenade jumping."
database_id = MEDAL_LOOKOUTSIR
- icon = "martyr" // purple heart on an explosive danger warning sign (well, sort of)
+ icon_state = "martyr" // purple heart on an explosive danger warning sign (well, sort of)
/datum/award/achievement/misc/gottem
name = "HA, GOTTEM"
desc = "Made you look!"
database_id = MEDAL_GOTTEM
- icon = "gottem"
+ icon_state = "gottem"
/datum/award/achievement/misc/ascension
name = "Ascension"
desc = "Caedite eos. Novit enim Dominus qui sunt eius."
database_id = MEDAL_ASCENSION
- icon = "ascension"
+ icon_state = "ascension"
/datum/award/achievement/misc/ash_ascension
name = "Nightwatcher's Eyes"
desc = "You've risen above the flames, became one with the ashes. You've been reborn as one with the Nightwatcher."
database_id = MEDAL_ASH_ASCENSION
- icon = "ashascend"
+ icon_state = "ashascend"
/datum/award/achievement/misc/flesh_ascension
name = "Vortex of Arms"
desc = "You've became something more, something greater. A piece of the emperor resides within you, and you within him."
database_id = MEDAL_FLESH_ASCENSION
- icon = "fleshascend"
+ icon_state = "fleshascend"
/datum/award/achievement/misc/rust_ascension
name = "Hills of Rust"
desc = "You've summoned a piece of the Hill of rust, and so the Hills welcome you."
database_id = MEDAL_RUST_ASCENSION
- icon = "rustascend"
+ icon_state = "rustascend"
/datum/award/achievement/misc/void_ascension
name = "All that perish"
desc = "Place of a different being, different time. Everything ends there... but maybe it is just the beginning?"
database_id = MEDAL_VOID_ASCENSION
- icon = "voidascend"
+ icon_state = "voidascend"
/datum/award/achievement/misc/blade_ascension
name = "Silver and Steel"
desc = "You've become the master of all duellists - the paragon of blades."
database_id = MEDAL_BLADE_ASCENSION
- icon = "bladeascend"
+ icon_state = "bladeascend"
/datum/award/achievement/misc/cosmic_ascension
name = "It arrived"
desc = "You managed to teleport an entity on the station that really shouldn't be there."
database_id = MEDAL_COSMOS_ASCENSION
- icon = "cosmicascend"
+ icon_state = "cosmicascend"
/datum/award/achievement/misc/lock_ascension
name = "Secrets of the Locked Labyrinth"
desc = "You managed to open a gate into the mansus."
database_id = MEDAL_LOCK_ASCENSION
- icon = "lockascend"
+ icon_state = "lockascend"
/datum/award/achievement/misc/moon_ascension
name = "The Last Act"
desc = "You managed to become the ringleader and slay the lie."
database_id = MEDAL_MOON_ASCENSION
- icon = "moonascend"
+ icon_state = "moonascend"
/datum/award/achievement/misc/grand_ritual_finale
name = "Archmage"
desc = "Made a big impression on the station with your phenomenal cosmic power."
database_id = MEDAL_ARCHMAGE
- icon = "archmage"
+ icon_state = "archmage"
/datum/award/achievement/misc/toolbox_soul
name = "SOUL'd Out"
desc = "My eternal soul was destroyed to make a toolbox look funny and all I got was this achievement..."
database_id = MEDAL_TOOLBOX_SOUL
- icon = "toolbox_soul"
+ icon_state = "toolbox_soul"
/datum/award/achievement/misc/hot_damn
name = "Hot Damn!"
desc = "Sometimes you need to make some noise to make a point."
database_id = MEDAL_HOT_DAMN
- icon = "hotdamn"
+ icon_state = "hotdamn"
/datum/award/achievement/misc/cayenne_disk
name = "Very Important Piscis"
desc = "You can rest well now."
database_id = MEDAL_CAYENNE_DISK
- icon = "cayenne_disk"
+ icon_state = "cayenne_disk"
/datum/award/achievement/misc/tram_surfer
name = "Tram Surfer"
desc = "Lights out, guerilla radio!"
database_id = MEDAL_TRAM_SURFER
- icon = "tram_surfer"
+ icon_state = "tram_surfer"
/datum/award/achievement/misc/cult_shuttle_omfg
name = "WHAT JUST HAPPENED"
desc = "As a blood cultist, be part of a team that summons 3 shuttle curses within 10 seconds. Imagine cleaning up after them, g r o s s!"
database_id = MEDAL_CULT_SHUTTLE_OMFG
- icon = "cult_shuttle_omfg"
+ icon_state = "cult_shuttle_omfg"
/datum/award/achievement/misc/clickbait
name = "Clickbait"
desc = "Where's my free smartphone?!?"
database_id = MEDAL_CLICKBAIT
- icon = "bait"
+ icon_state = "bait"
/datum/award/achievement/misc/narsupreme
name = "If Nar'Sie is so good, why isn't there a..."
desc = "Even interdimensional space deitys need a friend."
database_id = MEDAL_NARSUPREME
- icon = "narsupreme"
+ icon_state = "narsupreme"
/datum/award/achievement/misc/springlock
name = "The Man Inside the MODsuit"
desc = "Ignore the warning label on a springlock MODsuit."
database_id = MEDAL_SPRINGLOCK
- icon = "springlock"
+ icon_state = "springlock"
/datum/award/achievement/misc/healthy
name = "The Picture of Health"
desc = "Don't be such a baby, it's just a heart attack. You've bounced back from worse!"
database_id = MEDAL_HEALTHY
- icon = "picofhealth"
+ icon_state = "picofhealth"
/datum/award/achievement/misc/gods_wrath
name = "God's Wrath"
desc = "Did you think you could get away with defiling the word of God?"
database_id = MEDAL_GODS_WRATH
- icon = "godswrath"
+ icon_state = "godswrath"
/datum/award/achievement/misc/earthquake_victim
name = "A Nasty Fall"
desc = "...And the earth opened its mouth and swallowed them and their station- all the HOP's men and all their possessions."
database_id = MEDAL_EARTHQUAKE_VICTIM
- icon = "earthquake"
+ icon_state = "earthquake"
/datum/award/achievement/misc/debt_extinguished
name = "Outdebted"
desc = "I've paid my dues, shift after shift... I've done my sentence but commited no griff..."
database_id = MEDAL_DEBT_EXTINGUISHED
- icon = "outdebted"
+ icon_state = "outdebted"
diff --git a/code/datums/achievements/skill_achievements.dm b/code/datums/achievements/skill_achievements.dm
index 6384b1b3db4..7e2f3f1a247 100644
--- a/code/datums/achievements/skill_achievements.dm
+++ b/code/datums/achievements/skill_achievements.dm
@@ -5,10 +5,10 @@
name = "Legendary miner"
desc = "No mere rock can stop me!"
database_id = MEDAL_LEGENDARY_MINER
- icon = "mining"
+ icon_state = "mining"
/datum/award/achievement/skill/legendary_fisher
name = "Legendary fisher"
desc = "Give a spaceman a fish and you feed him for a while; teach a spaceman to fish and you feed him until the shuttle arrives."
database_id = MEDAL_LEGENDARY_FISHER
- icon = "fishing_hat"
+ icon_state = "fishing_hat"
diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm
index 75c9cf59aeb..39e69ba9fa8 100644
--- a/code/datums/actions/action.dm
+++ b/code/datums/actions/action.dm
@@ -46,6 +46,10 @@
var/overlay_icon = 'icons/mob/actions/backgrounds.dmi'
/// This is the icon state for any FOREGROUND overlay icons on the button (such as borders)
var/overlay_icon_state
+
+ /// full key we are bound to
+ var/full_key
+
/// Toggles whether this action is usable or not
var/action_disabled = FALSE
@@ -110,6 +114,7 @@
RegisterSignals(owner, list(SIGNAL_ADDTRAIT(TRAIT_MAGICALLY_PHASED), SIGNAL_REMOVETRAIT(TRAIT_MAGICALLY_PHASED)), PROC_REF(update_status_on_signal))
if(owner_has_control)
+ RegisterSignal(grant_to, COMSIG_MOB_KEYDOWN, PROC_REF(keydown), override = TRUE)
GiveAction(grant_to)
/// Remove the passed mob from being owner of our action
@@ -122,6 +127,7 @@
HideFrom(hud.mymob)
LAZYREMOVE(remove_from?.actions, src) // We aren't always properly inserted into the viewers list, gotta make sure that action's cleared
viewers = list()
+ UnregisterSignal(remove_from, COMSIG_MOB_KEYDOWN)
if(isnull(owner))
return
@@ -312,6 +318,7 @@
* force - whether an update is forced regardless of existing status
*/
/datum/action/proc/update_button_status(atom/movable/screen/movable/action_button/current_button, force = FALSE)
+ current_button.update_keybind_maptext(full_key)
if(IsAvailable())
current_button.color = rgb(255,255,255,255)
else
@@ -411,3 +418,14 @@
/// Checks if our action is actively selected. Used for selecting icons primarily.
/datum/action/proc/is_action_active(atom/movable/screen/movable/action_button/current_button)
return FALSE
+
+/datum/action/proc/keydown(mob/source, key, client/client, full_key)
+ SIGNAL_HANDLER
+ if(isnull(full_key) || full_key != src.full_key)
+ return
+ if(istype(source))
+ if(source.next_click > world.time)
+ return
+ else
+ source.next_click = world.time + CLICK_CD_RANGE
+ INVOKE_ASYNC(src, PROC_REF(Trigger))
diff --git a/code/datums/actions/mobs/assume_form.dm b/code/datums/actions/mobs/assume_form.dm
index a335d0e745d..03a1a38d3c8 100644
--- a/code/datums/actions/mobs/assume_form.dm
+++ b/code/datums/actions/mobs/assume_form.dm
@@ -64,7 +64,7 @@
// important: do this at the very end because we might have SIGNAL_ADDTRAIT for this on the mob that's dependent on the above logic
SEND_SIGNAL(owner, COMSIG_ACTION_DISGUISED_APPEARANCE, target_atom)
- ADD_TRAIT(owner, TRAIT_DISGUISED, REF(src))
+ ADD_TRAIT(owner, TRAIT_DISGUISED, ACTION_TRAIT)
/// Resets the appearances of the mob to the default.
/datum/action/cooldown/mob_cooldown/assume_form/proc/reset_appearances()
@@ -85,4 +85,4 @@
owner.cut_overlays()
// important: do this very end because we might have SIGNAL_REMOVETRAIT for this on the mob that's dependent on the above logic
- REMOVE_TRAIT(owner, TRAIT_DISGUISED, REF(src))
+ REMOVE_TRAIT(owner, TRAIT_DISGUISED, ACTION_TRAIT)
diff --git a/code/datums/actions/mobs/lava_swoop.dm b/code/datums/actions/mobs/lava_swoop.dm
index b86a710fbf2..a6c8282fd10 100644
--- a/code/datums/actions/mobs/lava_swoop.dm
+++ b/code/datums/actions/mobs/lava_swoop.dm
@@ -14,11 +14,11 @@
/datum/action/cooldown/mob_cooldown/lava_swoop/Grant(mob/M)
. = ..()
- M.add_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_NOFIRE), REF(src))
+ M.add_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_NOFIRE), ACTION_TRAIT)
/datum/action/cooldown/mob_cooldown/lava_swoop/Remove(mob/M)
. = ..()
- M.remove_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_NOFIRE), REF(src))
+ M.remove_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_NOFIRE), ACTION_TRAIT)
/datum/action/cooldown/mob_cooldown/lava_swoop/Activate(atom/target_atom)
disable_cooldown_actions()
diff --git a/code/datums/actions/mobs/sign_language.dm b/code/datums/actions/mobs/sign_language.dm
index da375fd1f85..20c1157f326 100644
--- a/code/datums/actions/mobs/sign_language.dm
+++ b/code/datums/actions/mobs/sign_language.dm
@@ -42,17 +42,17 @@
SIGNAL_ADDTRAIT(TRAIT_MUTE),
SIGNAL_REMOVETRAIT(TRAIT_MUTE)
))
- REMOVE_TRAIT(grant_to, TRAIT_SIGN_LANG, TRAIT_GENERIC)
+ REMOVE_TRAIT(grant_to, TRAIT_SIGN_LANG, ACTION_TRAIT)
/datum/action/innate/sign_language/Activate()
active = TRUE
- ADD_TRAIT(owner, TRAIT_SIGN_LANG, TRAIT_GENERIC)
+ ADD_TRAIT(owner, TRAIT_SIGN_LANG, ACTION_TRAIT)
to_chat(owner, span_green("You are now communicating with sign language."))
build_all_button_icons(UPDATE_BUTTON_BACKGROUND)
/datum/action/innate/sign_language/Deactivate()
active = FALSE
- REMOVE_TRAIT(owner, TRAIT_SIGN_LANG, TRAIT_GENERIC)
+ REMOVE_TRAIT(owner, TRAIT_SIGN_LANG, ACTION_TRAIT)
to_chat(owner, span_green("You have stopped using sign language."))
build_all_button_icons(UPDATE_BUTTON_BACKGROUND)
diff --git a/code/datums/actions/mobs/sneak.dm b/code/datums/actions/mobs/sneak.dm
index 738bb7b70cf..521181fa19b 100644
--- a/code/datums/actions/mobs/sneak.dm
+++ b/code/datums/actions/mobs/sneak.dm
@@ -16,7 +16,7 @@
/datum/action/cooldown/mob_cooldown/sneak/Remove(mob/living/remove_from)
if(HAS_TRAIT(remove_from, TRAIT_SNEAK))
remove_from.alpha = initial(remove_from.alpha)
- REMOVE_TRAIT(remove_from, TRAIT_SNEAK, name)
+ REMOVE_TRAIT(remove_from, TRAIT_SNEAK, ACTION_TRAIT)
return ..()
@@ -26,11 +26,11 @@
// Otherwise we get permanent invisbility exploits.
animate(owner, alpha = initial(owner.alpha), time = animation_time)
owner.balloon_alert(owner, "you reveal yourself")
- REMOVE_TRAIT(owner, TRAIT_SNEAK, name)
+ REMOVE_TRAIT(owner, TRAIT_SNEAK, ACTION_TRAIT)
else
animate(owner, alpha = sneak_alpha, time = animation_time)
owner.balloon_alert(owner, "you blend into the environment")
- ADD_TRAIT(owner, TRAIT_SNEAK, name)
+ ADD_TRAIT(owner, TRAIT_SNEAK, ACTION_TRAIT)
return TRUE
diff --git a/code/datums/ai/hunting_behavior/hunting_mouse.dm b/code/datums/ai/hunting_behavior/hunting_mouse.dm
index d4160f826dd..d0e7161fd2d 100644
--- a/code/datums/ai/hunting_behavior/hunting_mouse.dm
+++ b/code/datums/ai/hunting_behavior/hunting_mouse.dm
@@ -11,7 +11,7 @@
finding_behavior = /datum/ai_behavior/find_hunt_target/mouse_cable
hunt_targets = list(/obj/structure/cable)
hunt_range = 0 // Only look below us
- hunt_chance = 5
+ hunt_chance = 1
// When looking for a cable, we can only bite things we can reach.
/datum/ai_behavior/find_hunt_target/mouse_cable
diff --git a/code/datums/ai/objects/vending_machines/vending_machine_controller.dm b/code/datums/ai/objects/vending_machines/vending_machine_controller.dm
index cd779b7d691..50523db946c 100644
--- a/code/datums/ai/objects/vending_machines/vending_machine_controller.dm
+++ b/code/datums/ai/objects/vending_machines/vending_machine_controller.dm
@@ -14,7 +14,7 @@
return AI_CONTROLLER_INCOMPATIBLE
var/obj/machinery/vending/vendor_pawn = new_pawn
vendor_pawn.tiltable = FALSE //Not manually tiltable by hitting it anymore. We are now aggressively doing it ourselves.
- vendor_pawn.AddElement(/datum/element/waddling)
+ vendor_pawn.AddElementTrait(TRAIT_WADDLING, REF(src), /datum/element/waddling)
vendor_pawn.AddElement(/datum/element/footstep, FOOTSTEP_OBJ_MACHINE, 1, -6, sound_vary = TRUE)
vendor_pawn.squish_damage = 15
return ..() //Run parent at end
@@ -22,7 +22,7 @@
/datum/ai_controller/vending_machine/UnpossessPawn(destroy)
var/obj/machinery/vending/vendor_pawn = pawn
vendor_pawn.tiltable = TRUE
- vendor_pawn.RemoveElement(/datum/element/waddling)
+ REMOVE_TRAIT(vendor_pawn, TRAIT_WADDLING, REF(src))
vendor_pawn.squish_damage = initial(vendor_pawn.squish_damage)
RemoveElement(/datum/element/footstep, FOOTSTEP_OBJ_MACHINE, 1, -6, sound_vary = TRUE)
return ..() //Run parent at end
diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm
index 9829dfc3f52..b4406857ac1 100644
--- a/code/datums/components/chasm.dm
+++ b/code/datums/components/chasm.dm
@@ -109,6 +109,9 @@
return CHASM_NOT_DROPPING
if(dropped_thing.throwing || (dropped_thing.movement_type & MOVETYPES_NOT_TOUCHING_GROUND))
return CHASM_REGISTER_SIGNALS
+ for(var/atom/thing_to_check as anything in parent)
+ if(HAS_TRAIT(thing_to_check, TRAIT_CHASM_STOPPER))
+ return CHASM_NOT_DROPPING
//Flies right over the chasm
if(ismob(dropped_thing))
diff --git a/code/datums/components/jetpack.dm b/code/datums/components/jetpack.dm
index 3e0fd28ed80..437660abc82 100644
--- a/code/datums/components/jetpack.dm
+++ b/code/datums/components/jetpack.dm
@@ -116,7 +116,7 @@
return
if(user.throwing)//You don't must use jet if you thrown
return
- if(length(user.client.keys_held & user.client.movement_keys))//You use jet when press keys. yes.
+ if(user.client.intended_direction)//You use jet when press keys. yes.
thrust()
/datum/component/jetpack/proc/pre_move_react(mob/user)
diff --git a/code/datums/components/marionette.dm b/code/datums/components/marionette.dm
new file mode 100644
index 00000000000..a2f58031768
--- /dev/null
+++ b/code/datums/components/marionette.dm
@@ -0,0 +1,77 @@
+/**
+ * Marionette component
+ *
+ * Upon being grabbed, we will align the direction of the parent with the direction of the grabber when they rotate.
+ * While grabbed, will also speak out whatever the original person says
+ */
+/datum/component/marionette
+ ///Reference to the mob that is grabbing us, which we hook signals to for marionette stuff.
+ var/mob/grabber
+
+/datum/component/marionette/Destroy()
+ if(grabber)
+ UnregisterSignal(grabber, list(COMSIG_MOVABLE_KEYBIND_FACE_DIR, COMSIG_MOB_SAY, COMSIG_QDELETING))
+ grabber = null
+ return ..()
+
+/datum/component/marionette/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_LIVING_TRYING_TO_PULL, PROC_REF(on_pull))
+ RegisterSignal(parent, COMSIG_ATOM_NO_LONGER_PULLED, PROC_REF(on_stop_pull))
+
+/datum/component/marionette/UnregisterFromParent()
+ UnregisterSignal(parent, list(
+ COMSIG_LIVING_TRYING_TO_PULL,
+ COMSIG_ATOM_NO_LONGER_PULLED,
+ ))
+ return ..()
+
+///Called when something starts pulling us, we now listen in to that thing for rotation.
+/datum/component/marionette/proc/on_pull(atom/movable/source, atom/movable/puller, force)
+ SIGNAL_HANDLER
+
+ if(!puller)
+ return
+ grabber = puller
+ RegisterSignal(grabber, COMSIG_MOVABLE_KEYBIND_FACE_DIR, PROC_REF(on_puller_turn))
+ RegisterSignal(grabber, COMSIG_MOB_SAY, PROC_REF(on_puller_speech))
+ RegisterSignal(grabber, COMSIG_QDELETING, PROC_REF(on_puller_qdel))
+
+///Stopped pulling, we clear out signals and references.
+/datum/component/marionette/proc/on_stop_pull(datum/source, atom/movable/was_pulling)
+ SIGNAL_HANDLER
+ if(grabber)
+ UnregisterSignal(grabber, list(COMSIG_MOVABLE_KEYBIND_FACE_DIR, COMSIG_MOB_SAY, COMSIG_QDELETING))
+ grabber = null
+
+///Callled when the person grabbin us turns, we rotate to match their direction.
+/datum/component/marionette/proc/on_puller_turn(mob/living/source, direction)
+ SIGNAL_HANDLER
+ var/atom/movable/parent_movable = parent
+ parent_movable.setDir(direction)
+
+///Called when the person grabbing us speaks, we lower their volume to 1 tile and speak what they said through us.
+/datum/component/marionette/proc/on_puller_speech(datum/source, list/speech_args)
+ SIGNAL_HANDLER
+
+ if(HAS_TRAIT(grabber, TRAIT_SIGN_LANG))
+ return
+
+ var/message = speech_args[SPEECH_MESSAGE]
+ var/list/spans = speech_args[SPEECH_SPANS]
+ var/language = speech_args[SPEECH_LANGUAGE]
+ var/saymode = speech_args[SPEECH_SAYMODE]
+ var/atom/movable/movable_parent = parent
+ movable_parent.say(
+ message = message,
+ spans = spans.Copy(),
+ language = language,
+ forced = "[source]'s marionette",
+ saymode = saymode,
+ )
+ speech_args[SPEECH_RANGE] = WHISPER_RANGE
+
+///Called when our puller is somehow deleted, we simply clear the reference to them.
+/datum/component/marionette/proc/on_puller_qdel()
+ SIGNAL_HANDLER
+
+ grabber = null
diff --git a/code/datums/components/material/material_container.dm b/code/datums/components/material/material_container.dm
index b69ae91825e..69f67d46df3 100644
--- a/code/datums/components/material/material_container.dm
+++ b/code/datums/components/material/material_container.dm
@@ -275,10 +275,9 @@
var/inserted = 0
//All messages to be displayed to chat
var/list/chat_msgs = list()
-
//differs from held_item when using TK
var/active_held = user.get_active_held_item()
-
+ //storage items to retrive items from
var/static/list/storage_items
if(isnull(storage_items))
storage_items = list(
@@ -288,7 +287,7 @@
)
//1st iteration consumes all items that do not have contents inside
- //2nd iteration consumes items who do have contents inside(but they were consumed in the 1st iteration si its empty now)
+ //2nd iteration consumes items who do have contents inside(but they were consumed in the 1st iteration so its empty now)
for(var/i in 1 to 2)
//no point inserting more items
if(inserted == MATERIAL_INSERT_ITEM_NO_SPACE)
@@ -311,15 +310,11 @@
//can't allow abstract, hologram items
if((target_item.item_flags & ABSTRACT) || (target_item.flags_1 & HOLOGRAM_1))
continue
- //untouchable, move it out the way, code copied from recycler
- if(target_item.resistance_flags & INDESTRUCTIBLE)
- target_item.forceMove(get_turf(parent))
- continue
//user defined conditions
if(SEND_SIGNAL(src, COMSIG_MATCONTAINER_PRE_USER_INSERT, target_item, user) & MATCONTAINER_BLOCK_INSERT)
continue
- //item is either not allowed for redemption, not in the allowed types
- if((target_item.item_flags & NO_MAT_REDEMPTION) || (allowed_item_typecache && !is_type_in_typecache(target_item, allowed_item_typecache)))
+ //item is either indestructible, not allowed for redemption or not in the allowed types
+ if((target_item.resistance_flags & INDESTRUCTIBLE) || (target_item.item_flags & NO_MAT_REDEMPTION) || (allowed_item_typecache && !is_type_in_typecache(target_item, allowed_item_typecache)))
if(!(mat_container_flags & MATCONTAINER_SILENT) && i == 1) //count only child items the 1st time around
var/list/status_data = chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] || list()
var/list/item_data = status_data[target_item.name] || list()
@@ -327,6 +322,10 @@
status_data[target_item.name] = item_data
chat_msgs["[MATERIAL_INSERT_ITEM_FAILURE]"] = status_data
+ if(target_item.resistance_flags & INDESTRUCTIBLE)
+ if(i == 1 && target_item != active_held) //move it out of any storage medium its in so it doesn't get consumed with its parent, but only if that storage medium is not our hand
+ target_item.forceMove(get_turf(context))
+ continue
//storage items usually come here but we make the exception only on the 1st iteration
//this is so players can insert items from their bags into machines for convinience
if(!is_type_in_list(target_item, storage_items))
diff --git a/code/datums/components/overlay_lighting.dm b/code/datums/components/overlay_lighting.dm
index 180c65b2239..efff82b703a 100644
--- a/code/datums/components/overlay_lighting.dm
+++ b/code/datums/components/overlay_lighting.dm
@@ -78,8 +78,8 @@
return COMPONENT_INCOMPATIBLE
var/atom/movable/movable_parent = parent
- if(movable_parent.light_system != MOVABLE_LIGHT && movable_parent.light_system != MOVABLE_LIGHT_DIRECTIONAL && movable_parent.light_system != MOVABLE_LIGHT_BEAM)
- stack_trace("[type] added to [parent], with [movable_parent.light_system] value for the light_system var. Use [MOVABLE_LIGHT], [MOVABLE_LIGHT_DIRECTIONAL] or [MOVABLE_LIGHT_BEAM] instead.")
+ if(movable_parent.light_system != OVERLAY_LIGHT && movable_parent.light_system != OVERLAY_LIGHT_DIRECTIONAL && movable_parent.light_system != OVERLAY_LIGHT_BEAM)
+ stack_trace("[type] added to [parent], with [movable_parent.light_system] value for the light_system var. Use [OVERLAY_LIGHT], [OVERLAY_LIGHT_DIRECTIONAL] or [OVERLAY_LIGHT_BEAM] instead.")
return COMPONENT_INCOMPATIBLE
. = ..()
diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm
index 4bcfa8b01c9..7c55579c999 100644
--- a/code/datums/components/rotation.dm
+++ b/code/datums/components/rotation.dm
@@ -1,6 +1,6 @@
/datum/component/simple_rotation
/// Additional stuff to do after rotation
- var/datum/callback/AfterRotation
+ var/datum/callback/post_rotation
/// Rotation flags for special behavior
var/rotation_flags = NONE
@@ -9,9 +9,9 @@
*
* args:
* * rotation_flags (optional) Bitflags that determine behavior for rotation (defined at the top of this file)
- * * AfterRotation (optional) Callback proc that is used after the object is rotated (sound effects, balloon alerts, etc.)
-**/
-/datum/component/simple_rotation/Initialize(rotation_flags = NONE, AfterRotation)
+ * * post_rotation (optional) Callback proc that is used after the object is rotated (sound effects, balloon alerts, etc.)
+ **/
+/datum/component/simple_rotation/Initialize(rotation_flags = NONE, post_rotation)
if(!ismovable(parent))
return COMPONENT_INCOMPATIBLE
@@ -19,19 +19,13 @@
source.flags_1 |= HAS_CONTEXTUAL_SCREENTIPS_1
src.rotation_flags = rotation_flags
- src.AfterRotation = AfterRotation || CALLBACK(src, PROC_REF(DefaultAfterRotation))
+ src.post_rotation = post_rotation || CALLBACK(src, PROC_REF(default_post_rotation))
-/datum/component/simple_rotation/proc/AddSignals()
- RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(RotateLeft))
- RegisterSignal(parent, COMSIG_CLICK_ALT_SECONDARY, PROC_REF(RotateRight))
+/datum/component/simple_rotation/RegisterWithParent()
+ RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(rotate_left))
+ RegisterSignal(parent, COMSIG_CLICK_ALT_SECONDARY, PROC_REF(rotate_right))
RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(ExamineMessage))
RegisterSignal(parent, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM, PROC_REF(on_requesting_context_from_item))
-
-/datum/component/simple_rotation/proc/RemoveSignals()
- UnregisterSignal(parent, list(COMSIG_CLICK_ALT, COMSIG_CLICK_ALT_SECONDARY, COMSIG_ATOM_EXAMINE, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM))
-
-/datum/component/simple_rotation/RegisterWithParent()
- AddSignals()
return ..()
/datum/component/simple_rotation/PostTransfer()
@@ -41,15 +35,16 @@
return COMPONENT_NOTRANSFER
/datum/component/simple_rotation/UnregisterFromParent()
- RemoveSignals()
+ UnregisterSignal(parent, list(
+ COMSIG_CLICK_ALT,
+ COMSIG_CLICK_ALT_SECONDARY,
+ COMSIG_ATOM_EXAMINE,
+ COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM,
+ ))
return ..()
/datum/component/simple_rotation/Destroy()
- AfterRotation = null
- //Signals + verbs removed via UnRegister
- return ..()
-
-/datum/component/simple_rotation/ClearFromParent()
+ post_rotation = null
return ..()
/datum/component/simple_rotation/proc/ExamineMessage(datum/source, mob/user, list/examine_list)
@@ -57,15 +52,15 @@
if(rotation_flags & ROTATION_REQUIRE_WRENCH)
examine_list += span_notice("This requires a wrench to be rotated.")
-/datum/component/simple_rotation/proc/RotateRight(datum/source, mob/user)
+/datum/component/simple_rotation/proc/rotate_right(datum/source, mob/user)
SIGNAL_HANDLER
- Rotate(user, ROTATION_CLOCKWISE)
+ rotate(user, ROTATION_CLOCKWISE)
-/datum/component/simple_rotation/proc/RotateLeft(datum/source, mob/user)
+/datum/component/simple_rotation/proc/rotate_left(datum/source, mob/user)
SIGNAL_HANDLER
- Rotate(user, ROTATION_COUNTERCLOCKWISE)
+ rotate(user, ROTATION_COUNTERCLOCKWISE)
-/datum/component/simple_rotation/proc/Rotate(mob/user, degrees)
+/datum/component/simple_rotation/proc/rotate(mob/user, degrees)
if(QDELETED(user))
CRASH("[src] is being rotated [user ? "with a qdeleting" : "without a"] user")
if(!istype(user))
@@ -73,7 +68,7 @@
if(!isnum(degrees))
CRASH("[src] is being rotated without providing the amount of degrees needed")
- if(!CanBeRotated(user, degrees) || !CanUserRotate(user, degrees))
+ if(!can_be_rotated(user, degrees) || !can_user_rotate(user, degrees))
return
var/obj/rotated_obj = parent
@@ -81,16 +76,16 @@
if(rotation_flags & ROTATION_REQUIRE_WRENCH)
playsound(rotated_obj, 'sound/items/ratchet.ogg', 50, TRUE)
- AfterRotation.Invoke(user, degrees)
+ post_rotation.Invoke(user, degrees)
-/datum/component/simple_rotation/proc/CanUserRotate(mob/user, degrees)
+/datum/component/simple_rotation/proc/can_user_rotate(mob/user, degrees)
if(isliving(user) && user.can_perform_action(parent, NEED_DEXTERITY))
return TRUE
if((rotation_flags & ROTATION_GHOSTS_ALLOWED) && isobserver(user) && CONFIG_GET(flag/ghost_interaction))
return TRUE
return FALSE
-/datum/component/simple_rotation/proc/CanBeRotated(mob/user, degrees, silent=FALSE)
+/datum/component/simple_rotation/proc/can_be_rotated(mob/user, degrees, silent=FALSE)
var/obj/rotated_obj = parent
if(!rotated_obj.Adjacent(user))
silent = TRUE
@@ -120,7 +115,7 @@
return FALSE
return TRUE
-/datum/component/simple_rotation/proc/DefaultAfterRotation(mob/user, degrees)
+/datum/component/simple_rotation/proc/default_post_rotation(mob/user, degrees)
return
// maybe we don't need the item context proc but instead the hand one? since we don't need to check held_item
@@ -129,10 +124,10 @@
var/rotation_screentip = FALSE
- if(CanBeRotated(user, ROTATION_CLOCKWISE, silent=TRUE))
+ if(can_be_rotated(user, ROTATION_CLOCKWISE, silent=TRUE))
context[SCREENTIP_CONTEXT_ALT_LMB] = "Rotate left"
rotation_screentip = TRUE
- if(CanBeRotated(user, ROTATION_COUNTERCLOCKWISE, silent=TRUE))
+ if(can_be_rotated(user, ROTATION_COUNTERCLOCKWISE, silent=TRUE))
context[SCREENTIP_CONTEXT_ALT_RMB] = "Rotate right"
rotation_screentip = TRUE
diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm
index b413b6f8e51..531ff9e9962 100644
--- a/code/datums/components/scope.dm
+++ b/code/datums/components/scope.dm
@@ -60,7 +60,7 @@
stop_zooming(user_mob)
return
tracker.calculate_params()
- if(!length(user_client.keys_held & user_client.movement_keys))
+ if(!user_client.intended_direction)
user_mob.face_atom(tracker.given_turf)
animate(user_client, world.tick_lag, pixel_x = tracker.given_x, pixel_y = tracker.given_y)
diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm
index e8e54926949..e0f131258e7 100644
--- a/code/datums/components/tactical.dm
+++ b/code/datums/components/tactical.dm
@@ -1,5 +1,8 @@
+///A simple component that replacess the user's appearance with that of the parent item when equipped.
/datum/component/tactical
+ ///The allowed slot(s) for the effect.
var/allowed_slot
+ ///A cached of where the item is currently equipped.
var/current_slot
/datum/component/tactical/Initialize(allowed_slot)
@@ -11,50 +14,63 @@
/datum/component/tactical/RegisterWithParent()
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(modify))
RegisterSignal(parent, COMSIG_ITEM_DROPPED, PROC_REF(unmodify))
+ RegisterSignal(parent, COMSIG_ATOM_UPDATED_ICON, PROC_REF(tactical_update))
+ var/obj/item/item = parent
+ if(ismob(item.loc))
+ var/mob/holder = item.loc
+ modify(item, holder, holder.get_slot_by_item(item))
/datum/component/tactical/UnregisterFromParent()
- UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED))
+ UnregisterSignal(parent, list(
+ COMSIG_ITEM_EQUIPPED,
+ COMSIG_ITEM_DROPPED,
+ COMSIG_ATOM_UPDATED_ICON,
+ ))
unmodify()
/datum/component/tactical/Destroy()
unmodify()
return ..()
-/datum/component/tactical/proc/on_z_move(datum/source)
- SIGNAL_HANDLER
- var/obj/item/master = parent
- if(!ismob(master.loc))
- return
- var/old_slot = current_slot
- unmodify(master, master.loc)
- modify(master, master.loc, old_slot)
-
/datum/component/tactical/proc/modify(obj/item/source, mob/user, slot)
SIGNAL_HANDLER
if(allowed_slot && !(slot & allowed_slot))
- unmodify()
+ if(current_slot)
+ unmodify(source, user)
return
+ if(current_slot) //If the current slot is set, this means the icon was updated or the item changed z-levels.
+ user.remove_alt_appearance("sneaking_mission[REF(src)]")
+ else
+ RegisterSignal(parent, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(tactical_update))
+
current_slot = slot
var/obj/item/master = parent
- var/image/I = image(icon = master.icon, icon_state = master.icon_state, loc = user)
- I.copy_overlays(master)
- I.override = TRUE
- source.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission", I)
- I.layer = ABOVE_MOB_LAYER
- RegisterSignal(parent, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(on_z_move))
+ var/image/image = image(master, loc = user)
+ image.copy_overlays(master)
+ image.override = TRUE
+ image.layer = ABOVE_MOB_LAYER
+ image.plane = FLOAT_PLANE
+ source.add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/everyone, "sneaking_mission[REF(src)]", image)
/datum/component/tactical/proc/unmodify(obj/item/source, mob/user)
SIGNAL_HANDLER
- var/obj/item/master = source || parent
+ var/obj/item/master = parent
if(!user)
if(!ismob(master.loc))
return
user = master.loc
- user.remove_alt_appearance("sneaking_mission")
+ user.remove_alt_appearance("sneaking_mission[REF(src)]")
current_slot = null
UnregisterSignal(parent, COMSIG_MOVABLE_Z_CHANGED)
+
+/datum/component/tactical/proc/tactical_update(datum/source)
+ SIGNAL_HANDLER
+ var/obj/item/master = parent
+ if(!ismob(master.loc))
+ return
+ modify(master, master.loc, current_slot)
diff --git a/code/datums/components/tameable.dm b/code/datums/components/tameable.dm
index 3da6d616149..67325b489d3 100644
--- a/code/datums/components/tameable.dm
+++ b/code/datums/components/tameable.dm
@@ -70,18 +70,28 @@
return living_parent.faction.Find(REF(potential_friend))
///Ran once taming succeeds
-/datum/component/tameable/proc/on_tame(datum/source, mob/living/tamer, atom/food, inform_tamer = FALSE)
+/datum/component/tameable/proc/on_tame(atom/source, mob/living/tamer, atom/food, inform_tamer = FALSE)
SIGNAL_HANDLER
after_tame?.Invoke(tamer, food)//Run custom behavior if needed
if(isliving(parent) && isliving(tamer))
- var/mob/living/tamed = parent
- INVOKE_ASYNC(tamed, TYPE_PROC_REF(/mob/living, befriend), tamer)
+ INVOKE_ASYNC(source, TYPE_PROC_REF(/mob/living, befriend), tamer)
if(inform_tamer)
- var/atom/atom_parent = source
- atom_parent.balloon_alert(tamer, "tamed")
+ source.balloon_alert(tamer, "tamed")
+ if(HAS_TRAIT(tamer, TRAIT_SETTLER))
+ INVOKE_ASYNC(src, PROC_REF(rename_pet), source, tamer)
if(unique)
qdel(src)
else
current_tame_chance = tame_chance
+
+/datum/component/tameable/proc/rename_pet(mob/living/animal, mob/living/tamer)
+ var/chosen_name = sanitize_name(tgui_input_text(tamer, "Choose your pet's name!", "Name pet", animal.name, MAX_NAME_LEN), allow_numbers = TRUE)
+ if(QDELETED(animal) || chosen_name == animal.name)
+ return
+ if(!chosen_name)
+ to_chat(tamer, span_warning("Please enter a valid name."))
+ rename_pet(animal, tamer)
+ return
+ animal.fully_replace_character_name(animal.name, chosen_name)
diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm
index e418988c058..e4e6e611ebc 100644
--- a/code/datums/components/uplink.dm
+++ b/code/datums/components/uplink.dm
@@ -113,15 +113,6 @@
new /obj/effect/decal/cleanable/ash(get_turf(uplink_item))
qdel(uplink_item)
-/// Adds telecrystals to the uplink. It is bad practice to use this outside of the component itself.
-/datum/component/uplink/proc/add_telecrystals(telecrystals_added)
- set_telecrystals(uplink_handler.telecrystals + telecrystals_added)
-
-/// Sets the telecrystals of the uplink. It is bad practice to use this outside of the component itself.
-/datum/component/uplink/proc/set_telecrystals(new_telecrystal_amount)
- uplink_handler.telecrystals = new_telecrystal_amount
- uplink_handler.on_update()
-
/datum/component/uplink/InheritComponent(datum/component/uplink/uplink)
lockable |= uplink.lockable
active |= uplink.active
@@ -135,7 +126,7 @@
if(!silent)
to_chat(user, span_notice("You slot [telecrystals] into [parent] and charge its internal uplink."))
var/amt = telecrystals.amount
- uplink_handler.telecrystals += amt
+ uplink_handler.add_telecrystals(amt)
telecrystals.use(amt)
log_uplink("[key_name(user)] loaded [amt] telecrystals into [parent]'s uplink")
diff --git a/code/datums/elements/ELEMENT_TEMPLATE.md b/code/datums/elements/ELEMENT_TEMPLATE.md
index 8dedfbaef43..4bc1f72f2dc 100644
--- a/code/datums/elements/ELEMENT_TEMPLATE.md
+++ b/code/datums/elements/ELEMENT_TEMPLATE.md
@@ -5,8 +5,8 @@ See _element.dm for detailed explanations
```dm
/datum/element/myelement
- element_flags = ELEMENT_BESPOKE | ELEMENT_COMPLEX_DETACH | ELEMENT_DETACH_ON_HOST_DESTROY | ELEMENT_NOTAREALFLAG // code/__DEFINES/dcs/flags.dm
- //argument_hash_start_idx = 2 // Use with ELEMENT_BESPOKE
+ element_flags = ELEMENT_BESPOKE | ELEMENT_COMPLEX_DETACH | ELEMENT_DETACH_ON_HOST_DESTROY | ELEMENT_NOTAREALFLAG // code/__DEFINES/dcs/flags.dm
+ //argument_hash_start_idx = 2 // Use with ELEMENT_BESPOKE
var/list/myvar = list()
/datum/element/myelement/Attach(datum/target)
diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm
index bcafc83497c..b2e021ad2be 100644
--- a/code/datums/elements/_element.dm
+++ b/code/datums/elements/_element.dm
@@ -28,7 +28,7 @@
if(element_flags & ELEMENT_DETACH_ON_HOST_DESTROY)
RegisterSignal(target, COMSIG_QDELETING, PROC_REF(OnTargetDelete), override = TRUE)
-/datum/element/proc/OnTargetDelete(datum/source, force)
+/datum/element/proc/OnTargetDelete(datum/source)
SIGNAL_HANDLER
Detach(source)
@@ -75,3 +75,29 @@
ele.Detach(arglist(arguments))
else
ele.Detach(src)
+
+/**
+ * Used to manage (typically non_bespoke) elements with multiple sources through traits
+ * so we don't have to make them a components again.
+ * The element will be later removed once all trait sources are gone, there's no need of a
+ * "RemoveElementTrait" counterpart.
+ */
+/datum/proc/AddElementTrait(trait, source, datum/element/eletype, ...)
+ if(!ispath(eletype, /datum/element))
+ CRASH("AddElementTrait called, but [eletype] is not of a /datum/element path")
+ ADD_TRAIT(src, trait, source)
+ if(HAS_TRAIT_NOT_FROM(src, trait, source))
+ return
+ var/list/arguments = list(eletype)
+ /// 3 is the length of fixed args of this proc, any further one is passed down to AddElement.
+ if(length(args) > 3)
+ arguments += args.Copy(4)
+ /// We actually pass down a copy of the arguments since it's manipulated by the end of the proc.
+ _AddElement(arguments.Copy())
+ var/datum/ele = SSdcs.GetElement(arguments)
+ ele.RegisterSignal(src, SIGNAL_REMOVETRAIT(trait), TYPE_PROC_REF(/datum/element, _detach_on_trait_removed))
+
+/datum/element/proc/_detach_on_trait_removed(datum/source, trait)
+ SIGNAL_HANDLER
+ Detach(source)
+ UnregisterSignal(source, SIGNAL_REMOVETRAIT(trait))
diff --git a/code/datums/elements/light_eaten.dm b/code/datums/elements/light_eaten.dm
index 39550a99124..e3bcc079318 100644
--- a/code/datums/elements/light_eaten.dm
+++ b/code/datums/elements/light_eaten.dm
@@ -15,9 +15,9 @@
RegisterSignal(atom_target, COMSIG_ATOM_SET_LIGHT_ON, PROC_REF(block_light_on))
RegisterSignal(atom_target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
- /// Because the lighting system does not like movable lights getting set_light() called.
+ /// Because the lighting system does not like overlay lights getting set_light() called.
switch(atom_target.light_system)
- if(STATIC_LIGHT)
+ if(COMPLEX_LIGHT)
target.set_light(0, 0, null, l_on = FALSE)
else
target.set_light_power(0)
diff --git a/code/datums/elements/permanent_fire_overlay.dm b/code/datums/elements/permanent_fire_overlay.dm
new file mode 100644
index 00000000000..514d0f121a4
--- /dev/null
+++ b/code/datums/elements/permanent_fire_overlay.dm
@@ -0,0 +1,24 @@
+/// When applied to a mob, they will always have a fire overlay regardless of if they are *actually* on fire.
+/datum/element/perma_fire_overlay
+
+/datum/element/perma_fire_overlay/Attach(atom/target)
+ . = ..()
+ if(!isliving(target))
+ return ELEMENT_INCOMPATIBLE
+
+ RegisterSignal(target, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(add_fire_overlay))
+ target.update_appearance(UPDATE_OVERLAYS)
+
+/datum/element/perma_fire_overlay/Detach(atom/target)
+ . = ..()
+ UnregisterSignal(target, COMSIG_ATOM_UPDATE_OVERLAYS)
+ target.update_appearance(UPDATE_OVERLAYS)
+
+/datum/element/perma_fire_overlay/proc/add_fire_overlay(mob/living/source, list/overlays)
+ SIGNAL_HANDLER
+
+ var/mutable_appearance/created_overlay = source.get_fire_overlay(stacks = MAX_FIRE_STACKS, on_fire = TRUE)
+ if(isnull(created_overlay))
+ return
+
+ overlays |= created_overlay
diff --git a/code/datums/elements/squish_sound.dm b/code/datums/elements/squish_sound.dm
new file mode 100644
index 00000000000..a245bb48a73
--- /dev/null
+++ b/code/datums/elements/squish_sound.dm
@@ -0,0 +1,27 @@
+///Plays a sound when walked into, lower sounding if the person walking into it has light stepping.
+/datum/element/squish_sound
+ element_flags = ELEMENT_BESPOKE
+ argument_hash_start_idx = 2
+ ///The sound to play when something holding this element is entered.
+ var/sound_to_play
+
+/datum/element/squish_sound/Attach(
+ datum/target,
+ sound = 'sound/effects/footstep/gib_step.ogg',
+)
+ . = ..()
+ sound_to_play = sound
+ RegisterSignal(target, COMSIG_MOVABLE_CROSS, PROC_REF(on_cross))
+
+///Plays the set sound upon being entered, as long as the person walking into it can actually walk.
+/datum/element/squish_sound/proc/on_cross(atom/movable/source, atom/movable/crossed)
+ SIGNAL_HANDLER
+
+ if(!isliving(crossed) || (crossed.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) || crossed.throwing)
+ return
+ playsound(
+ source = source,
+ soundin = sound_to_play,
+ vol = HAS_TRAIT(crossed, TRAIT_LIGHT_STEP) ? 20 : 50,
+ vary = TRUE,
+ )
diff --git a/code/datums/elements/uplink_reimburse.dm b/code/datums/elements/uplink_reimburse.dm
index 3ff182ec231..73a2032fee1 100644
--- a/code/datums/elements/uplink_reimburse.dm
+++ b/code/datums/elements/uplink_reimburse.dm
@@ -22,7 +22,7 @@
RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
RegisterSignal(target, COMSIG_ITEM_ATTEMPT_TC_REIMBURSE, PROC_REF(reimburse))
RegisterSignal(target,COMSIG_TRAITOR_ITEM_USED(target.type), PROC_REF(used))
-
+
/datum/element/uplink_reimburse/Detach(datum/target)
UnregisterSignal(target, list(COMSIG_ATOM_EXAMINE, COMSIG_TRAITOR_ITEM_USED(target.type), COMSIG_ITEM_ATTEMPT_TC_REIMBURSE))
@@ -47,10 +47,11 @@
to_chat(user, span_notice("You tap [uplink_comp.uplink_handler] with [refund_item], and a moment after [refund_item] disappears in a puff of red smoke!"))
do_sparks(2, source = uplink_comp.uplink_handler)
- uplink_comp.add_telecrystals(refundable_tc)
+ uplink_comp.uplink_handler.add_telecrystals(refundable_tc)
qdel(refund_item)
+
/// If the item is used, it needs to no longer be refundable
/datum/element/uplink_reimburse/proc/used(datum/target)
SIGNAL_HANDLER
-
+
Detach(target)
diff --git a/code/datums/elements/waddling.dm b/code/datums/elements/waddling.dm
index c51a1759768..e63d0329bb6 100644
--- a/code/datums/elements/waddling.dm
+++ b/code/datums/elements/waddling.dm
@@ -4,6 +4,8 @@
. = ..()
if(!ismovable(target))
return ELEMENT_INCOMPATIBLE
+ if(!HAS_TRAIT(target, TRAIT_WADDLING))
+ stack_trace("[type] added to [target] without adding TRAIT_WADDLING first. Please use AddElementTrait instead.")
RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(Waddle))
/datum/element/waddling/Detach(datum/source)
diff --git a/code/datums/elements/window_smash.dm b/code/datums/elements/window_smash.dm
new file mode 100644
index 00000000000..fbe2674b86c
--- /dev/null
+++ b/code/datums/elements/window_smash.dm
@@ -0,0 +1,30 @@
+/**
+ * # Window Smashing
+ * An element you put on mobs to let them smash through walls on movement
+ * For example, throwing someone through a glass window
+ */
+/datum/element/window_smashing
+
+/datum/element/window_smashing/Attach(datum/target, duration = 1.5 SECONDS)
+ . = ..()
+ if(!isliving(target))
+ return ELEMENT_INCOMPATIBLE
+ var/mob/living/living_target = target
+ RegisterSignal(living_target, COMSIG_MOVABLE_MOVED, PROC_REF(flying_window_smash))
+ passwindow_on(target, TRAM_PASSENGER_TRAIT)
+ addtimer(CALLBACK(src, PROC_REF(Detach), living_target), duration)
+
+/// Smash any windows that the mob is flying through
+/datum/element/window_smashing/proc/flying_window_smash(atom/movable/flying_mob, atom/old_loc, direction)
+ SIGNAL_HANDLER
+ var/turf/target_turf = get_turf(flying_mob)
+ for(var/obj/structure/tram/tram_wall in target_turf)
+ tram_wall.smash_and_injure(flying_mob, old_loc, direction)
+
+ for(var/obj/structure/window/window in target_turf)
+ window.smash_and_injure(flying_mob, old_loc, direction)
+
+/datum/element/window_smashing/Detach(datum/source)
+ UnregisterSignal(source, COMSIG_MOVABLE_MOVED)
+ passwindow_off(source, TRAM_PASSENGER_TRAIT)
+ return ..()
diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm
index a277ec50544..9860bbff9a7 100644
--- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm
+++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_clothes.dm
@@ -150,6 +150,43 @@ NOVA EDIT END */
icon_file = 'icons/mob/inhands/clothing/masks_righthand.dmi'
json_config = 'code/datums/greyscale/json_configs/bandanaskull_inhands.json'
+/datum/greyscale_config/facescarf
+ name = "Facescarf"
+ icon_file = 'icons/obj/clothing/masks.dmi'
+ json_config = 'code/datums/greyscale/json_configs/facescarf.json'
+
+/datum/greyscale_config/facescarf/worn
+ name = "Facescarf (Worn)"
+ icon_file = 'icons/mob/clothing/mask.dmi'
+
+/datum/greyscale_config/facescarf/inhands_left
+ name = "Facescarf (Held, Left)"
+ icon_file = 'icons/mob/inhands/clothing/masks_lefthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/facescarf_inhands.json'
+
+/datum/greyscale_config/facescarf/inhands_right
+ name = "Facescarf (Held, Right)"
+ icon_file = 'icons/mob/inhands/clothing/masks_righthand.dmi'
+ json_config = 'code/datums/greyscale/json_configs/facescarf_inhands.json'
+
+/datum/greyscale_config/kitsune
+ name = "Kitsune mask"
+ icon_file = 'icons/obj/clothing/masks.dmi'
+ json_config = 'code/datums/greyscale/json_configs/kitsune.json'
+
+/datum/greyscale_config/kitsune/worn
+ name = "Kitsune mask (Worn)"
+ icon_file = 'icons/mob/clothing/mask.dmi'
+
+/datum/greyscale_config/rebellion_mask
+ name = "Rebellion mask"
+ icon_file = 'icons/obj/clothing/masks.dmi'
+ json_config = 'code/datums/greyscale/json_configs/rebellion_mask.json'
+
+/datum/greyscale_config/rebellion_mask/worn
+ name = "Rebellion mask (Worn)"
+ icon_file = 'icons/mob/clothing/mask.dmi'
+
//
// NECK
//
diff --git a/code/datums/greyscale/json_configs/facescarf.json b/code/datums/greyscale/json_configs/facescarf.json
new file mode 100644
index 00000000000..eadb07dd927
--- /dev/null
+++ b/code/datums/greyscale/json_configs/facescarf.json
@@ -0,0 +1,18 @@
+{
+ "facescarf": [
+ {
+ "type": "icon_state",
+ "icon_state": "facescarf",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ],
+ "facescarf_up": [
+ {
+ "type": "icon_state",
+ "icon_state": "facescarf_up",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/facescarf_inhands.json b/code/datums/greyscale/json_configs/facescarf_inhands.json
new file mode 100644
index 00000000000..eee4225a050
--- /dev/null
+++ b/code/datums/greyscale/json_configs/facescarf_inhands.json
@@ -0,0 +1,10 @@
+{
+ "greyscale_facescarf": [
+ {
+ "type": "icon_state",
+ "icon_state": "greyscale_bandana",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/kitsune.json b/code/datums/greyscale/json_configs/kitsune.json
new file mode 100644
index 00000000000..bee64183213
--- /dev/null
+++ b/code/datums/greyscale/json_configs/kitsune.json
@@ -0,0 +1,16 @@
+{
+ "kitsune": [
+ {
+ "type": "icon_state",
+ "icon_state": "kitsune_base",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ },
+ {
+ "type": "icon_state",
+ "icon_state": "kitsune_stripe",
+ "blend_mode": "overlay",
+ "color_ids": [ 2 ]
+ }
+ ]
+}
diff --git a/code/datums/greyscale/json_configs/rebellion_mask.json b/code/datums/greyscale/json_configs/rebellion_mask.json
new file mode 100644
index 00000000000..1c421b00b79
--- /dev/null
+++ b/code/datums/greyscale/json_configs/rebellion_mask.json
@@ -0,0 +1,10 @@
+{
+ "rebellion_mask": [
+ {
+ "type": "icon_state",
+ "icon_state": "rebellion_mask",
+ "blend_mode": "overlay",
+ "color_ids": [ 1 ]
+ }
+ ]
+}
diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm
index bee48a2bb49..b979c9cda0f 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -70,6 +70,9 @@
teleatom.balloon_alert(teleatom, "something holds you back!")
return FALSE
+ SEND_SIGNAL(teleatom, COMSIG_MOVABLE_TELEPORTED, destination, channel)
+ SEND_SIGNAL(destturf, COMSIG_ATOM_INTERCEPT_TELEPORTED, channel, curturf, destturf)
+
if(isobserver(teleatom))
teleatom.abstract_move(destturf)
return TRUE
@@ -85,7 +88,7 @@
teleatom.log_message("teleported from [loc_name(curturf)] to [loc_name(destturf)].", LOG_GAME, log_globally = FALSE)
M.cancel_camera()
- SEND_SIGNAL(teleatom, COMSIG_MOVABLE_POST_TELEPORT)
+ SEND_SIGNAL(teleatom, COMSIG_MOVABLE_POST_TELEPORT, destination, channel)
return TRUE
@@ -209,7 +212,4 @@
if(SEND_SIGNAL(destination_turf, COMSIG_ATOM_INTERCEPT_TELEPORTING, channel, origin_turf, destination_turf) & COMPONENT_BLOCK_TELEPORT)
return FALSE
- SEND_SIGNAL(teleported_atom, COMSIG_MOVABLE_TELEPORTED, destination, channel)
- SEND_SIGNAL(destination_turf, COMSIG_ATOM_INTERCEPT_TELEPORTED, channel, origin_turf, destination_turf)
-
return TRUE
diff --git a/code/datums/mapgen/Cavegens/IcemoonCaves.dm b/code/datums/mapgen/Cavegens/IcemoonCaves.dm
index 91348dd5c17..b477b16e116 100644
--- a/code/datums/mapgen/Cavegens/IcemoonCaves.dm
+++ b/code/datums/mapgen/Cavegens/IcemoonCaves.dm
@@ -2,7 +2,7 @@
weighted_open_turf_types = list(/turf/open/misc/asteroid/snow/icemoon = 19, /turf/open/misc/ice/icemoon = 1)
weighted_closed_turf_types = list(
/turf/closed/mineral/random/snow = 100,
- /turf/closed/mineral/gibtonite/ice/icemoon = 4,
+ //turf/closed/mineral/gibtonite/ice/icemoon = 4, // NOVA EDIT REMOVAL - Removes additional gibtonite call
)
diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm
index 0a9fea43f5f..66d092e886e 100644
--- a/code/datums/martial/krav_maga.dm
+++ b/code/datums/martial/krav_maga.dm
@@ -102,6 +102,8 @@
/datum/martial_art/krav_maga/proc/leg_sweep(mob/living/attacker, mob/living/defender)
if(defender.stat != CONSCIOUS || defender.IsParalyzed())
return MARTIAL_ATTACK_INVALID
+ if(HAS_TRAIT(attacker, TRAIT_PACIFISM))
+ return MARTIAL_ATTACK_INVALID // Does 5 damage, so we can't let pacifists leg sweep.
defender.visible_message(
span_warning("[attacker] leg sweeps [defender]!"),
span_userdanger("Your legs are sweeped by [attacker]!"),
@@ -134,6 +136,8 @@
return MARTIAL_ATTACK_SUCCESS
/datum/martial_art/krav_maga/proc/neck_chop(mob/living/attacker, mob/living/defender)
+ if(HAS_TRAIT(attacker, TRAIT_PACIFISM))
+ return MARTIAL_ATTACK_INVALID // Does 10 damage, so we can't let pacifists neck chop.
attacker.do_attack_animation(defender)
defender.visible_message(
span_warning("[attacker] karate chops [defender]'s neck!"),
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index a52d2724ca2..0dd7b6dd327 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -323,6 +323,37 @@
return ..()
return FALSE
+/obj/item/clothing/gloves/the_sleeping_carp
+ name = "carp gloves"
+ desc = "This gloves are capable of making people use The Sleeping Carp."
+ icon_state = "black"
+ greyscale_colors = "#000000"
+ cold_protection = HANDS
+ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
+ heat_protection = HANDS
+ max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
+ resistance_flags = NONE
+ var/datum/martial_art/the_sleeping_carp/style
+
+/obj/item/clothing/gloves/the_sleeping_carp/Initialize(mapload)
+ . = ..()
+ style = new()
+ style.allow_temp_override = FALSE
+
+/obj/item/clothing/gloves/the_sleeping_carp/Destroy()
+ QDEL_NULL(style)
+ return ..()
+
+/obj/item/clothing/gloves/the_sleeping_carp/equipped(mob/user, slot)
+ . = ..()
+ if(slot & ITEM_SLOT_GLOVES)
+ style.teach(user, TRUE)
+
+/obj/item/clothing/gloves/the_sleeping_carp/dropped(mob/user)
+ . = ..()
+ if(!isnull(style))
+ style.fully_remove(user)
+
#undef STRONG_PUNCH_COMBO
#undef LAUNCH_KICK_COMBO
#undef DROP_KICK_COMBO
diff --git a/code/datums/mind/_mind.dm b/code/datums/mind/_mind.dm
index 23921bd84af..eaac3221998 100644
--- a/code/datums/mind/_mind.dm
+++ b/code/datums/mind/_mind.dm
@@ -451,15 +451,20 @@
current.dropItemToGround(W, TRUE) //The TRUE forces all items to drop, since this is an admin undress.
if("takeuplink")
take_uplink()
- wipe_memory()//Remove any memory they may have had.
+ wipe_memory_type(/datum/memory/key/traitor_uplink/implant)
log_admin("[key_name(usr)] removed [current]'s uplink.")
if("crystals")
if(check_rights(R_FUN))
var/datum/component/uplink/U = find_syndicate_uplink()
if(U)
- var/crystals = input("Amount of telecrystals for [key]","Syndicate uplink", U.uplink_handler.telecrystals) as null | num
- if(!isnull(crystals))
- U.uplink_handler.telecrystals = crystals
+ var/crystals = tgui_input_number(
+ user = usr,
+ message = "Amount of telecrystals for [key]",
+ title = "Syndicate uplink",
+ default = U.uplink_handler.telecrystals,
+ )
+ if(isnum(crystals))
+ U.uplink_handler.set_telecrystals(crystals)
message_admins("[key_name_admin(usr)] changed [current]'s telecrystal count to [crystals].")
log_admin("[key_name(usr)] changed [current]'s telecrystal count to [crystals].")
if("progression")
diff --git a/code/datums/minigames_menu.dm b/code/datums/minigames_menu.dm
index 13e4112daca..cb083026b2f 100644
--- a/code/datums/minigames_menu.dm
+++ b/code/datums/minigames_menu.dm
@@ -37,6 +37,10 @@
ui.close()
basketball()
return TRUE
+ if("deathmatch")
+ ui.close()
+ deathmatch()
+ return TRUE
/datum/minigames_menu/proc/mafia()
var/datum/mafia_controller/game = GLOB.mafia_game //this needs to change if you want multiple mafia games up at once.
@@ -55,3 +59,8 @@
if(!game)
game = create_basketball_game()
game.ui_interact(usr)
+
+/datum/minigames_menu/proc/deathmatch()
+ if(isnull(GLOB.deathmatch_game))
+ GLOB.deathmatch_game = new
+ GLOB.deathmatch_game.ui_interact(usr)
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index cc3af071eef..afcb5d688ed 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -112,8 +112,8 @@
/datum/mood_event/table/add_effects()
if(isfelinid(owner)) //Holy snowflake batman!
- var/mob/living/carbon/human/H = owner
- SEND_SIGNAL(H, COMSIG_ORGAN_WAG_TAIL, TRUE, 3 SECONDS)
+ var/mob/living/carbon/human/feline = owner
+ feline.wag_tail(3 SECONDS)
description = "They want to play on the table!"
mood_change = 2
diff --git a/code/datums/quirks/negative_quirks/all_nighter.dm b/code/datums/quirks/negative_quirks/all_nighter.dm
index 798add0539f..253ce12b41f 100644
--- a/code/datums/quirks/negative_quirks/all_nighter.dm
+++ b/code/datums/quirks/negative_quirks/all_nighter.dm
@@ -14,7 +14,7 @@
mail_goodies = list(
/obj/item/clothing/glasses/blindfold,
- /obj/item/bedsheet/random,
+ /obj/effect/spawner/random/bedsheet/any,
/obj/item/clothing/under/misc/pj/red,
/obj/item/clothing/head/costume/nightcap/red,
/obj/item/clothing/under/misc/pj/blue,
diff --git a/code/datums/quirks/negative_quirks/unusual.dm b/code/datums/quirks/negative_quirks/unusual.dm
new file mode 100644
index 00000000000..79cfac06c13
--- /dev/null
+++ b/code/datums/quirks/negative_quirks/unusual.dm
@@ -0,0 +1,22 @@
+/datum/quirk/touchy
+ name = "Touchy"
+ desc = "You are very touchy and have to physically be able to touch something to examine it."
+ icon = FA_ICON_HAND
+ value = -2
+ gain_text = span_danger("You feel like you can't examine things from a distance.")
+ lose_text = span_notice("You feel like you can examine things from a distance.")
+ medical_record_text = "Patient is unable to tell objects apart from a distance."
+ hardcore_value = 4
+
+/datum/quirk/touchy/add(client/client_source)
+ RegisterSignal(quirk_holder, COMSIG_CLICK_SHIFT, PROC_REF(examinate_check))
+
+/datum/quirk/touchy/remove()
+ UnregisterSignal(quirk_holder, COMSIG_CLICK_SHIFT)
+
+///Checks if the mob is besides the thing being examined, if they aren't then we cancel their examinate.
+/datum/quirk/touchy/proc/examinate_check(mob/examiner, atom/examined)
+ SIGNAL_HANDLER
+
+ if(!examined.Adjacent(examiner))
+ return COMSIG_MOB_CANCEL_CLICKON
diff --git a/code/datums/saymode.dm b/code/datums/saymode.dm
index 363f484a415..3598bd764ca 100644
--- a/code/datums/saymode.dm
+++ b/code/datums/saymode.dm
@@ -20,7 +20,7 @@
if(user.mind.has_antag_datum(/datum/antagonist/fallen_changeling))
to_chat(user, span_changeling("We're cut off from the hivemind! We've lost everything! EVERYTHING!!"))
return FALSE
- var/datum/antagonist/changeling/ling_sender = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/ling_sender = IS_CHANGELING(user)
if(!ling_sender)
return FALSE
if(HAS_TRAIT(user, TRAIT_CHANGELING_HIVEMIND_MUTE))
diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm
index 06b6dbc76a8..c6b64cc3a7a 100644
--- a/code/datums/spawners_menu.dm
+++ b/code/datums/spawners_menu.dm
@@ -30,9 +30,9 @@
this["important_warning"] = ""
this["amount_left"] = 0
for(var/spawner_obj in GLOB.mob_spawners[spawner])
+ var/obj/effect/mob_spawn/ghost_role/mob_spawner = spawner_obj
if(!this["desc"])
if(istype(spawner_obj, /obj/effect/mob_spawn))
- var/obj/effect/mob_spawn/ghost_role/mob_spawner = spawner_obj
if(!mob_spawner.allow_spawn(user, silent = TRUE))
continue
this["you_are_text"] = mob_spawner.you_are_text
@@ -41,8 +41,9 @@
else
var/obj/object = spawner_obj
this["desc"] = object.desc
- this["amount_left"] += 1
- if(this["amount_left"] > 0)
+ this["amount_left"] += mob_spawner.uses
+ this["infinite"] += mob_spawner.infinite_use
+ if(this["amount_left"] > 0 || this["infinite"])
data["spawners"] += list(this)
for(var/mob_type in GLOB.joinable_mobs)
var/list/this = list()
diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm
index 4ce7cb55177..c356ef669f7 100644
--- a/code/datums/sprite_accessories.dm
+++ b/code/datums/sprite_accessories.dm
@@ -2091,10 +2091,6 @@
icon = 'icons/mob/human/species/lizard/lizard_spines.dmi'
em_block = TRUE
-/datum/sprite_accessory/spines_animated
- icon = 'icons/mob/human/species/lizard/lizard_spines.dmi'
- em_block = TRUE
-
/datum/sprite_accessory/tail_spines
icon = 'icons/mob/human/species/lizard/lizard_spines.dmi'
em_block = TRUE
@@ -2103,10 +2099,6 @@
name = "None"
icon_state = "none"
-/datum/sprite_accessory/spines_animated/none
- name = "None"
- icon_state = "none"
-
/datum/sprite_accessory/tail_spines/none
name = "None"
icon_state = "none"
@@ -2115,10 +2107,6 @@
name = "Short"
icon_state = "short"
-/datum/sprite_accessory/spines_animated/short
- name = "Short"
- icon_state = "short"
-
/datum/sprite_accessory/tail_spines/short
name = "Short"
icon_state = "short"
@@ -2127,10 +2115,6 @@
name = "Short + Membrane"
icon_state = "shortmeme"
-/datum/sprite_accessory/spines_animated/shortmeme
- name = "Short + Membrane"
- icon_state = "shortmeme"
-
/datum/sprite_accessory/tail_spines/shortmeme
name = "Short + Membrane"
icon_state = "shortmeme"
@@ -2139,10 +2123,6 @@
name = "Long"
icon_state = "long"
-/datum/sprite_accessory/spines_animated/long
- name = "Long"
- icon_state = "long"
-
/datum/sprite_accessory/tail_spines/long
name = "Long"
icon_state = "long"
@@ -2151,10 +2131,6 @@
name = "Long + Membrane"
icon_state = "longmeme"
-/datum/sprite_accessory/spines_animated/longmeme
- name = "Long + Membrane"
- icon_state = "longmeme"
-
/datum/sprite_accessory/tail_spines/longmeme
name = "Long + Membrane"
icon_state = "longmeme"
@@ -2163,10 +2139,6 @@
name = "Aquatic"
icon_state = "aqua"
-/datum/sprite_accessory/spines_animated/aquatic
- name = "Aquatic"
- icon_state = "aqua"
-
/datum/sprite_accessory/tail_spines/aquatic
name = "Aquatic"
icon_state = "aqua"
diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm
index a3c52f2e204..6fa59c1c2d3 100644
--- a/code/datums/status_effects/debuffs/debuffs.dm
+++ b/code/datums/status_effects/debuffs/debuffs.dm
@@ -795,6 +795,8 @@
processing_speed = STATUS_EFFECT_NORMAL_PROCESS
/// Will act as the main timer as well as changing how much damage the ants do.
var/ants_remaining = 0
+ /// Amount of damage done per ant on the victim
+ var/damage_per_ant = 0.0016
/// Common phrases people covered in ants scream
var/static/list/ant_debuff_speech = list(
"GET THEM OFF ME!!",
@@ -841,7 +843,7 @@
/datum/status_effect/ants/tick(seconds_between_ticks)
var/mob/living/carbon/human/victim = owner
var/need_mob_update
- need_mob_update = victim.adjustBruteLoss(max(0.1, round((ants_remaining * 0.0016) * seconds_between_ticks,0.1)), updating_health = FALSE) //Scales with # of ants (lowers with time). Roughly 10 brute over 50 seconds.
+ need_mob_update = victim.adjustBruteLoss(max(0.1, round((ants_remaining * damage_per_ant) * seconds_between_ticks,0.1)), updating_health = FALSE) //Scales with # of ants (lowers with time). Roughly 10 brute over 50 seconds.
if(victim.stat <= SOFT_CRIT) //Makes sure people don't scratch at themselves while they're in a critical condition
if(prob(15))
switch(rand(1,2))
@@ -871,7 +873,7 @@
if(need_mob_update)
victim.updatehealth()
if(ants_remaining <= 0 || victim.stat >= HARD_CRIT)
- victim.remove_status_effect(/datum/status_effect/ants) //If this person has no more ants on them or are dead, they are no longer affected.
+ victim.remove_status_effect(type) //If this person has no more ants on them or are dead, they are no longer affected.
/atom/movable/screen/alert/status_effect/ants
name = "Ants!"
@@ -889,6 +891,15 @@
to_chat(living, span_notice("You manage to get some of the ants off!"))
ant_covered.ants_remaining -= 10 // 5 Times more ants removed per second than just waiting in place
+/datum/status_effect/ants/fire
+ id = "fire_ants"
+ alert_type = /atom/movable/screen/alert/status_effect/ants/fire
+ damage_per_ant = 0.0064
+
+/atom/movable/screen/alert/status_effect/ants/fire
+ name = "Fire Ants!"
+ desc = span_warning("JESUS FUCKING CHRIST IT BURNS! CLICK TO GET THOSE THINGS OFF!")
+
/datum/status_effect/stagger
id = "stagger"
status_type = STATUS_EFFECT_REFRESH
diff --git a/code/datums/status_effects/debuffs/fire_stacks.dm b/code/datums/status_effects/debuffs/fire_stacks.dm
index 4a6e7b6b730..2f32ff5b3be 100644
--- a/code/datums/status_effects/debuffs/fire_stacks.dm
+++ b/code/datums/status_effects/debuffs/fire_stacks.dm
@@ -7,7 +7,7 @@
/// Current amount of stacks we have
var/stacks
/// Maximum of stacks that we could possibly get
- var/stack_limit = 20
+ var/stack_limit = MAX_FIRE_STACKS
/// What status effect types do we remove uppon being applied. These are just deleted without any deduction from our or their stacks when forced.
var/list/enemy_types
/// What status effect types do we merge into if they exist. Ignored when forced.
@@ -116,12 +116,8 @@
owner.clear_alert(ALERT_FIRE)
else if(!was_on_fire && owner.on_fire)
owner.throw_alert(ALERT_FIRE, /atom/movable/screen/alert/fire)
-
-/**
- * Used to update owner's effect overlay
- */
-
-/datum/status_effect/fire_handler/proc/update_overlay()
+ owner.update_appearance(UPDATE_OVERLAYS)
+ update_particles()
/datum/status_effect/fire_handler/fire_stacks
id = "fire_stacks" //fire_stacks and wet_stacks should have different IDs or else has_status_effect won't work
@@ -132,8 +128,6 @@
/// If we're on fire
var/on_fire = FALSE
- /// Stores current fire overlay icon state, for optimisation purposes
- var/last_icon_state
/// Reference to the mob light emitter itself
var/obj/effect/dummy/lighting_obj/moblight
/// Type of mob light emitter we use when on fire
@@ -160,8 +154,6 @@
return TRUE
deal_damage(seconds_between_ticks)
- update_overlay()
- update_particles()
/datum/status_effect/fire_handler/fire_stacks/update_particles()
if(on_fire)
@@ -239,8 +231,6 @@
moblight = new moblight_type(owner)
cache_stacks()
- update_overlay()
- update_particles()
SEND_SIGNAL(owner, COMSIG_LIVING_IGNITED, owner)
return TRUE
@@ -254,8 +244,6 @@
owner.clear_mood_event("on_fire")
SEND_SIGNAL(owner, COMSIG_LIVING_EXTINGUISHED, owner)
cache_stacks()
- update_overlay()
- update_particles()
for(var/obj/item/equipped in owner.get_equipped_items())
equipped.extinguish()
@@ -263,16 +251,26 @@
if(on_fire)
extinguish()
set_stacks(0)
- update_overlay()
- update_particles()
+ UnregisterSignal(owner, COMSIG_ATOM_UPDATE_OVERLAYS)
+ owner.update_appearance(UPDATE_OVERLAYS)
return ..()
-/datum/status_effect/fire_handler/fire_stacks/update_overlay()
- last_icon_state = owner.update_fire_overlay(stacks, on_fire, last_icon_state)
-
/datum/status_effect/fire_handler/fire_stacks/on_apply()
. = ..()
- update_overlay()
+ RegisterSignal(owner, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(add_fire_overlay))
+ owner.update_appearance(UPDATE_OVERLAYS)
+
+/datum/status_effect/fire_handler/fire_stacks/proc/add_fire_overlay(mob/living/source, list/overlays)
+ SIGNAL_HANDLER
+
+ if(stacks <= 0 || !on_fire)
+ return
+
+ var/mutable_appearance/created_overlay = owner.get_fire_overlay(stacks, on_fire)
+ if(isnull(created_overlay))
+ return
+
+ overlays |= created_overlay
/obj/effect/dummy/lighting_obj/moblight/fire
name = "fire"
diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm
index 84f30ab7855..3f267cb3bad 100644
--- a/code/datums/status_effects/neutral.dm
+++ b/code/datums/status_effects/neutral.dm
@@ -61,6 +61,7 @@
/datum/atom_hud/alternate_appearance/basic/one_person,
"in_love",
image(icon = 'icons/effects/effects.dmi', icon_state = "love_hearts", loc = date),
+ null,
new_owner,
))
diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm
index 915bdea22d4..8213bf347ab 100644
--- a/code/datums/storage/storage.dm
+++ b/code/datums/storage/storage.dm
@@ -605,12 +605,11 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
*/
/datum/storage/proc/return_inv(recursive = TRUE)
var/list/ret = list()
- ret |= real_location.contents
for(var/atom/found_thing as anything in real_location)
ret |= found_thing
- if(recursive)
- ret |= found_thing.atom_storage?.return_inv(ret, recursive = TRUE)
+ if(recursive && found_thing.atom_storage)
+ ret |= found_thing.atom_storage.return_inv(recursive = TRUE)
return ret
diff --git a/code/datums/votes/map_vote.dm b/code/datums/votes/map_vote.dm
index e30451c5d5e..f50c43d6c52 100644
--- a/code/datums/votes/map_vote.dm
+++ b/code/datums/votes/map_vote.dm
@@ -1,7 +1,7 @@
/datum/vote/map_vote
name = "Map"
message = "Vote for next round's map!"
- count_method = VOTE_COUNT_METHOD_MULTI
+ count_method = VOTE_COUNT_METHOD_SINGLE
winner_method = VOTE_WINNER_METHOD_WEIGHTED_RANDOM
/datum/vote/map_vote/New()
diff --git a/code/datums/wires/brm.dm b/code/datums/wires/brm.dm
deleted file mode 100644
index c00d7875035..00000000000
--- a/code/datums/wires/brm.dm
+++ /dev/null
@@ -1,14 +0,0 @@
-/datum/wires/brm
- holder_type = /obj/machinery/bouldertech/brm
- proper_name = "Boulder Retrieval Matrix"
-
-/datum/wires/brm/New(atom/holder)
- add_duds(1)
- return ..()
-
-/datum/wires/brm/on_pulse(wire)
- var/obj/machinery/bouldertech/brm/brm_holder = holder
- if(brm_holder.panel_open)
- return
- brm_holder.toggle_auto_on()
-
diff --git a/code/datums/wounds/cranial_fissure.dm b/code/datums/wounds/cranial_fissure.dm
new file mode 100644
index 00000000000..b723d410d60
--- /dev/null
+++ b/code/datums/wounds/cranial_fissure.dm
@@ -0,0 +1,123 @@
+/datum/wound_pregen_data/cranial_fissure
+ wound_path_to_generate = /datum/wound/cranial_fissure
+ required_limb_biostate = BIO_BONE
+
+ required_wounding_types = list(WOUND_ALL)
+
+ wound_series = WOUND_SERIES_CRANIAL_FISSURE
+
+ threshold_minimum = 150
+ weight = 0 //FLUFFY FRONTIER EDIT. ORIGINAL //weight = 10
+
+ viable_zones = list(BODY_ZONE_HEAD)
+
+/datum/wound_pregen_data/cranial_fissure/get_weight(obj/item/bodypart/limb, woundtype, damage, attack_direction, damage_source)
+ if (limb.owner?.stat < HARD_CRIT)
+ return 0
+
+ return ..()
+
+/// A wound applied when receiving significant enough damage to the head.
+/// Will allow other players to take your eyes out of your head, and slipping
+/// will cause your brain to fall out of your head.
+/datum/wound/cranial_fissure
+ name = "Cranial Fissure"
+ desc = "Patient's crown is agape, revealing severe damage to the skull."
+ treat_text = "Immediate surgical reconstruction of the skull."
+ examine_desc = "is split open"
+ occur_text = "is split into two separated chunks"
+
+ simple_desc = "Patient's skull is split open."
+ threshold_penalty = 40
+
+ severity = WOUND_SEVERITY_CRITICAL
+ sound_effect = 'sound/effects/dismember.ogg'
+
+#define CRANIAL_FISSURE_FILTER_DISPLACEMENT "cranial_fissure_displacement"
+
+/datum/wound/cranial_fissure/wound_injury(datum/wound/old_wound = null, attack_direction = null)
+ ADD_TRAIT(limb, TRAIT_IMMUNE_TO_CRANIAL_FISSURE, type)
+ ADD_TRAIT(victim, TRAIT_HAS_CRANIAL_FISSURE, type)
+
+ victim.add_filter(CRANIAL_FISSURE_FILTER_DISPLACEMENT, 2, displacement_map_filter(icon('icons/effects/cranial_fissure.dmi', "displacement"), size = 3))
+
+ RegisterSignal(victim, COMSIG_MOB_SLIPPED, PROC_REF(on_owner_slipped))
+
+/datum/wound/cranial_fissure/remove_wound(ignore_limb, replaced)
+ REMOVE_TRAIT(limb, TRAIT_IMMUNE_TO_CRANIAL_FISSURE, type)
+ REMOVE_TRAIT(victim, TRAIT_HAS_CRANIAL_FISSURE, type)
+
+ victim.remove_filter(CRANIAL_FISSURE_FILTER_DISPLACEMENT)
+
+ UnregisterSignal(victim, COMSIG_MOB_SLIPPED)
+
+ return ..()
+
+/datum/wound/cranial_fissure/proc/on_owner_slipped(mob/source)
+ SIGNAL_HANDLER
+
+ if (source.stat == DEAD)
+ return
+
+ var/obj/item/organ/internal/brain/brain = source.get_organ_by_type(/obj/item/organ/internal/brain)
+ if (isnull(brain))
+ return
+
+ brain.Remove(source)
+
+ var/turf/source_turf = get_turf(source)
+ brain.forceMove(source_turf)
+ brain.throw_at(get_step(source_turf, source.dir), 1, 1)
+
+ source.visible_message(
+ span_boldwarning("[source]'s brain spills right out of [source.p_their()] head!"),
+ span_userdanger("Your brain spills right out of your head!"),
+ )
+
+/datum/wound/cranial_fissure/try_handling(mob/living/carbon/human/user)
+ if (user.zone_selected != BODY_ZONE_HEAD && user.zone_selected != BODY_ZONE_PRECISE_EYES)
+ return FALSE
+
+ if (victim.body_position != LYING_DOWN)
+ return FALSE
+
+ var/obj/item/organ/internal/eyes/eyes = victim.get_organ_by_type(/obj/item/organ/internal/eyes)
+ if (isnull(eyes))
+ victim.balloon_alert(user, "no eyes to take!")
+ return TRUE
+
+ victim.balloon_alert(user, "pulling out eyes...")
+ victim.show_message(
+ span_userdanger("[victim] starts to pull out your eyes!"),
+ MSG_VISUAL,
+ span_userdanger("An arm reaches inside your brain, and starts pulling on your eyes!"),
+ )
+
+ if (!do_after(user, 10 SECONDS, victim, extra_checks = CALLBACK(src, PROC_REF(still_has_eyes), eyes)))
+ return TRUE
+
+ eyes.Remove(victim)
+ user.put_in_hands(eyes)
+
+ log_combat(user, victim, "pulled out the eyes of")
+
+ user.visible_message(
+ span_boldwarning("You rip out [victim]'s eyes!"),
+ span_boldwarning("[user] rips out [victim]'s eyes!"),
+ ignored_mobs = victim,
+ )
+
+ victim.show_message(
+ span_userdanger("[user] rips out your eyes!"),
+ MSG_VISUAL,
+ span_userdanger("You feel an arm yank from inside your head, as you feel something very important is missing!"),
+ )
+
+ return TRUE
+
+/datum/wound/cranial_fissure/proc/still_has_eyes(obj/item/organ/internal/eyes/eyes)
+ PRIVATE_PROC(TRUE)
+
+ return victim?.get_organ_by_type(/obj/item/organ/internal/eyes) == eyes
+
+#undef CRANIAL_FISSURE_FILTER_DISPLACEMENT
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index c5ea5ff66e2..64b4ee9bca4 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -38,6 +38,10 @@
var/list/firealarms = list()
///Alarm type to count of sources. Not usable for ^ because we handle fires differently
var/list/active_alarms = list()
+ /// The current alarm fault status
+ var/fault_status = AREA_FAULT_NONE
+ /// The source machinery for the area's fault status
+ var/fault_location
///List of all lights in our area
var/list/lights = list()
///We use this just for fire alarms, because they're area based right now so one alarm going poof shouldn't prevent you from clearing your alarms listing. Fire alarms and fire locks will set and clear alarms.
@@ -394,10 +398,15 @@ GLOBAL_LIST_EMPTY(teleportlocs)
*
* Allows interested parties (lights and fire alarms) to react
*/
-/area/proc/set_fire_effect(new_fire)
+/area/proc/set_fire_effect(new_fire, fault_type, fault_source)
if(new_fire == fire)
return
fire = new_fire
+ fault_status = fault_type
+ if(fire)
+ fault_location = fault_source
+ else
+ fault_location = null
SEND_SIGNAL(src, COMSIG_AREA_FIRE_CHANGED, fire)
/**
diff --git a/code/game/area/areas/away_content.dm b/code/game/area/areas/away_content.dm
index b5f63c41398..395cd85c87e 100644
--- a/code/game/area/areas/away_content.dm
+++ b/code/game/area/areas/away_content.dm
@@ -23,6 +23,18 @@ Unused icons for new areas are "awaycontent1" ~ "awaycontent30"
has_gravity = STANDARD_GRAVITY
ambientsounds = 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')
+/area/awaymission/museum
+ name = "Nanotrasen Museum"
+ icon_state = "awaycontent28"
+ sound_environment = SOUND_ENVIRONMENT_CONCERT_HALL
+
+/area/awaymission/museum/mothroachvoid
+ static_lighting = FALSE
+ base_lighting_alpha = 200
+ base_lighting_color = "#FFF4AA"
+ sound_environment = SOUND_ENVIRONMENT_PLAIN
+ ambientsounds = list('sound/ambience/shore.ogg', 'sound/ambience/ambiodd.ogg','sound/ambience/ambinice.ogg')
+
/area/awaymission/errorroom
name = "Super Secret Room"
static_lighting = FALSE
diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm
index 9004969f916..773922d6670 100644
--- a/code/game/area/areas/ruins/space.dm
+++ b/code/game/area/areas/ruins/space.dm
@@ -33,7 +33,7 @@
// Ruins of "onehalf" ship
/area/ruin/space/has_grav/onehalf/hallway
- name = "\improper Hallway"
+ name = "\improper Half-Station Hallway"
/area/ruin/space/has_grav/onehalf/drone_bay
name = "\improper Mining Drone Bay"
@@ -42,7 +42,7 @@
name = "\improper Crew Quarters"
/area/ruin/space/has_grav/onehalf/bridge
- name = "\improper Bridge"
+ name = "\improper Half-Station Bridge"
/area/ruin/space/has_grav/powered/dinner_for_two
name = "Dinner for Two"
@@ -639,25 +639,25 @@
name = "Waystation Maintenance"
/area/ruin/space/has_grav/waystation/qm
- name = "Quartermaster Office"
+ name = "Waystation Quartermaster Office"
/area/ruin/space/has_grav/waystation/dorms
- name = "Living Space"
+ name = "Waystation Living Space"
/area/ruin/space/has_grav/waystation/kitchen
- name = "Kitchen"
+ name = "Waystation Kitchen"
/area/ruin/space/has_grav/waystation/cargobay
- name = "Cargo Bay"
+ name = "Waystation Cargo Bay"
/area/ruin/space/has_grav/waystation/securestorage
- name = "Secure Storage"
+ name = "Waystation Secure Storage"
/area/ruin/space/has_grav/waystation/cargooffice
- name = "Cargo Office"
+ name = "Waystation Cargo Office"
/area/ruin/space/has_grav/powered/waystation/assaultpod
- name = "Assault Pod"
+ name = "Waystation Assault Pod"
/area/ruin/space/has_grav/waystation/power
name = "Waystation Electrical"
diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm
index 5bd8346f57f..4a7d113ba65 100644
--- a/code/game/atom/_atom.dm
+++ b/code/game/atom/_atom.dm
@@ -65,7 +65,7 @@
var/datum/wires/wires = null
///Light systems, both shouldn't be active at the same time.
- var/light_system = STATIC_LIGHT
+ var/light_system = COMPLEX_LIGHT
///Range of the light in tiles. Zero means no light.
var/light_range = 0
///Intensity of the light. The stronger, the less shadows you will see on the lit area.
diff --git a/code/game/atom/alternate_appearance.dm b/code/game/atom/alternate_appearance.dm
index 86732dd9ed4..228462f7936 100644
--- a/code/game/atom/alternate_appearance.dm
+++ b/code/game/atom/alternate_appearance.dm
@@ -166,8 +166,8 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances)
return TRUE
return FALSE
-/datum/atom_hud/alternate_appearance/basic/one_person/New(key, image/I, mob/living/M)
- ..(key, I, FALSE)
- seer = M
+/datum/atom_hud/alternate_appearance/basic/one_person/New(key, image/I, options = NONE, mob/living/seer)
+ src.seer = seer
+ return ..()
/datum/atom_hud/alternate_appearance/basic/food_demands
diff --git a/code/game/atom/atom_vv.dm b/code/game/atom/atom_vv.dm
index b5a572749a6..8830a4af2f4 100644
--- a/code/game/atom/atom_vv.dm
+++ b/code/game/atom/atom_vv.dm
@@ -222,37 +222,37 @@
light_flags &= ~LIGHT_FROZEN
switch(var_name)
if(NAMEOF(src, light_range))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_range = var_value)
else
set_light_range(var_value)
. = TRUE
if(NAMEOF(src, light_power))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_power = var_value)
else
set_light_power(var_value)
. = TRUE
if(NAMEOF(src, light_color))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_color = var_value)
else
set_light_color(var_value)
. = TRUE
if(NAMEOF(src, light_angle))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_angle = var_value)
. = TRUE
if(NAMEOF(src, light_dir))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_dir = var_value)
. = TRUE
if(NAMEOF(src, light_height))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_height = var_value)
. = TRUE
if(NAMEOF(src, light_on))
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
set_light(l_on = var_value)
else
set_light_on(var_value)
diff --git a/code/game/atom/atoms_initializing_EXPENSIVE.dm b/code/game/atom/atoms_initializing_EXPENSIVE.dm
index 2a3a442e04d..ea8bf9b125d 100644
--- a/code/game/atom/atoms_initializing_EXPENSIVE.dm
+++ b/code/game/atom/atoms_initializing_EXPENSIVE.dm
@@ -128,7 +128,7 @@
if(color)
add_atom_colour(color, FIXED_COLOUR_PRIORITY)
- if (light_system == STATIC_LIGHT && light_power && light_range)
+ if (light_system == COMPLEX_LIGHT && light_power && light_range)
update_light()
SETUP_SMOOTHING()
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 990f9812126..f82fb690405 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -181,11 +181,11 @@
if(opacity)
AddElement(/datum/element/light_blocking)
switch(light_system)
- if(MOVABLE_LIGHT)
+ if(OVERLAY_LIGHT)
AddComponent(/datum/component/overlay_lighting)
- if(MOVABLE_LIGHT_DIRECTIONAL)
+ if(OVERLAY_LIGHT_DIRECTIONAL)
AddComponent(/datum/component/overlay_lighting, is_directional = TRUE)
- if(MOVABLE_LIGHT_BEAM)
+ if(OVERLAY_LIGHT_BEAM)
AddComponent(/datum/component/overlay_lighting, is_directional = TRUE, is_beam = TRUE)
/atom/movable/Destroy(force)
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index ba0d7b931cd..f8a2cbede01 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -792,7 +792,7 @@ GLOBAL_LIST_EMPTY(possible_items)
n_p ++
else if (SSticker.IsRoundInProgress())
for(var/mob/living/carbon/human/P in GLOB.player_list)
- if(!(P.mind.has_antag_datum(/datum/antagonist/changeling)) && !(P.mind in owners))
+ if(!(IS_CHANGELING(P)) && !(P.mind in owners))
n_p ++
target_amount = min(target_amount, n_p)
diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm
index c4cf5bb125a..679a3182a57 100644
--- a/code/game/machinery/PDApainter.dm
+++ b/code/game/machinery/PDApainter.dm
@@ -67,7 +67,7 @@
QDEL_NULL(stored_id_card)
return ..()
-/obj/machinery/pdapainter/on_deconstruction()
+/obj/machinery/pdapainter/on_deconstruction(disassembled)
// Don't use ejection procs as we're gonna be destroyed anyway, so no need to update icons or anything.
if(stored_pda)
stored_pda.forceMove(loc)
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index 33cd8a96968..3ce26e0d4e1 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -198,9 +198,8 @@
end_processing()
clear_components()
- dump_contents()
-
unset_static_power()
+
return ..()
/**
@@ -819,11 +818,15 @@
deconstruct(TRUE)
/obj/machinery/deconstruct(disassembled = TRUE)
+ SHOULD_NOT_OVERRIDE(TRUE)
+
if(obj_flags & NO_DECONSTRUCTION)
+ dump_contents() //drop everything inside us
return ..() //Just delete us, no need to call anything else.
- on_deconstruction()
+ on_deconstruction(disassembled)
if(!LAZYLEN(component_parts))
+ dump_contents() //drop everything inside us
return ..() //we don't have any parts.
spawn_frame(disassembled)
@@ -842,8 +845,12 @@
continue
var/obj/item/stack/stack_path = component
new stack_path(loc, board.req_components[component])
-
LAZYCLEARLIST(component_parts)
+
+ //drop everything inside us. we do this last to give machines a chance
+ //to handle their contents before we dump them
+ dump_contents()
+
return ..()
/**
@@ -1129,8 +1136,14 @@
/obj/machinery/proc/on_construction(mob/user)
return
-//called on deconstruction before the final deletion
-/obj/machinery/proc/on_deconstruction()
+/**
+ * called on deconstruction before the final deletion
+ * Arguments
+ *
+ * * disassembled - if TRUE means we used tools to deconstruct it, FALSE means it got destroyed by other means
+ */
+/obj/machinery/proc/on_deconstruction(disassembled)
+ PROTECTED_PROC(TRUE)
return
/obj/machinery/proc/can_be_overridden()
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index f6600942cde..ba9667b3e58 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -97,7 +97,8 @@
flick("autolathe_[item_inserted.has_material_type(/datum/material/glass) ? "r" : "o"]", src)
- directly_use_power(round((amount_inserted / SHEET_MATERIAL_AMOUNT) * active_power_usage * 0.0025))
+ //we use initial(active_power_usage) because higher tier parts will have higher active usage but we have no benifit from it
+ directly_use_power(ROUND_UP((amount_inserted / (MAX_STACK_SIZE * SHEET_MATERIAL_AMOUNT)) * 0.01 * initial(active_power_usage)))
/obj/machinery/autolathe/ui_interact(mob/user, datum/tgui/ui)
if(!is_operational)
@@ -273,7 +274,7 @@
var/charge_per_item = 0
for(var/material in design.materials)
charge_per_item += design.materials[material]
- charge_per_item = min(active_power_usage, round(charge_per_item * material_cost_coefficient))
+ charge_per_item = ROUND_UP((charge_per_item / (MAX_STACK_SIZE * SHEET_MATERIAL_AMOUNT)) * material_cost_coefficient * 0.05 * active_power_usage)
var/build_time_per_item = (design.construction_time * design.lathe_time_factor) ** 0.8
//do the printing sequentially
diff --git a/code/game/machinery/barsigns.dm b/code/game/machinery/barsigns.dm
index 593a58d165c..faa29c2673e 100644
--- a/code/game/machinery/barsigns.dm
+++ b/code/game/machinery/barsigns.dm
@@ -91,15 +91,12 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/barsign, 32)
if((machine_stat & BROKEN) && !(obj_flags & NO_DECONSTRUCTION))
set_sign(new /datum/barsign/hiddensigns/signoff)
-/obj/machinery/barsign/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- if(disassembled)
- new disassemble_result(drop_location())
- else
- new /obj/item/stack/sheet/iron(drop_location(), 2)
- new /obj/item/stack/cable_coil(drop_location(), 2)
-
- qdel(src)
+/obj/machinery/barsign/on_deconstruction(disassembled)
+ if(disassembled)
+ new disassemble_result(drop_location())
+ else
+ new /obj/item/stack/sheet/iron(drop_location(), 2)
+ new /obj/item/stack/cable_coil(drop_location(), 2)
/obj/machinery/barsign/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
switch(damage_type)
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 213c43b5a11..69c01a22f62 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -443,21 +443,20 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0)
triggerCameraAlarm()
toggle_cam(null, 0)
-/obj/machinery/camera/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- if(disassembled)
- var/obj/structure/camera_assembly/assembly = assembly_ref?.resolve()
- if(!assembly)
- assembly = new()
- assembly.forceMove(drop_location())
- assembly.state = 1
- assembly.setDir(dir)
- assembly_ref = null
- else
- var/obj/item/I = new /obj/item/wallframe/camera (loc)
- I.update_integrity(I.max_integrity * 0.5)
- new /obj/item/stack/cable_coil(loc, 2)
- qdel(src)
+/obj/machinery/camera/on_deconstruction(disassembled)
+ if(disassembled)
+ var/obj/structure/camera_assembly/assembly = assembly_ref?.resolve()
+ if(!assembly)
+ assembly = new()
+ assembly.forceMove(drop_location())
+ assembly.state = 1
+ assembly.setDir(dir)
+ assembly_ref = null
+ return
+
+ var/obj/item/I = new /obj/item/wallframe/camera (loc)
+ I.update_integrity(I.max_integrity * 0.5)
+ new /obj/item/stack/cable_coil(loc, 2)
/obj/machinery/camera/update_icon_state() //TO-DO: Make panel open states, xray camera, and indicator lights overlays instead.
var/xray_module
diff --git a/code/game/machinery/camera/trackable.dm b/code/game/machinery/camera/trackable.dm
index 884f38f750b..7155dc10e8e 100644
--- a/code/game/machinery/camera/trackable.dm
+++ b/code/game/machinery/camera/trackable.dm
@@ -2,13 +2,13 @@
#define CAMERA_TICK_LIMIT 10
/datum/trackable
- ///Boolean on whether or not we are currently trying to track something.
- var/tracking = FALSE
///Reference to the atom that owns us, used for tracking.
var/atom/tracking_holder
- ///If there is a mob currently being tracked, this will be the weakref to it.
- var/datum/weakref/tracked_mob
+ ///What mob are we currently tracking, if any
+ var/mob/living/tracked_mob
+ ///If we're currently rechecking our target's trackability in hopes of something changing
+ var/rechecking = FALSE
///How many times we've failed to locate our target.
var/cameraticks = 0
@@ -24,7 +24,7 @@
/datum/trackable/New(atom/source)
. = ..()
tracking_holder = source
- RegisterSignal(tracking_holder, COMSIG_MOB_RESET_PERSPECTIVE, PROC_REF(cancel_target_tracking))
+ RegisterSignal(tracking_holder, COMSIG_MOB_RESET_PERSPECTIVE, PROC_REF(perspective_reset))
/datum/trackable/Destroy(force)
tracking_holder = null
@@ -32,27 +32,6 @@
STOP_PROCESSING(SSprocessing, src)
return ..()
-/datum/trackable/process()
- var/mob/living/tracked_target = tracked_mob?.resolve()
- if(!tracked_target || !tracking)
- set_tracking(FALSE)
- return
-
- if(tracked_target.can_track(tracking_holder))
- cameraticks = initial(cameraticks)
- SEND_SIGNAL(tracking_holder, COMSIG_TRACKABLE_TRACKING_TARGET, tracked_target)
- return
-
- if(cameraticks < CAMERA_TICK_LIMIT)
- if(!cameraticks)
- to_chat(tracking_holder, span_warning("Target is not near any active cameras. Attempting to reacquire..."))
- cameraticks++
- return
-
- to_chat(tracking_holder, span_warning("Unable to reacquire, cancelling track..."))
- cameraticks = initial(cameraticks)
- set_tracking(FALSE)
-
///Generates a list of trackable people by name, returning a list of Humans + Non-Humans that can be tracked.
/datum/trackable/proc/find_trackable_mobs()
RETURN_TYPE(/list)
@@ -82,47 +61,140 @@
var/list/targets = sort_list(humans) + sort_list(others)
return targets
-///Toggles whether or not we're tracking something. Arg is whether it's on or off.
-/datum/trackable/proc/set_tracking(on = FALSE)
- if(on)
+/// Takes a mob to track, resets our state and begins trying to follow it
+/// Best we can at least
+/datum/trackable/proc/set_tracked_mob(mob/living/track)
+ set_rechecking(FALSE)
+ if(tracked_mob)
+ UnregisterSignal(tracked_mob, list(COMSIG_QDELETING, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE))
+ if(track && !isliving(track))
+ tracked_mob = null
+ return
+ tracked_mob = track
+ if(tracked_mob)
+ RegisterSignal(tracked_mob, COMSIG_QDELETING, PROC_REF(target_deleted))
+ RegisterSignal(tracked_mob, COMSIG_MOVABLE_MOVED, PROC_REF(target_moved))
+ RegisterSignal(tracked_mob, COMSIG_MOVABLE_UPDATE_GLIDE_SIZE, PROC_REF(glide_size_changed))
+ attempt_track()
+
+/datum/trackable/proc/target_deleted(datum/source)
+ SIGNAL_HANDLER
+ reset_tracking()
+
+/datum/trackable/proc/perspective_reset(atom/source)
+ SIGNAL_HANDLER
+ reset_tracking()
+
+/datum/trackable/proc/target_moved(datum/source)
+ SIGNAL_HANDLER
+ if(attempt_track())
+ return
+ set_rechecking(TRUE)
+
+/// Controls if we're processing to recheck the conditions that prevent tracking or not
+/datum/trackable/proc/set_rechecking(should_check)
+ if(should_check)
START_PROCESSING(SSprocessing, src)
- tracking = TRUE
+ cameraticks = initial(cameraticks)
+ rechecking = TRUE
else
STOP_PROCESSING(SSprocessing, src)
- tracking = FALSE
- tracked_mob = null
+ rechecking = FALSE
+
+/datum/trackable/process()
+ if(!rechecking)
+ return PROCESS_KILL
+
+ if(attempt_track())
+ set_rechecking(FALSE)
+ return
+
+ if(cameraticks < CAMERA_TICK_LIMIT)
+ if(!cameraticks)
+ to_chat(tracking_holder, span_warning("Target is not near any active cameras. Attempting to reacquire..."))
+ cameraticks++
+ return
-///Called by Signals, used to cancel tracking of a target.
-/datum/trackable/proc/cancel_target_tracking(atom/source)
+ to_chat(tracking_holder, span_warning("Unable to reacquire, cancelling track..."))
+ reset_tracking()
+
+/// Tries to track onto our target mob. Returns true if it succeeds, false otherwise
+/datum/trackable/proc/attempt_track()
+ if(!tracked_mob)
+ reset_tracking()
+ return FALSE
+
+ if(!tracked_mob.can_track(tracking_holder))
+ return FALSE
+ // In case we've been checking
+ set_rechecking(FALSE)
+ SEND_SIGNAL(src, COMSIG_TRACKABLE_TRACKING_TARGET, tracked_mob)
+ return TRUE
+
+/datum/trackable/proc/glide_size_changed(datum/source, new_glide_size)
SIGNAL_HANDLER
- set_tracking(FALSE)
+ SEND_SIGNAL(src, COMSIG_TRACKABLE_GLIDE_CHANGED, tracked_mob, new_glide_size)
/**
- * set_tracked_mob
+ * reset_tracking
*
- * Sets a mob as being tracked, if a target is already provided then it will track that directly,
- * otherwise it will give a tgui input list to find targets to track.
+ * Resets our tracking
+ */
+/datum/trackable/proc/reset_tracking()
+ set_tracked_mob(null)
+
+/**
+ * track_input
+ *
+ * Sets a mob as being tracked, will give a tgui input list to find targets to track.
* Args:
* tracker - The person trying to track, used for feedback messages. This is not the same as tracking_holder
- * tracked_mob_name - (Optional) The person being tracked, to skip the input list.
*/
-/datum/trackable/proc/set_tracked_mob(mob/living/tracker, tracked_mob_name)
+/datum/trackable/proc/track_input(mob/living/tracker)
if(!tracker || tracker.stat == DEAD)
return
- if(tracked_mob_name)
- find_trackable_mobs() //this is in case the tracked mob is newly/no-longer in camera field of view.
- tracked_mob = isnull(humans[tracked_mob_name]) ? others[tracked_mob_name] : humans[tracked_mob_name]
- if(isnull(tracked_mob))
- to_chat(tracker, span_notice("Target is not on or near any active cameras. Tracking failed."))
- return
- to_chat(tracker, span_notice("Now tracking [tracked_mob_name] on camera."))
- else
- var/target_name = tgui_input_list(tracker, "Select a target", "Tracking", find_trackable_mobs())
- if(!target_name || isnull(target_name))
- return
- tracked_mob = isnull(humans[target_name]) ? others[target_name] : humans[target_name]
+ var/target_name = tgui_input_list(tracker, "Select a target", "Tracking", find_trackable_mobs())
+ if(!target_name || isnull(target_name))
+ return
+ var/datum/weakref/mob_ref = isnull(humans[target_name]) ? others[target_name] : humans[target_name]
+ if(isnull(mob_ref))
+ to_chat(tracker, span_notice("Target is not on or near any active cameras. Tracking failed."))
+ return
+ set_tracked_mob(mob_ref.resolve())
+
+/**
+ * track_name
+ *
+ * Sets a mob as being tracked, will track the passed in target name's target
+ * Args:
+ * tracker - The person trying to track, used for feedback messages. This is not the same as tracking_holder
+ * tracked_mob_name - The person being tracked.
+ */
+/datum/trackable/proc/track_name(mob/living/tracker, tracked_mob_name)
+ if(!tracker || tracker.stat == DEAD)
+ return
+
+ find_trackable_mobs() //this is in case the tracked mob is newly/no-longer in camera field of view.
+ var/datum/weakref/mob_ref = isnull(humans[tracked_mob_name]) ? others[tracked_mob_name] : humans[tracked_mob_name]
+ if(isnull(mob_ref))
+ to_chat(tracker, span_notice("Target is not on or near any active cameras. Tracking failed."))
+ return
+ to_chat(tracker, span_notice("Now tracking [tracked_mob_name] on camera."))
+ set_tracked_mob(mob_ref.resolve())
- set_tracking(TRUE)
+/**
+ * track_mob
+ *
+ * Sets a mob as being tracked, will track the passed in target
+ * Args:
+ * tracker - The person trying to track, used for feedback messages. This is not the same as tracking_holder
+ * tracked - The person being tracked.
+ */
+/datum/trackable/proc/track_mob(mob/living/tracker, mob/living/tracked)
+ if(!tracker || tracker.stat == DEAD)
+ return
+ // Need to make sure the tracked mob is in our list
+ track_name(tracker, tracked.name)
#undef CAMERA_TICK_LIMIT
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 8d3e4b3e661..c9acc0de7c9 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -80,10 +80,9 @@
return
return ..()
-/obj/machinery/cell_charger/deconstruct()
+/obj/machinery/cell_charger/on_deconstruction(disassembled)
if(charging)
charging.forceMove(drop_location())
- return ..()
/obj/machinery/cell_charger/Destroy()
QDEL_NULL(charging)
diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm
index a9954a71f12..116b8ff062e 100644
--- a/code/game/machinery/computer/_computer.dm
+++ b/code/game/machinery/computer/_computer.dm
@@ -98,33 +98,25 @@
if(prob(10))
atom_break(ENERGY)
-/obj/machinery/computer/deconstruct(disassembled = TRUE, mob/user)
- on_deconstruction()
- if(!(obj_flags & NO_DECONSTRUCTION))
- if(circuit) //no circuit, no computer frame
- var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
- A.setDir(dir)
- A.circuit = circuit
- // Circuit removal code is handled in /obj/machinery/Exited()
- circuit.forceMove(A)
- A.set_anchored(TRUE)
- if(machine_stat & BROKEN)
- if(user)
- to_chat(user, span_notice("The broken glass falls out."))
- else
- playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE)
- new /obj/item/shard(drop_location())
- new /obj/item/shard(drop_location())
- A.state = 3
- A.icon_state = "3"
- else
- if(user)
- to_chat(user, span_notice("You disconnect the monitor."))
- A.state = 4
- A.icon_state = "4"
- for(var/obj/C in src)
- C.forceMove(loc)
- qdel(src)
+/obj/machinery/computer/spawn_frame(disassembled)
+ if(QDELETED(circuit)) //no circuit, no computer frame
+ return
+
+ var/obj/structure/frame/computer/A = new /obj/structure/frame/computer(src.loc)
+ A.setDir(dir)
+ A.circuit = circuit
+ // Circuit removal code is handled in /obj/machinery/Exited()
+ circuit.forceMove(A)
+ A.set_anchored(TRUE)
+ if(machine_stat & BROKEN)
+ playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 70, TRUE)
+ new /obj/item/shard(drop_location())
+ new /obj/item/shard(drop_location())
+ A.state = 3
+ A.icon_state = "3"
+ else
+ A.state = 4
+ A.icon_state = "4"
/obj/machinery/computer/AltClick(mob/user)
. = ..()
diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm
index 2ddbb3baadd..74632b926b1 100644
--- a/code/game/machinery/computer/aifixer.dm
+++ b/code/game/machinery/computer/aifixer.dm
@@ -138,6 +138,6 @@
QDEL_NULL(occupier)
return ..()
-/obj/machinery/computer/aifixer/on_deconstruction()
+/obj/machinery/computer/aifixer/on_deconstruction(disassembled)
if(occupier)
QDEL_NULL(occupier)
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index 3145bcdbdaa..0a49365e1ee 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -301,7 +301,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new)
var/mob/living/silicon/ai/AI = usr
if(!istype(AI))
return
- AI.ai_tracking_tool.set_tracked_mob(AI, params["name"])
+ AI.ai_tracking_tool.track_name(AI, params["name"])
#undef SENSORS_UPDATE_PERIOD
#undef UNKNOWN_JOB_ID
diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm
index 1fe999010b7..0982c98dd1c 100644
--- a/code/game/machinery/computer/dna_console.dm
+++ b/code/game/machinery/computer/dna_console.dm
@@ -548,6 +548,7 @@
var/truegenes = GET_SEQUENCE(path)
newgene = truegenes[genepos]
joker_ready = world.time + JOKER_TIMEOUT - (JOKER_UPGRADE * (connected_scanner.precision_coeff-1))
+ tgui_view_state["jokerActive"] = FALSE
else
var/current_letter = gene_letters.Find(sequence[genepos])
newgene = (current_letter == gene_letter_count) ? gene_letters[1] : gene_letters[current_letter + 1]
diff --git a/code/game/machinery/computer/prisoner/_prisoner.dm b/code/game/machinery/computer/prisoner/_prisoner.dm
index 5785734a437..f1ce2555936 100644
--- a/code/game/machinery/computer/prisoner/_prisoner.dm
+++ b/code/game/machinery/computer/prisoner/_prisoner.dm
@@ -3,9 +3,8 @@
/// ID card currently inserted into the computer.
VAR_FINAL/obj/item/card/id/advanced/prisoner/contained_id
-/obj/machinery/computer/prisoner/deconstruct(disassembled, mob/user)
+/obj/machinery/computer/prisoner/on_deconstruction(disassembled)
contained_id?.forceMove(drop_location())
- return ..()
/obj/machinery/computer/prisoner/Destroy()
QDEL_NULL(contained_id)
diff --git a/code/game/machinery/computer/records/records.dm b/code/game/machinery/computer/records/records.dm
index 531e1725e33..4a13dc17cd5 100644
--- a/code/game/machinery/computer/records/records.dm
+++ b/code/game/machinery/computer/records/records.dm
@@ -67,6 +67,10 @@
if("purge_records")
// Don't let people off station futz with the station network.
+ //NOVA EDIT BEGIN: disable record purging/expunging to stop people messing around with the AI effortlessly
+ balloon_alert(usr, "access denied!")
+ return TRUE
+ /*
if(!is_station_level(z))
balloon_alert(usr, "out of range!")
return TRUE
@@ -86,6 +90,8 @@
balloon_alert(usr, "interrupted!")
return TRUE
+ */
+ //NOVA EDIT END
if("view_record")
if(!target)
diff --git a/code/game/machinery/computer/telescreen.dm b/code/game/machinery/computer/telescreen.dm
index 90e53c2f452..7b1e62e2cb7 100644
--- a/code/game/machinery/computer/telescreen.dm
+++ b/code/game/machinery/computer/telescreen.dm
@@ -21,10 +21,8 @@
result_path = /obj/machinery/computer/security/telescreen
pixel_shift = 32
-/obj/machinery/computer/security/telescreen/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new frame_type(loc)
- qdel(src)
+/obj/machinery/computer/security/telescreen/on_deconstruction(disassembled)
+ new frame_type(loc)
/obj/machinery/computer/security/telescreen/update_icon_state()
icon_state = initial(icon_state)
diff --git a/code/game/machinery/digital_clock.dm b/code/game/machinery/digital_clock.dm
index a0dc87dba08..febc6a4b091 100644
--- a/code/game/machinery/digital_clock.dm
+++ b/code/game/machinery/digital_clock.dm
@@ -69,16 +69,13 @@
. = ..()
emag_act()
-/obj/machinery/digital_clock/deconstruct(disassembled = TRUE)
- if(obj_flags & NO_DECONSTRUCTION)
- return
+/obj/machinery/digital_clock/on_deconstruction(disassembled)
if(disassembled)
new /obj/item/wallframe/digital_clock(drop_location())
else
new /obj/item/stack/sheet/iron(drop_location(), 2)
new /obj/item/shard(drop_location())
new /obj/item/shard(drop_location())
- qdel(src)
/obj/machinery/digital_clock/Initialize(mapload)
. = ..()
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 9878ea869d8..566c4eb360c 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1527,38 +1527,32 @@
assembly.update_name()
assembly.update_appearance()
-/obj/machinery/door/airlock/deconstruct(disassembled = TRUE, mob/user)
- if(!(obj_flags & NO_DECONSTRUCTION))
- var/obj/structure/door_assembly/A
- if(assemblytype)
- A = new assemblytype(loc)
- else
- A = new /obj/structure/door_assembly(loc)
- //If you come across a null assemblytype, it will produce the default assembly instead of disintegrating.
- prepare_deconstruction_assembly(A)
-
- if(!disassembled)
- A?.update_integrity(A.max_integrity * 0.5)
- else if(obj_flags & EMAGGED)
- if(user)
- to_chat(user, span_warning("You discard the damaged electronics."))
- else
- if(user)
- to_chat(user, span_notice("You remove the airlock electronics."))
-
- var/obj/item/electronics/airlock/ae
- if(!electronics)
- ae = new/obj/item/electronics/airlock(loc)
- if(length(req_one_access))
- ae.one_access = 1
- ae.accesses = req_one_access
- else
- ae.accesses = req_access
+/obj/machinery/door/airlock/on_deconstruction(disassembled)
+ var/obj/structure/door_assembly/A
+ if(assemblytype)
+ A = new assemblytype(loc)
+ else
+ A = new /obj/structure/door_assembly(loc)
+ //If you come across a null assemblytype, it will produce the default assembly instead of disintegrating.
+ prepare_deconstruction_assembly(A)
+
+ if(!disassembled)
+ A?.update_integrity(A.max_integrity * 0.5)
+ else if(obj_flags & EMAGGED)
+ //no electronics nothing
+ else
+ var/obj/item/electronics/airlock/ae
+ if(!electronics)
+ ae = new/obj/item/electronics/airlock(loc)
+ if(length(req_one_access))
+ ae.one_access = 1
+ ae.accesses = req_one_access
else
- ae = electronics
- electronics = null
- ae.forceMove(drop_location())
- qdel(src)
+ ae.accesses = req_access
+ else
+ ae = electronics
+ electronics = null
+ ae.forceMove(drop_location())
/obj/machinery/door/airlock/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
switch(the_rcd.mode)
diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm
index 8c6e5174a28..279119bd21e 100644
--- a/code/game/machinery/doors/firedoor.dm
+++ b/code/game/machinery/doors/firedoor.dm
@@ -74,9 +74,12 @@
/obj/machinery/door/firedoor/Initialize(mapload)
. = ..()
+ id_tag = assign_random_name()
soundloop = new(src, FALSE)
CalculateAffectingAreas()
my_area = get_area(src)
+ if(name == initial(name))
+ update_name()
if(!merger_typecache)
merger_typecache = typecacheof(/obj/machinery/door/firedoor)
@@ -180,6 +183,10 @@
return .
+/obj/machinery/door/firedoor/update_name(updates)
+ . = ..()
+ name = "[get_area_name(my_area)] [initial(name)] [id_tag]"
+
/**
* Calculates what areas we should worry about.
*
@@ -272,11 +279,14 @@
/obj/machinery/door/firedoor/proc/check_atmos(turf/checked_turf)
var/datum/gas_mixture/environment = checked_turf.return_air()
+ if(!environment)
+ stack_trace("We tried to check a gas_mixture that doesn't exist for its firetype, what are you DOING")
+ return
var/pressure = environment?.return_pressure() //NOVA EDIT ADDITION - Micro optimisation
- if(environment?.temperature >= BODYTEMP_HEAT_DAMAGE_LIMIT || pressure > WARNING_HIGH_PRESSURE) //NOVA EDIT CHANGE - BETTER LOCKS
+ if(environment.temperature >= FIRE_MINIMUM_TEMPERATURE_TO_EXIST || pressure > WARNING_HIGH_PRESSURE) //NOVA EDIT CHANGE ADDITION - ORIGINAL: if(environment.temperature >= FIRE_MINIMUM_TEMPERATURE_TO_EXIST)
return FIRELOCK_ALARM_TYPE_HOT
- if(environment?.temperature <= BODYTEMP_COLD_DAMAGE_LIMIT || pressure < WARNING_LOW_PRESSURE) //NOVA EDIT CHANGE - BETTER LOCKS
+ if(environment.temperature <= BODYTEMP_COLD_DAMAGE_LIMIT || pressure < WARNING_LOW_PRESSURE) //NOVA EDIT CHANGE ADDITION - ORIGINAL: if(environment.temperature <= BODYTEMP_COLD_DAMAGE_LIMIT)
return FIRELOCK_ALARM_TYPE_COLD
return
@@ -321,6 +331,8 @@
return //We're already active
soundloop.start()
is_playing_alarm = TRUE
+ my_area.fault_status = AREA_FAULT_AUTOMATIC
+ my_area.fault_location = name
var/datum/merger/merge_group = GetMergeGroup(merger_id, merger_typecache)
for(var/obj/machinery/door/firedoor/buddylock as anything in merge_group.members)
buddylock.activate(code)
@@ -333,6 +345,8 @@
/obj/machinery/door/firedoor/proc/start_deactivation_process()
soundloop.stop()
is_playing_alarm = FALSE
+ my_area.fault_status = AREA_FAULT_NONE
+ my_area.fault_location = null
var/datum/merger/merge_group = GetMergeGroup(merger_id, merger_typecache)
for(var/obj/machinery/door/firedoor/buddylock as anything in merge_group.members)
buddylock.reset()
@@ -369,7 +383,7 @@
if(LAZYLEN(place.active_firelocks) != 1)
continue
//if we're the first to activate in this particular area
- place.set_fire_effect(TRUE) //bathe in red
+ place.set_fire_effect(TRUE, AREA_FAULT_AUTOMATIC, name) //bathe in red
if(place == my_area)
// We'll limit our reporting to just the area we're on. If the issue affects bordering areas, they can report it themselves
place.alarm_manager.send_alarm(ALARM_FIRE, place)
@@ -429,7 +443,7 @@
LAZYREMOVE(place.active_firelocks, src)
if(LAZYLEN(place.active_firelocks)) // If we were the last firelock still active, clear the area effects
continue
- place.set_fire_effect(FALSE)
+ place.set_fire_effect(FALSE, AREA_FAULT_NONE, name)
if(place == my_area)
place.alarm_manager.clear_alarm(ALARM_FIRE, place)
@@ -656,20 +670,18 @@
if(old_activity != active) //Something changed while we were sleeping
correct_state() //So we should re-evaluate our state
-/obj/machinery/door/firedoor/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- var/turf/targetloc = get_turf(src)
- if(disassembled || prob(40))
- var/obj/structure/firelock_frame/unbuilt_lock = new assemblytype(targetloc)
- if(disassembled)
- unbuilt_lock.constructionStep = CONSTRUCTION_PANEL_OPEN
- else
- unbuilt_lock.constructionStep = CONSTRUCTION_NO_CIRCUIT
- unbuilt_lock.update_integrity(unbuilt_lock.max_integrity * 0.5)
- unbuilt_lock.update_appearance()
+/obj/machinery/door/firedoor/on_deconstruction(disassembled)
+ var/turf/targetloc = get_turf(src)
+ if(disassembled || prob(40))
+ var/obj/structure/firelock_frame/unbuilt_lock = new assemblytype(targetloc)
+ if(disassembled)
+ unbuilt_lock.constructionStep = CONSTRUCTION_PANEL_OPEN
else
- new /obj/item/electronics/firelock (targetloc)
- qdel(src)
+ unbuilt_lock.constructionStep = CONSTRUCTION_NO_CIRCUIT
+ unbuilt_lock.update_integrity(unbuilt_lock.max_integrity * 0.5)
+ unbuilt_lock.update_appearance()
+ else
+ new /obj/item/electronics/firelock (targetloc)
/obj/machinery/door/firedoor/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE)
. = ..()
diff --git a/code/game/machinery/doors/shutters.dm b/code/game/machinery/doors/shutters.dm
index 5d390019f9b..eca8d88da4b 100644
--- a/code/game/machinery/doors/shutters.dm
+++ b/code/game/machinery/doors/shutters.dm
@@ -66,3 +66,12 @@
/obj/machinery/door/poddoor/shutters/window/preopen
icon_state = "open"
density = FALSE
+
+/obj/machinery/door/poddoor/shutters/window/indestructible
+ name = "hardened windowed shutters"
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
+
+/obj/machinery/door/poddoor/shutters/window/indestructible/preopen
+ icon_state = "open"
+ density = FALSE
+ opacity = FALSE
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 9179dbaf94f..bbe443bf380 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -14,7 +14,7 @@
visible = FALSE
flags_1 = ON_BORDER_1
opacity = FALSE
- pass_flags_self = PASSGLASS
+ pass_flags_self = PASSGLASS | PASSWINDOW
can_atmos_pass = ATMOS_PASS_PROC
interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN
set_dir_on_move = FALSE
@@ -301,15 +301,16 @@
playsound(src, 'sound/items/welder.ogg', 100, TRUE)
-/obj/machinery/door/window/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION) && !disassembled)
- for(var/i in 1 to shards)
- drop_debris(new /obj/item/shard(src))
- if(rods)
- drop_debris(new /obj/item/stack/rods(src, rods))
- if(cable)
- drop_debris(new /obj/item/stack/cable_coil(src, cable))
- qdel(src)
+/obj/machinery/door/window/on_deconstruction(disassembled)
+ if(disassembled)
+ return
+
+ for(var/i in 1 to shards)
+ drop_debris(new /obj/item/shard(src))
+ if(rods)
+ drop_debris(new /obj/item/stack/rods(src, rods))
+ if(cable)
+ drop_debris(new /obj/item/stack/cable_coil(src, cable))
/obj/machinery/door/window/proc/drop_debris(obj/item/debris)
debris.forceMove(loc)
diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm
index 1d428e7547e..91e7d1a3d48 100644
--- a/code/game/machinery/droneDispenser.dm
+++ b/code/game/machinery/droneDispenser.dm
@@ -260,11 +260,6 @@
if(break_sound)
playsound(src, break_sound, 50, TRUE)
-/obj/machinery/drone_dispenser/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/stack/sheet/iron(loc, 5)
- qdel(src)
-
#undef DRONE_PRODUCTION
#undef DRONE_RECHARGING
#undef DRONE_READY
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index cef15f43caa..85225abef5f 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -42,11 +42,12 @@
/obj/machinery/firealarm/Initialize(mapload, dir, building)
. = ..()
+ id_tag = assign_random_name()
if(building)
buildstage = FIRE_ALARM_BUILD_NO_CIRCUIT
set_panel_open(TRUE)
if(name == initial(name))
- name = "[get_area_name(src)] [initial(name)]"
+ update_name()
my_area = get_area(src)
LAZYADD(my_area.firealarms, src)
@@ -114,7 +115,7 @@
/obj/machinery/firealarm/update_name(updates)
. = ..()
- name = "[get_area_name(my_area)] [initial(name)]"
+ name = "[get_area_name(my_area)] [initial(name)] [id_tag]"
/obj/machinery/firealarm/on_exit_area(datum/source, area/area_to_unregister)
//we cannot unregister from an area we never registered to in the first place
@@ -269,6 +270,8 @@
if(user)
balloon_alert(user, "triggered alarm!")
user.log_message("triggered a fire alarm.", LOG_GAME)
+ my_area.fault_status = AREA_FAULT_MANUAL
+ my_area.fault_location = name
soundloop.start() //Manually pulled fire alarms will make the sound, rather than the doors.
SEND_SIGNAL(src, COMSIG_FIREALARM_ON_TRIGGER)
update_use_power(ACTIVE_POWER_USE)
@@ -450,22 +453,21 @@
return
return ..()
-/obj/machinery/firealarm/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/stack/sheet/iron(loc, 1)
- if(buildstage > FIRE_ALARM_BUILD_NO_CIRCUIT)
- var/obj/item/item = new /obj/item/electronics/firealarm(loc)
- if(!disassembled)
- item.update_integrity(item.max_integrity * 0.5)
- if(buildstage > FIRE_ALARM_BUILD_NO_WIRES)
- new /obj/item/stack/cable_coil(loc, 3)
- qdel(src)
+/obj/machinery/firealarm/on_deconstruction(disassembled)
+ new /obj/item/stack/sheet/iron(loc, 1)
+ if(buildstage > FIRE_ALARM_BUILD_NO_CIRCUIT)
+ var/obj/item/item = new /obj/item/electronics/firealarm(loc)
+ if(!disassembled)
+ item.update_integrity(item.max_integrity * 0.5)
+ if(buildstage > FIRE_ALARM_BUILD_NO_WIRES)
+ new /obj/item/stack/cable_coil(loc, 3)
// Allows users to examine the state of the thermal sensor
/obj/machinery/firealarm/examine(mob/user)
. = ..()
if((my_area?.fire || LAZYLEN(my_area?.active_firelocks)))
. += "The local area hazard light is flashing."
+ . += "The fault location display is [my_area.fault_location] ([my_area.fault_status == AREA_FAULT_AUTOMATIC ? "Automatic Detection" : "Manual Trigger"])."
if(is_station_level(z))
. += "The station security alert level is [SSsecurity_level.get_current_level_as_text()]."
. += "Left-Click to activate all firelocks in this area."
diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm
index efe28051a21..678b2c65509 100644
--- a/code/game/machinery/flasher.dm
+++ b/code/game/machinery/flasher.dm
@@ -144,18 +144,16 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/flasher, 26)
bulb.burn_out()
power_change()
-/obj/machinery/flasher/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- if(bulb)
- bulb.forceMove(loc)
- if(disassembled)
- var/obj/item/wallframe/flasher/flasher_obj = new(get_turf(src))
- transfer_fingerprints_to(flasher_obj)
- flasher_obj.id = id
- playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
- else
- new /obj/item/stack/sheet/iron (loc, 2)
- qdel(src)
+/obj/machinery/flasher/on_deconstruction(disassembled)
+ if(bulb)
+ bulb.forceMove(loc)
+ if(disassembled)
+ var/obj/item/wallframe/flasher/flasher_obj = new(get_turf(src))
+ transfer_fingerprints_to(flasher_obj)
+ flasher_obj.id = id
+ playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
+ else
+ new /obj/item/stack/sheet/iron (loc, 2)
/obj/machinery/flasher/portable //Portable version of the flasher. Only flashes when anchored
name = "portable flasher"
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index a28f855862a..75d0566e42c 100644
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -55,11 +55,9 @@
deconstruct(TRUE)
return ITEM_INTERACT_SUCCESS
-/obj/machinery/igniter/deconstruct(disassembled)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/stack/sheet/iron(loc, 5)
- new /obj/item/assembly/igniter(loc)
- return ..()
+/obj/machinery/igniter/on_deconstruction(disassembled)
+ new /obj/item/stack/sheet/iron(loc, 5)
+ new /obj/item/assembly/igniter(loc)
/obj/machinery/igniter/multitool_act(mob/living/user, obj/item/tool)
var/change_id = tgui_input_number(user, "Set the igniter controller's ID", "Igniter ID", id, 100)
@@ -200,10 +198,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/sparker, 26)
deconstruct(TRUE)
return ITEM_INTERACT_SUCCESS
-/obj/machinery/sparker/deconstruct(disassembled)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/wallframe/sparker(loc)
- return ..()
+/obj/machinery/sparker/on_deconstruction(disassembled)
+ new /obj/item/wallframe/sparker(loc)
/obj/machinery/sparker/multitool_act(mob/living/user, obj/item/tool)
var/change_id = tgui_input_number(user, "Set the sparker controller's ID", "Sparker ID", id, 100)
diff --git a/code/game/machinery/incident_display.dm b/code/game/machinery/incident_display.dm
index 63418e4457e..fcdfecf6a31 100644
--- a/code/game/machinery/incident_display.dm
+++ b/code/game/machinery/incident_display.dm
@@ -164,16 +164,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32)
delam_record = rand(1,99)
update_appearance()
-/obj/machinery/incident_display/deconstruct()
- if(obj_flags & NO_DECONSTRUCTION)
- return
-
+/obj/machinery/incident_display/on_deconstruction(disassembled)
new /obj/item/stack/sheet/mineral/titanium(drop_location(), 2)
new /obj/item/shard(drop_location())
new /obj/item/shard(drop_location())
- qdel(src)
-
/obj/machinery/incident_display/proc/update_delam_count(new_count, record)
delam_record = record
last_delam = min(new_count, 199)
diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm
index 25e963ad6d5..6244dcdd2db 100644
--- a/code/game/machinery/iv_drip.dm
+++ b/code/game/machinery/iv_drip.dm
@@ -217,10 +217,8 @@
return ..()
set_transfer_rate(transfer_rate > MIN_IV_TRANSFER_RATE ? MIN_IV_TRANSFER_RATE : MAX_IV_TRANSFER_RATE)
-/obj/machinery/iv_drip/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/stack/sheet/iron(loc)
- qdel(src)
+/obj/machinery/iv_drip/on_deconstruction(disassembled = TRUE)
+ new /obj/item/stack/sheet/iron(loc)
/obj/machinery/iv_drip/process(seconds_per_tick)
if(!attached)
diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm
index 910f3802bfd..a950750f4d8 100644
--- a/code/game/machinery/launch_pad.dm
+++ b/code/game/machinery/launch_pad.dm
@@ -152,7 +152,7 @@
return "ERROR: Launchpad busy."
var/area/surrounding = get_area(src)
- if(is_centcom_level(z) || istype(surrounding, /area/shuttle))
+ if(is_centcom_level(z) || istype(surrounding, /area/shuttle/supply) ||istype(surrounding, /area/shuttle/transport))
return "ERROR: Launchpad not operative. Heavy area shielding makes teleporting impossible."
return null
diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm
index 0c621c6ed19..243cb8f4116 100644
--- a/code/game/machinery/lightswitch.dm
+++ b/code/game/machinery/lightswitch.dm
@@ -107,10 +107,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light_switch, 26)
if(!(machine_stat & (BROKEN|NOPOWER)))
power_change()
-/obj/machinery/light_switch/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/wallframe/light_switch(loc)
- qdel(src)
+/obj/machinery/light_switch/on_deconstruction(disassembled)
+ new /obj/item/wallframe/light_switch(loc)
/obj/item/wallframe/light_switch
name = "light switch"
diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm
index 0e81f839838..197feb4118d 100644
--- a/code/game/machinery/limbgrower.dm
+++ b/code/game/machinery/limbgrower.dm
@@ -116,7 +116,7 @@
return data
-/obj/machinery/limbgrower/on_deconstruction()
+/obj/machinery/limbgrower/on_deconstruction(disassembled)
for(var/obj/item/reagent_containers/cup/our_beaker in component_parts)
reagents.trans_to(our_beaker, our_beaker.reagents.maximum_volume)
return ..()
diff --git a/code/game/machinery/newscaster/newscaster_machine.dm b/code/game/machinery/newscaster/newscaster_machine.dm
index e667fe5b96f..7f3d8ea806f 100644
--- a/code/game/machinery/newscaster/newscaster_machine.dm
+++ b/code/game/machinery/newscaster/newscaster_machine.dm
@@ -534,12 +534,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30)
playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE)
-/obj/machinery/newscaster/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/stack/sheet/iron(loc, 2)
- new /obj/item/shard(loc)
- new /obj/item/shard(loc)
- qdel(src)
+/obj/machinery/newscaster/on_deconstruction(disassembled)
+ new /obj/item/stack/sheet/iron(loc, 2)
+ new /obj/item/shard(loc)
+ new /obj/item/shard(loc)
/obj/machinery/newscaster/atom_break(damage_flag)
. = ..()
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 76b1b73ba53..d0c0744f19e 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -402,9 +402,6 @@ DEFINE_BITFIELD(turret_flags, list(
/obj/machinery/porta_turret/proc/reset_attacked()
turret_flags &= ~TURRET_FLAG_SHOOT_ALL_REACT
-/obj/machinery/porta_turret/deconstruct(disassembled = TRUE)
- qdel(src)
-
/obj/machinery/porta_turret/atom_break(damage_flag)
. = ..()
if(.)
diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index f9747843d57..12a9ec25284 100755
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -13,8 +13,6 @@
var/finished_recharging = FALSE
var/static/list/allowed_devices = typecacheof(list(
- /obj/item/stock_parts/cell/microfusion, //NOVA EDIT ADDITION
- /obj/item/gun/microfusion, // NOVA EDIT ADDITION
/obj/item/gun/energy,
/obj/item/melee/baton/security,
/obj/item/ammo_box/magazine/recharge,
@@ -99,21 +97,6 @@
if(!energy_gun.can_charge)
to_chat(user, span_notice("Your gun has no external power connector."))
return TRUE
-
- //NOVA EDIT ADDITION
- if (istype(attacking_item, /obj/item/gun/microfusion))
- var/obj/item/gun/microfusion/microfusion_gun = attacking_item
- if(microfusion_gun.cell?.chargerate <= 0)
- to_chat(user, span_notice("[microfusion_gun] cannot be recharged!"))
- return TRUE
-
- if (istype(attacking_item, /obj/item/stock_parts/cell/microfusion))
- var/obj/item/stock_parts/cell/microfusion/inserting_cell = attacking_item
- if(inserting_cell.chargerate <= 0)
- to_chat(user, span_notice("[inserting_cell] cannot be recharged!"))
- return TRUE
- //NOVA EDIT END
-
user.transferItemToLoc(attacking_item, src)
return TRUE
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 0f6002c9725..1014393c008 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -83,6 +83,12 @@
default_unfasten_wrench(user, tool)
return ITEM_INTERACT_SUCCESS
+/obj/machinery/recycler/can_be_unfasten_wrench(mob/user, silent)
+ if(!(isfloorturf(loc) || isindestructiblefloor(loc)) && !anchored)
+ to_chat(user, span_warning("[src] needs to be on the floor to be secured!"))
+ return FAILED_UNFASTEN
+ return SUCCESSFUL_UNFASTEN
+
/obj/machinery/recycler/attackby(obj/item/I, mob/user, params)
if(default_deconstruction_screwdriver(user, "grinder-oOpen", "grinder-o0", I))
return
@@ -241,7 +247,7 @@
L.Unconscious(100)
L.adjustBruteLoss(crush_damage)
-/obj/machinery/recycler/on_deconstruction()
+/obj/machinery/recycler/on_deconstruction(disassembled)
safety_mode = TRUE
/obj/machinery/recycler/deathtrap
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 1d0f00517dd..11ed91914c2 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -394,10 +394,8 @@ GLOBAL_LIST_EMPTY(req_console_ckey_departments)
return
return ..()
-/obj/machinery/requests_console/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/wallframe/requests_console(loc)
- qdel(src)
+/obj/machinery/requests_console/on_deconstruction(disassembled)
+ new /obj/item/wallframe/requests_console(loc)
/obj/machinery/requests_console/auto_name // Register an autoname variant and then make the directional helpers before undefing all the magic bits
auto_name = TRUE
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 7660e9cf803..0483b258ae6 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -81,7 +81,7 @@
set_panel_open(TRUE)
QDEL_NULL(cell)
-/obj/machinery/space_heater/on_deconstruction()
+/obj/machinery/space_heater/on_deconstruction(disassembled)
if(cell)
LAZYADD(component_parts, cell)
cell = null
diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm
index fae7ee98d09..6284b8eef9d 100644
--- a/code/game/machinery/status_display.dm
+++ b/code/game/machinery/status_display.dm
@@ -72,16 +72,13 @@
update_appearance()
return TRUE
-/obj/machinery/status_display/deconstruct(disassembled = TRUE)
- if(obj_flags & NO_DECONSTRUCTION)
- return
+/obj/machinery/status_display/on_deconstruction(disassembled)
if(!disassembled)
new /obj/item/stack/sheet/iron(drop_location(), 2)
new /obj/item/shard(drop_location())
new /obj/item/shard(drop_location())
else
new /obj/item/wallframe/status_display(drop_location())
- qdel(src)
/// Immediately change the display to the given picture.
/obj/machinery/status_display/proc/set_picture(state)
@@ -549,6 +546,19 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/status_display/ai, 32)
connected_display.receive_signal(status_signal)
+/obj/machinery/status_display/random_message
+ current_mode = SD_MESSAGE
+ /// list to pick the first line from
+ var/list/firstline_to_secondline = list()
+
+/obj/machinery/status_display/random_message/Initialize(mapload, ndir, building)
+ if(firstline_to_secondline?.len)
+ message1 = pick(firstline_to_secondline)
+ message2 = firstline_to_secondline[message1]
+ return ..() // status displays call update appearance on init so i suppose we should set the messages before calling parent as to not call it twice
+
+MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/status_display/random_message, 32)
+
#undef MAX_STATIC_WIDTH
#undef FONT_STYLE
#undef SCROLL_RATE
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 0bf6bf7872d..b34f7873648 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -307,13 +307,9 @@
storage = null
set_occupant(null)
-/obj/machinery/suit_storage_unit/deconstruct(disassembled = TRUE)
- if(!(obj_flags & NO_DECONSTRUCTION))
- open_machine()
- dump_inventory_contents()
- if(card_reader_installed)
- new /obj/item/stock_parts/card_reader(loc)
- return ..()
+/obj/machinery/suit_storage_unit/on_deconstruction(disassembled)
+ if(card_reader_installed)
+ new /obj/item/stock_parts/card_reader(loc)
/obj/machinery/suit_storage_unit/proc/access_check(mob/living/user)
if(!isnull(id_card))
diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm
index 2f150d109f7..fd0fea92292 100644
--- a/code/game/machinery/washing_machine.dm
+++ b/code/game/machinery/washing_machine.dm
@@ -415,10 +415,8 @@ GLOBAL_LIST_INIT(dye_registry, list(
/obj/machinery/washing_machine/attack_ai_secondary(mob/user, modifiers)
return attack_hand_secondary(user, modifiers)
-/obj/machinery/washing_machine/deconstruct(disassembled = TRUE)
- if (!(obj_flags & NO_DECONSTRUCTION))
- new /obj/item/stack/sheet/iron(drop_location(), 2)
- qdel(src)
+/obj/machinery/washing_machine/on_deconstruction(disassembled)
+ new /obj/item/stack/sheet/iron(drop_location(), 2)
/obj/machinery/washing_machine/open_machine(drop = TRUE, density_to_set = FALSE)
. = ..()
diff --git a/code/game/objects/effects/anomalies/_anomalies.dm b/code/game/objects/effects/anomalies/_anomalies.dm
index 02c3e024c2a..530da562827 100644
--- a/code/game/objects/effects/anomalies/_anomalies.dm
+++ b/code/game/objects/effects/anomalies/_anomalies.dm
@@ -27,7 +27,8 @@
/obj/effect/anomaly/Initialize(mapload, new_lifespan, drops_core = TRUE)
. = ..()
- SSpoints_of_interest.make_point_of_interest(src)
+ if(!mapload)
+ SSpoints_of_interest.make_point_of_interest(src)
START_PROCESSING(SSobj, src)
impact_area = get_area(src)
diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm
index b195f115d46..01b26ee3de6 100644
--- a/code/game/objects/effects/decals/cleanable/humans.dm
+++ b/code/game/objects/effects/decals/cleanable/humans.dm
@@ -115,6 +115,7 @@
/obj/effect/decal/cleanable/blood/gibs/Initialize(mapload, list/datum/disease/diseases)
. = ..()
+ AddElement(/datum/element/squish_sound)
RegisterSignal(src, COMSIG_MOVABLE_PIPE_EJECTING, PROC_REF(on_pipe_eject))
/obj/effect/decal/cleanable/blood/gibs/Destroy()
@@ -133,11 +134,6 @@
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
return FALSE
-/obj/effect/decal/cleanable/blood/gibs/on_entered(datum/source, atom/movable/L)
- if(isliving(L) && has_gravity(loc))
- playsound(loc, 'sound/effects/footstep/gib_step.ogg', HAS_TRAIT(L, TRAIT_LIGHT_STEP) ? 20 : 50, TRUE)
- return ..()
-
/obj/effect/decal/cleanable/blood/gibs/proc/on_pipe_eject(atom/source, direction)
SIGNAL_HANDLER
diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm
index c93b105767a..7fe6c59075f 100644
--- a/code/game/objects/effects/decals/cleanable/misc.dm
+++ b/code/game/objects/effects/decals/cleanable/misc.dm
@@ -403,6 +403,7 @@
/obj/effect/decal/cleanable/ants/fire
name = "space fire ants"
desc = "A small colony no longer. We are the fire nation."
+ decal_reagent = /datum/reagent/ants/fire
icon_state = "fire_ants"
mergeable_decal = FALSE
@@ -485,6 +486,9 @@
ignite()
return ..()
+/obj/effect/decal/cleanable/fuel_pool/hivis
+ icon_state = "fuel_pool_hivis"
+
/obj/effect/decal/cleanable/rubble
name = "rubble"
desc = "A pile of rubble."
diff --git a/code/game/objects/effects/effect_system/effects_sparks.dm b/code/game/objects/effects/effect_system/effects_sparks.dm
index 86800d0522c..c3fad6d26b6 100644
--- a/code/game/objects/effects/effect_system/effects_sparks.dm
+++ b/code/game/objects/effects/effect_system/effects_sparks.dm
@@ -16,7 +16,7 @@
name = "sparks"
icon_state = "sparks"
anchored = TRUE
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 2
light_power = 0.5
light_color = LIGHT_COLOR_FIRE
diff --git a/code/game/objects/effects/lighting.dm b/code/game/objects/effects/lighting.dm
index 4e95e72f429..1de9fad39ee 100644
--- a/code/game/objects/effects/lighting.dm
+++ b/code/game/objects/effects/lighting.dm
@@ -8,7 +8,7 @@
name = "lighting"
desc = "Tell a coder if you're seeing this."
icon_state = "nothing"
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = MINIMUM_USEFUL_LIGHT_RANGE
light_color = COLOR_WHITE
blocks_emissive = EMISSIVE_BLOCK_NONE
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index e63e7e39c4a..cd8a859f86f 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -117,8 +117,7 @@
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
s.set_up(3, 1, src)
s.start()
- if(ismob(triggerer))
- mineEffect(triggerer)
+ mineEffect(triggerer)
triggered = TRUE
SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED, triggerer)
qdel(src)
diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm
index 091b4700673..8c52a76dbc0 100644
--- a/code/game/objects/effects/portals.dm
+++ b/code/game/objects/effects/portals.dm
@@ -18,7 +18,7 @@
anchored = TRUE
density = TRUE // dense for receiving bumbs
layer = HIGH_OBJ_LAYER
- light_system = STATIC_LIGHT
+ light_system = COMPLEX_LIGHT
light_range = 3
light_power = 1
light_on = TRUE
diff --git a/code/game/objects/effects/spawners/random/bedsheet.dm b/code/game/objects/effects/spawners/random/bedsheet.dm
new file mode 100644
index 00000000000..3fb39c5de4a
--- /dev/null
+++ b/code/game/objects/effects/spawners/random/bedsheet.dm
@@ -0,0 +1,64 @@
+/obj/effect/spawner/random/bedsheet
+ name = "random dorm bedsheet"
+ icon_state = "random_bedsheet"
+ loot = list(/obj/item/bedsheet = 8,
+ /obj/item/bedsheet/blue = 8,
+ /obj/item/bedsheet/green = 8,
+ /obj/item/bedsheet/grey = 8,
+ /obj/item/bedsheet/orange = 8,
+ /obj/item/bedsheet/purple = 8,
+ /obj/item/bedsheet/red = 8,
+ /obj/item/bedsheet/yellow = 8,
+ /obj/item/bedsheet/brown = 8,
+ /obj/item/bedsheet/black = 8,
+ /obj/item/bedsheet/patriot = 2,
+ /obj/item/bedsheet/rainbow = 2,
+ /obj/item/bedsheet/ian = 2,
+ /obj/item/bedsheet/runtime = 2,
+ /obj/item/bedsheet/cosmos = 2,
+ /obj/item/bedsheet/nanotrasen = 2,
+ /obj/item/bedsheet/pirate = 2,
+ /obj/item/bedsheet/gondola = 1,
+ )
+
+/obj/effect/spawner/random/bedsheet/double
+ name = "random dorm double bedsheet"
+ icon_state = "random_doublesheet"
+ loot = list(
+ /obj/item/bedsheet/double = 4,
+ /obj/item/bedsheet/blue/double = 4,
+ /obj/item/bedsheet/green/double = 4,
+ /obj/item/bedsheet/grey/double = 4,
+ /obj/item/bedsheet/orange/double = 4,
+ /obj/item/bedsheet/purple/double = 4,
+ /obj/item/bedsheet/red/double = 4,
+ /obj/item/bedsheet/yellow/double = 4,
+ /obj/item/bedsheet/brown/double = 4,
+ /obj/item/bedsheet/black/double = 4,
+ /obj/item/bedsheet/patriot/double = 1,
+ /obj/item/bedsheet/rainbow/double = 1,
+ /obj/item/bedsheet/ian/double = 1,
+ /obj/item/bedsheet/runtime/double = 1,
+ /obj/item/bedsheet/cosmos/double = 1,
+ /obj/item/bedsheet/nanotrasen/double = 1,
+ )
+
+/obj/effect/spawner/random/bedsheet/any
+ name = "random single bedsheet"
+ loot = null
+ var/static/list/bedsheet_list = list()
+ var/spawn_type = BEDSHEET_SINGLE
+
+/obj/effect/spawner/random/bedsheet/any/Initialize(mapload)
+ if(isnull(bedsheet_list[spawn_type]))
+ var/list/spawn_list = list()
+ for(var/obj/item/bedsheet/sheet as anything in typesof(/obj/item/bedsheet))
+ if(initial(sheet.bedsheet_type) == spawn_type)
+ spawn_list += sheet
+ bedsheet_list[spawn_type] = spawn_list
+ loot = bedsheet_list[spawn_type]
+ return ..()
+
+/obj/effect/spawner/random/bedsheet/any/double
+ icon_state = "random_doublesheet"
+ spawn_type = BEDSHEET_DOUBLE
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index a014857994a..ecfa560bfe6 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -19,7 +19,7 @@
/obj/effect/step_trigger/proc/on_entered(datum/source, H as mob|obj)
SIGNAL_HANDLER
- if(!H)
+ if(!H || H == src)
return
if(isobserver(H) && !affect_ghosts)
return
@@ -138,6 +138,26 @@
if (T)
A.forceMove(T)
+/* Teleports atoms directly to an offset, no randomness, looping hallways! */
+
+/obj/effect/step_trigger/teleporter/offset
+ var/teleport_x_offset = 0
+ var/teleport_y_offset = 0
+
+/obj/effect/step_trigger/teleporter/offset/on_entered(datum/source, H as mob|obj, atom/old_loc)
+ if(!old_loc?.Adjacent(loc)) // prevents looping, if we were teleported into this then the old loc is usually not adjacent
+ return
+ return ..()
+
+/obj/effect/step_trigger/teleporter/offset/Trigger(atom/movable/poor_soul)
+ var/turf/destination = locate(x + teleport_x_offset, y + teleport_y_offset, z)
+ if(!destination)
+ return
+ poor_soul.forceMove(destination)
+ var/mob/living/living_soul = poor_soul
+ if(istype(living_soul) && living_soul.client)
+ living_soul.client.move_delay = 0
+
/* Fancy teleporter, creates sparks and smokes when used */
/obj/effect/step_trigger/teleport_fancy
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index c82164dd7f4..ba9e4912aff 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -545,20 +545,20 @@
return
return attempt_pickup(user)
-/obj/item/proc/attempt_pickup(mob/user)
+/obj/item/proc/attempt_pickup(mob/user, skip_grav = FALSE)
. = TRUE
if(!(interaction_flags_item & INTERACT_ITEM_ATTACK_HAND_PICKUP)) //See if we're supposed to auto pickup.
return
- //Heavy gravity makes picking up things very slow.
- var/grav = user.has_gravity()
- if(grav > STANDARD_GRAVITY)
- var/grav_power = min(3,grav - STANDARD_GRAVITY)
- to_chat(user,span_notice("You start picking up [src]..."))
- if(!do_after(user, 30 * grav_power, src))
- return
-
+ if(!skip_grav)
+ //Heavy gravity makes picking up things very slow.
+ var/grav = user.has_gravity()
+ if(grav > STANDARD_GRAVITY)
+ var/grav_power = min(3,grav - STANDARD_GRAVITY)
+ to_chat(user,span_notice("You start picking up [src]..."))
+ if(!do_after(user, 30 * grav_power, src))
+ return
//If the item is in a storage item, take it out
var/outside_storage = !loc.atom_storage
diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm
index f58ea90211d..97f9c29491e 100644
--- a/code/game/objects/items/cardboard_cutouts.dm
+++ b/code/game/objects/items/cardboard_cutouts.dm
@@ -14,11 +14,19 @@
var/deceptive = FALSE
/// What cutout datum we spawn at the start? Uses the name, not the path.
var/starting_cutout
+ /// Reference to the tactical component that should be deleted when the cutout is toppled.
+ var/datum/component/tactical/tacticool
/obj/item/cardboard_cutout/Initialize(mapload)
. = ..()
if(starting_cutout)
return INITIALIZE_HINT_LATELOAD
+ if(!pushed_over)
+ AddComponent(/datum/component/tactical)
+
+/obj/item/cardboard_cutout/Destroy()
+ tacticool = null
+ return ..()
/obj/item/cardboard_cutout/LateInitialize()
ASSERT(!isnull(starting_cutout))
@@ -33,6 +41,8 @@
ASSERT(!isnull(cutout), "No cutout found with name [starting_cutout]")
cutout.apply(src)
+ if(!pushed_over)
+ tacticool = AddComponent(/datum/component/tactical)
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/cardboard_cutout/attack_hand(mob/living/user, list/modifiers)
@@ -42,12 +52,22 @@
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
push_over()
+/obj/item/cardboard_cutout/equipped(mob/living/user, slot)
+ . = ..()
+ //Because of the tactical element, the user won't tilt left and right, but it'll still hop.
+ user.AddElementTrait(TRAIT_WADDLING, REF(src), /datum/element/waddling)
+
+/obj/item/cardboard_cutout/dropped(mob/living/user)
+ . = ..()
+ REMOVE_TRAIT(user, TRAIT_WADDLING, REF(src))
+
/obj/item/cardboard_cutout/proc/push_over()
appearance = initial(appearance)
desc = "[initial(desc)] It's been pushed over."
icon_state = "cutout_pushed_over"
remove_atom_colour(FIXED_COLOUR_PRIORITY)
pushed_over = TRUE
+ QDEL_NULL(tacticool)
/obj/item/cardboard_cutout/attack_self(mob/living/user)
if(!pushed_over)
@@ -57,6 +77,7 @@
icon = initial(icon)
icon_state = initial(icon_state) //This resets a cutout to its blank state - this is intentional to allow for resetting
pushed_over = FALSE
+ tacticool = AddComponent(/datum/component/tactical)
/obj/item/cardboard_cutout/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/toy/crayon))
@@ -100,7 +121,7 @@
for (var/datum/cardboard_cutout/cutout_subtype as anything in subtypesof(/datum/cardboard_cutout))
var/datum/cardboard_cutout/cutout = get_cardboard_cutout_instance(cutout_subtype)
appearances_by_name[cutout.name] = cutout
- possible_appearances[cutout.name] = image(icon = cutout.applied_appearance)
+ possible_appearances[cutout.name] = image(icon = cutout.preview_appearance)
var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, PROC_REF(check_menu), user, crayon), radius = 36, require_near = TRUE)
if(!new_appearance)
@@ -144,19 +165,16 @@
return FALSE
return TRUE
-// Cutouts always face forward
-/obj/item/cardboard_cutout/setDir(newdir)
- SHOULD_CALL_PARENT(FALSE)
- return
-
/obj/item/cardboard_cutout/adaptive //Purchased by Syndicate agents, these cutouts are indistinguishable from normal cutouts but aren't discolored when their appearance is changed
deceptive = TRUE
/datum/cardboard_cutout
/// Name of the cutout, used for radial selection and the global list.
var/name = "Boardjak"
- /// The appearance we apply to the cardboard cutout.
- var/mutable_appearance/applied_appearance = null
+ /// The appearance of the cardboard cutout that we show in the radial menu.
+ var/mutable_appearance/preview_appearance
+ /// A flat appearance, with only one direction, that we apply to the cardboard cutout.
+ var/image/applied_appearance
/// The base name we actually give to to the cardboard cutout. Can be overridden in get_name().
var/applied_name = "boardjak"
/// The desc we give to the cardboard cutout.
@@ -179,9 +197,9 @@
/datum/cardboard_cutout/New()
. = ..()
if(direct_icon)
- applied_appearance = mutable_appearance(direct_icon, direct_icon_state)
+ preview_appearance = mutable_appearance(direct_icon, direct_icon_state)
else
- applied_appearance = get_dynamic_human_appearance(outfit, species, mob_spawner, l_hand, r_hand, animated = FALSE)
+ preview_appearance = get_dynamic_human_appearance(outfit, species, mob_spawner, l_hand, r_hand, animated = FALSE)
/// This proc returns the name that the cardboard cutout item will use.
/datum/cardboard_cutout/proc/get_name()
@@ -189,9 +207,14 @@
/// This proc sets the cardboard cutout item's vars.
/datum/cardboard_cutout/proc/apply(obj/item/cardboard_cutout/cutouts)
+ if(isnull(applied_appearance))
+ applied_appearance = image(fcopy_rsc(getFlatIcon(preview_appearance, no_anim = TRUE)))
+ applied_appearance.plane = cutouts.plane
+ applied_appearance.layer = cutouts.layer
cutouts.appearance = applied_appearance
cutouts.name = get_name()
cutouts.desc = applied_desc
+ cutouts.update_appearance() //forces an update on the tactical comp's appearance.
/datum/cardboard_cutout/assistant
name = "Assistant"
diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm
index 0805f6b5233..68501057ebf 100644
--- a/code/game/objects/items/chainsaw.dm
+++ b/code/game/objects/items/chainsaw.dm
@@ -99,6 +99,28 @@
armour_penetration = 100
force_on = 30
+/obj/item/chainsaw/doomslayer/attack(mob/living/target_mob, mob/living/user, params)
+ if (target_mob.stat != DEAD)
+ return ..()
+
+ if (user.zone_selected != BODY_ZONE_HEAD)
+ return ..()
+
+ var/obj/item/bodypart/head = target_mob.get_bodypart(BODY_ZONE_HEAD)
+ if (isnull(head))
+ return ..()
+
+ playsound(user, 'sound/weapons/slice.ogg', vol = 80, vary = TRUE)
+
+ target_mob.balloon_alert(user, "cutting off head...")
+ if (!do_after(user, 2 SECONDS, target_mob, extra_checks = CALLBACK(src, PROC_REF(has_same_head), target_mob, head)))
+ return TRUE
+
+ head.dismember(silent = FALSE)
+ user.put_in_hands(head)
+
+ return TRUE
+
/obj/item/chainsaw/doomslayer/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE)
if(attack_type == PROJECTILE_ATTACK)
owner.visible_message(span_danger("Ranged attacks just make [owner] angrier!"))
@@ -106,6 +128,9 @@
return TRUE
return FALSE
+/obj/item/chainsaw/doomslayer/proc/has_same_head(mob/living/target_mob, obj/item/bodypart/head)
+ return target_mob.get_bodypart(BODY_ZONE_HEAD) == head
+
/obj/item/chainsaw/mounted_chainsaw
name = "mounted chainsaw"
desc = "A chainsaw that has replaced your arm."
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index ee78b11c720..5740f6aaa4d 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -742,7 +742,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
resistance_flags = FIRE_PROOF
grind_results = list(/datum/reagent/iron = 1, /datum/reagent/fuel = 5, /datum/reagent/fuel/oil = 5)
custom_price = PAYCHECK_CREW * 1.1
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 2
light_power = 0.6
light_color = LIGHT_COLOR_FIRE
diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
index 851e08beb15..1480ac23c5a 100644
--- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
+++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm
@@ -664,6 +664,7 @@
/obj/machinery/vending/imported/mothic = "Nomad Fleet Ration Chit Exchange", //NOVA EDIT ADDITION
/obj/machinery/vending/imported/tiziran = "Tiziran Imported Delicacies", //NOVA EDIT ADDITION
/obj/machinery/vending/imported/yangyu = "Fudobenda", //NOVA EDIT ADDITION
+ /obj/machinery/vending/deforest_medvend = "DeForest Med-Vend", //NOVA EDIT ADDITION
)
/obj/item/circuitboard/machine/vendor/screwdriver_act(mob/living/user, obj/item/tool)
@@ -1565,7 +1566,7 @@
/obj/item/circuitboard/machine/brm
name = "Boulder Retrieval Matrix"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
- build_path = /obj/machinery/bouldertech/brm
+ build_path = /obj/machinery/brm
req_components = list(
/datum/stock_part/capacitor = 1,
/datum/stock_part/scanning_module = 1,
@@ -1577,10 +1578,9 @@
greyscale_colors = CIRCUIT_COLOR_SUPPLY
build_path = /obj/machinery/bouldertech/refinery
req_components = list(
- /obj/item/reagent_containers/cup/beaker = 1,
/obj/item/assembly/igniter/condenser = 1,
/datum/stock_part/servo = 2,
- /datum/stock_part/matter_bin = 1,
+ /datum/stock_part/matter_bin = 2,
)
/obj/item/circuitboard/machine/smelter
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index f7c9b4eda7d..28f5b405821 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -19,7 +19,7 @@
slot_flags = ITEM_SLOT_BELT
custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass= SMALL_MATERIAL_AMOUNT * 0.2)
actions_types = list(/datum/action/item_action/toggle_light)
- light_system = MOVABLE_LIGHT_DIRECTIONAL
+ light_system = OVERLAY_LIGHT_DIRECTIONAL
light_range = 4
light_power = 1
light_on = FALSE
@@ -76,7 +76,7 @@
/obj/item/flashlight/proc/update_brightness()
update_appearance(UPDATE_ICON)
- if(light_system == STATIC_LIGHT)
+ if(light_system == COMPLEX_LIGHT)
update_light()
/obj/item/flashlight/proc/toggle_light(mob/user)
@@ -364,7 +364,7 @@
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
force = 10
light_range = 3.5
- light_system = STATIC_LIGHT
+ light_system = COMPLEX_LIGHT
light_color = LIGHT_COLOR_FAINT_BLUE
w_class = WEIGHT_CLASS_BULKY
obj_flags = CONDUCTS_ELECTRICITY
@@ -397,7 +397,7 @@
actions_types = list()
heat = 1000
light_color = LIGHT_COLOR_FLARE
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
grind_results = list(/datum/reagent/sulfur = 15)
sound_on = 'sound/items/match_strike.ogg'
toggle_context = FALSE
@@ -656,7 +656,7 @@
righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi'
desc = "A mining lantern."
light_range = 6 // luminosity when on
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
/obj/item/flashlight/lantern/heirloom_moth
name = "old lantern"
@@ -687,7 +687,7 @@
slot_flags = ITEM_SLOT_BELT
custom_materials = null
light_range = 7 //luminosity when on
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
/obj/item/flashlight/emp
special_desc_requirement = EXAMINE_CHECK_SYNDICATE // NOVA EDIT
@@ -753,7 +753,7 @@
custom_price = PAYCHECK_LOWER
w_class = WEIGHT_CLASS_SMALL
light_range = 4
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
color = LIGHT_COLOR_GREEN
icon_state = "glowstick"
base_icon_state = "glowstick"
@@ -860,7 +860,7 @@
name = "disco light"
desc = "Groovy..."
icon_state = null
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 4
light_power = 10
alpha = 0
@@ -888,7 +888,7 @@
desc = "A strange device manufactured with mysterious elements that somehow emits darkness. Or maybe it just sucks in light? Nobody knows for sure."
icon_state = "flashdark"
inhand_icon_state = "flashdark"
- light_system = STATIC_LIGHT //The overlay light component is not yet ready to produce darkness.
+ light_system = COMPLEX_LIGHT //The overlay light component is not yet ready to produce darkness.
light_range = 0
///Variable to preserve old lighting behavior in flashlights, to handle darkness.
var/dark_light_range = 2.5
@@ -907,23 +907,15 @@
/obj/item/flashlight/eyelight
name = "eyelight"
desc = "This shouldn't exist outside of someone's head, how are you seeing this?"
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 15
light_power = 1
obj_flags = CONDUCTS_ELECTRICITY
item_flags = DROPDEL
actions_types = list()
-/obj/item/flashlight/eyelight/adapted
- name = "adaptedlight"
- desc = "There is no possible way for a player to see this, so I can safely talk at length about why this exists. Adapted eyes come \
- with icons that go above the lighting layer so to make sure the red eyes that pierce the darkness are always visible we make the \
- human emit the smallest amount of light possible. Thanks for reading :)"
- light_range = 1
- light_power = 0.07
-
/obj/item/flashlight/eyelight/glow
- light_system = MOVABLE_LIGHT_BEAM
+ light_system = OVERLAY_LIGHT_BEAM
light_range = 4
light_power = 2
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 99322597b4b..ce1245098c8 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -410,7 +410,7 @@ effective or pretty fucking useless.
balloon_alert(user, "repaired!")
-/obj/machinery/porta_turret/syndicate/toolbox/deconstruct(disassembled)
+/obj/machinery/porta_turret/syndicate/toolbox/on_deconstruction(disassembled)
if(disassembled)
var/atom/movable/old_toolbox = toolbox
toolbox = null
diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm
index 04b95f1049b..7d5bc0b9528 100644
--- a/code/game/objects/items/dualsaber.dm
+++ b/code/game/objects/items/dualsaber.dm
@@ -17,7 +17,7 @@
w_class = WEIGHT_CLASS_SMALL
hitsound = SFX_SWING_HIT
armour_penetration = 35
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 6 //TWICE AS BRIGHT AS A REGULAR ESWORD
light_color = LIGHT_COLOR_ELECTRIC_GREEN
light_on = FALSE
diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm
index b7896c64381..1a31c5d58a2 100644
--- a/code/game/objects/items/flamethrower.dm
+++ b/code/game/objects/items/flamethrower.dm
@@ -15,7 +15,7 @@
custom_materials = list(/datum/material/iron= HALF_SHEET_MATERIAL_AMOUNT * 0.5)
resistance_flags = FIRE_PROOF
trigger_guard = TRIGGER_GUARD_NORMAL
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_on = FALSE
var/status = FALSE
var/lit = FALSE //on or off
diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm
index 07d5818b466..0b443554bb3 100644
--- a/code/game/objects/items/food/cake.dm
+++ b/code/game/objects/items/food/cake.dm
@@ -288,16 +288,23 @@
tastes = list("cake" = 3, "a Vlad's Salad" = 1)
crafting_complexity = FOOD_COMPLEXITY_4
-/obj/item/food/cakeslice/birthday/energy/proc/energy_bite(mob/living/user)
- to_chat(user, "As you eat the cake slice, you accidentally hurt yourself on the embedded energy dagger!")
- user.apply_damage(18, BRUTE, BODY_ZONE_HEAD)
- playsound(user, 'sound/weapons/blade1.ogg', 5, TRUE)
+/obj/item/food/cakeslice/birthday/energy/Initialize(mapload)
+ . = ..()
+ RegisterSignal(src, COMSIG_FOOD_EATEN, PROC_REF(bite_taken))
/obj/item/food/cakeslice/birthday/energy/attack(mob/living/target_mob, mob/living/user)
- . = ..()
if(HAS_TRAIT(user, TRAIT_PACIFISM) && target_mob != user) //Prevents pacifists from attacking others directly
- return
- energy_bite(target_mob, user)
+ balloon_alert(user, "that's dangerous!")
+ return FALSE
+ return ..()
+
+/obj/item/food/cakeslice/birthday/energy/proc/bite_taken(datum/source, mob/living/eater, mob/living/feeder)
+ SIGNAL_HANDLER
+ to_chat(eater, "As you eat the cake slice, you accidentally hurt yourself on the embedded energy dagger!")
+ if(eater != feeder)
+ log_combat(feeder, eater, "fed an energy cake to", src)
+ eater.apply_damage(18, BRUTE, BODY_ZONE_HEAD)
+ playsound(eater, 'sound/weapons/blade1.ogg', 5, TRUE)
/obj/item/food/cake/apple
name = "apple cake"
diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm
index b928a460abb..b9a6c34df04 100644
--- a/code/game/objects/items/food/meatdish.dm
+++ b/code/game/objects/items/food/meatdish.dm
@@ -750,6 +750,19 @@
foodtypes = MEAT | SUGAR
crafting_complexity = FOOD_COMPLEXITY_2
+///Special private component to handle how bbq is grilled, not meant to be used anywhere else
+/datum/component/grillable/bbq
+
+/datum/component/grillable/bbq/finish_grilling(atom/grill_source)
+ //when on a grill allow it to roast without deleting itself
+ if(istype(grill_source, /obj/machinery/grill))
+ grill_source.visible_message(span_notice("[parent] is grilled to perfection!"))
+ else //when on a girddle allow it to burn into an mouldy mess
+ return ..()
+
+/obj/item/food/bbqribs/make_grillable()
+ AddComponent(/datum/component/grillable/bbq, /obj/item/food/badrecipe, rand(30 SECONDS, 40 SECONDS), FALSE)
+
/obj/item/food/meatclown
name = "meat clown"
desc = "A delicious, round piece of meat clown. How horrifying."
diff --git a/code/game/objects/items/granters/oragami.dm b/code/game/objects/items/granters/oragami.dm
index 0b7d6d92615..0691349756c 100644
--- a/code/game/objects/items/granters/oragami.dm
+++ b/code/game/objects/items/granters/oragami.dm
@@ -21,11 +21,13 @@
check_flags = NONE
/datum/action/innate/origami/Activate()
+ ADD_TRAIT(owner, TRAIT_PAPER_MASTER, ACTION_TRAIT)
to_chat(owner, span_notice("You will now fold origami planes."))
active = TRUE
build_all_button_icons(UPDATE_BUTTON_ICON)
/datum/action/innate/origami/Deactivate()
+ REMOVE_TRAIT(owner, TRAIT_PAPER_MASTER, ACTION_TRAIT)
to_chat(owner, span_notice("You will no longer fold origami planes."))
active = FALSE
build_all_button_icons(UPDATE_BUTTON_ICON)
diff --git a/code/game/objects/items/hand_items.dm b/code/game/objects/items/hand_items.dm
index c6dc9cb7a2f..2255afe1054 100644
--- a/code/game/objects/items/hand_items.dm
+++ b/code/game/objects/items/hand_items.dm
@@ -219,9 +219,9 @@
/obj/item/hand_item/slapper/attack(mob/living/slapped, mob/living/carbon/human/user)
SEND_SIGNAL(user, COMSIG_LIVING_SLAP_MOB, slapped)
- if(ishuman(slapped))
- var/mob/living/carbon/human/human_slapped = slapped
- SEND_SIGNAL(human_slapped, COMSIG_ORGAN_WAG_TAIL, FALSE)
+ if(iscarbon(slapped))
+ var/mob/living/carbon/potential_tailed = slapped
+ potential_tailed.unwag_tail()
user.do_attack_animation(slapped)
var/slap_volume = 50
diff --git a/code/game/objects/items/implants/implant_freedom.dm b/code/game/objects/items/implants/implant_freedom.dm
index f4480f5cff8..4bce618ede9 100644
--- a/code/game/objects/items/implants/implant_freedom.dm
+++ b/code/game/objects/items/implants/implant_freedom.dm
@@ -17,17 +17,31 @@
/obj/item/implant/freedom/activate()
. = ..()
var/mob/living/carbon/carbon_imp_in = imp_in
- if(!carbon_imp_in.handcuffed && !carbon_imp_in.legcuffed)
+ if(!can_trigger(carbon_imp_in))
balloon_alert(carbon_imp_in, "no restraints!")
return
uses--
carbon_imp_in.uncuff()
+ var/obj/item/clothing/shoes/shoes = carbon_imp_in.shoes
+ if(istype(shoes) && shoes.tied == SHOES_KNOTTED)
+ shoes.adjust_laces(SHOES_TIED, carbon_imp_in)
+
if(!uses)
addtimer(CALLBACK(carbon_imp_in, TYPE_PROC_REF(/atom, balloon_alert), carbon_imp_in, "implant degraded!"), 1 SECONDS)
qdel(src)
+/obj/item/implant/freedom/proc/can_trigger(mob/living/carbon/implanted_in)
+ if(implanted_in.handcuffed || implanted_in.legcuffed)
+ return TRUE
+
+ var/obj/item/clothing/shoes/shoes = implanted_in.shoes
+ if(istype(shoes) && shoes.tied == SHOES_KNOTTED)
+ return TRUE
+
+ return FALSE
+
/obj/item/implant/freedom/get_data()
return "Implant Specifications:
\
Name: Freedom Beacon
\
diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm
index b7273ed0a32..8b4808848c2 100644
--- a/code/game/objects/items/knives.dm
+++ b/code/game/objects/items/knives.dm
@@ -124,6 +124,7 @@
name = "combat knife"
icon = 'icons/obj/weapons/stabby.dmi'
icon_state = "buckknife"
+ worn_icon_state = "buckknife"
desc = "A military combat utility survival knife."
embedding = list("pain_mult" = 4, "embed_chance" = 65, "fall_chance" = 10, "ignore_throwspeed_threshold" = TRUE)
force = 20
@@ -131,11 +132,32 @@
attack_verb_continuous = list("slashes", "stabs", "slices", "tears", "lacerates", "rips", "cuts")
attack_verb_simple = list("slash", "stab", "slice", "tear", "lacerate", "rip", "cut")
bayonet = TRUE
+ slot_flags = ITEM_SLOT_MASK
+
+/obj/item/knife/combat/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/knockoff, 90, list(BODY_ZONE_PRECISE_MOUTH), slot_flags) //90% to knock off when wearing a mask
+
+/obj/item/knife/combat/dropped(mob/living/user, slot)
+ . = ..()
+ if(user.get_item_by_slot(ITEM_SLOT_MASK) == src && !user.has_status_effect(/datum/status_effect/choke) && prob(20))
+ user.apply_damage(5, BRUTE, BODY_ZONE_HEAD)
+ playsound(user, 'sound/weapons/slice.ogg', 50, TRUE)
+ user.visible_message(span_danger("[user] accidentally cuts [user.p_them()]self while pulling [src] out of [user.p_them()] teeth! What a doofus!"), span_userdanger("You accidentally cut your mouth with [src]!"))
+
+/obj/item/knife/combat/equipped(mob/living/user, slot, initial = FALSE)
+ . = ..()
+ if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(20))
+ if(user.get_item_by_slot(ITEM_SLOT_MASK) == src)
+ user.apply_status_effect(/datum/status_effect/choke, src)
+ user.visible_message(span_danger("[user] accidentally swallows [src]!"))
+ playsound(user, 'sound/items/eatfood.ogg', 100, TRUE)
/obj/item/knife/combat/survival
name = "survival knife"
icon = 'icons/obj/weapons/stabby.dmi'
icon_state = "survivalknife"
+ worn_icon_state = "survivalknife"
embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10)
desc = "A hunting grade survival knife."
force = 15
@@ -153,6 +175,7 @@
desc = "A sharpened bone. The bare minimum in survival."
embedding = list("pain_mult" = 4, "embed_chance" = 35, "fall_chance" = 10)
obj_flags = parent_type::obj_flags & ~CONDUCTS_ELECTRICITY
+ slot_flags = NONE
force = 15
throwforce = 15
custom_materials = null
diff --git a/code/game/objects/items/melee/baton.dm b/code/game/objects/items/melee/baton.dm
index cdafb81b62c..f57d9af87f0 100644
--- a/code/game/objects/items/melee/baton.dm
+++ b/code/game/objects/items/melee/baton.dm
@@ -427,6 +427,12 @@
on_stun_volume = 50
active = FALSE
context_living_rmb_active = "Harmful Stun"
+ light_range = 1.5
+ light_system = OVERLAY_LIGHT
+ light_on = FALSE
+ light_color = LIGHT_COLOR_ORANGE
+ light_power = 0.5
+
var/throw_stun_chance = 35
var/obj/item/stock_parts/cell/cell
@@ -541,6 +547,8 @@
active = !active
balloon_alert(user, "turned [active ? "on" : "off"]")
playsound(src, SFX_SPARKS, 75, TRUE, -1)
+ toggle_light(user)
+ do_sparks(1, TRUE, src)
else
active = FALSE
if(!cell)
@@ -550,6 +558,11 @@
update_appearance()
add_fingerprint(user)
+/// Toggles the stun baton's light
+/obj/item/melee/baton/security/proc/toggle_light(mob/user)
+ set_light_on(!light_on)
+ return
+
/obj/item/melee/baton/security/proc/deductcharge(deducted_charge)
if(!cell)
return
@@ -559,6 +572,7 @@
if(active && cell.charge < cell_hit_cost)
//we're below minimum, turn off
active = FALSE
+ set_light_on(FALSE)
update_appearance()
playsound(src, SFX_SPARKS, 75, TRUE, -1)
@@ -649,6 +663,8 @@
if (!cell || cell.charge < cell_hit_cost)
return
active = !active
+ toggle_light()
+ do_sparks(1, TRUE, src)
playsound(src, SFX_SPARKS, 75, TRUE, -1)
update_appearance()
diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm
index 9882f515d0d..948a582651e 100644
--- a/code/game/objects/items/melee/energy.dm
+++ b/code/game/objects/items/melee/energy.dm
@@ -5,7 +5,7 @@
attack_verb_continuous = list("hits", "taps", "pokes")
attack_verb_simple = list("hit", "tap", "poke")
resistance_flags = FIRE_PROOF
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 3
light_power = 1
light_on = FALSE
diff --git a/code/game/objects/items/puzzle_pieces.dm b/code/game/objects/items/puzzle_pieces.dm
index 8eba5081d22..7ac22d00897 100644
--- a/code/game/objects/items/puzzle_pieces.dm
+++ b/code/game/objects/items/puzzle_pieces.dm
@@ -403,3 +403,61 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/puzzle_keycardpad, 32)
playsound(src, SFX_SPARKS, 100, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
do_sparks(3, cardinal_only = FALSE, source = src)
qdel(src)
+
+/obj/structure/puzzle_blockade/oneway
+ name = "one-way gate"
+ desc = "A wall of solid light, likely defending something important. Virtually indestructible."
+ icon = 'icons/obj/structures.dmi'
+ icon_state = "oneway"
+ base_icon_state = "oneway"
+ light_color = COLOR_BIOLUMINESCENCE_BLUE
+ light_range = 1
+ density = FALSE
+
+/obj/structure/puzzle_blockade/oneway/update_icon_state()
+ icon_state = "[base_icon_state][density ? "" : "-off"]"
+ return ..()
+
+/obj/structure/puzzle_blockade/oneway/CanAllowThrough(atom/movable/mover, border_dir)
+ return ..() && (REVERSE_DIR(border_dir) == dir || get_turf(mover) == get_turf(src))
+
+/obj/structure/puzzle_blockade/oneway/CanAStarPass(border_dir, datum/can_pass_info/pass_info)
+ return REVERSE_DIR(border_dir) == dir
+
+/obj/structure/puzzle_blockade/oneway/try_signal(datum/source)
+ density = FALSE
+ update_appearance(UPDATE_ICON)
+
+/obj/effect/puzzle_poddoor_open
+ name = "puzzle-poddoor relay"
+ desc = "activates poddoors if activated with a puzzle signal."
+ icon = 'icons/effects/mapping_helpers.dmi'
+ icon_state = ""
+ anchored = TRUE
+ invisibility = INVISIBILITY_MAXIMUM
+ /// if we receive a puzzle signal with this we do our thing
+ var/queue_id
+ /// door id
+ var/id
+
+/obj/effect/puzzle_poddoor_open/Initialize(mapload)
+ . = ..()
+ if(isnull(id) || isnull(queue_id))
+ log_mapping("[src] id:[id] has no id or door id and has been deleted")
+ return INITIALIZE_HINT_QDEL
+
+ SSqueuelinks.add_to_queue(src, queue_id)
+
+/obj/effect/puzzle_poddoor_open/MatchedLinks(id, list/partners)
+ for(var/partner in partners)
+ RegisterSignal(partner, COMSIG_PUZZLE_COMPLETED, PROC_REF(try_signal))
+
+/obj/effect/puzzle_poddoor_open/proc/try_signal(datum/source)
+ SIGNAL_HANDLER
+ var/openclose
+ for(var/obj/machinery/door/poddoor/door as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/door/poddoor))
+ if(door.id != id)
+ continue
+ if(isnull(openclose))
+ openclose = door.density
+ INVOKE_ASYNC(door, openclose ? TYPE_PROC_REF(/obj/machinery/door/poddoor, open) : TYPE_PROC_REF(/obj/machinery/door/poddoor, close))
diff --git a/code/game/objects/items/rcd/RPD.dm b/code/game/objects/items/rcd/RPD.dm
index 9af1041779e..e4777977605 100644
--- a/code/game/objects/items/rcd/RPD.dm
+++ b/code/game/objects/items/rcd/RPD.dm
@@ -587,7 +587,7 @@ GLOBAL_LIST_INIT(transit_tube_recipes, list(
if(queued_pipe_flipped)
tube.setDir(turn(queued_pipe_dir, 45 + ROTATION_FLIP))
- tube.AfterRotation(user, ROTATION_FLIP)
+ tube.post_rotation(user, ROTATION_FLIP)
tube.add_fingerprint(usr)
if(mode & WRENCH_MODE)
diff --git a/code/game/objects/items/stacks/golem_food/golem_status_effects.dm b/code/game/objects/items/stacks/golem_food/golem_status_effects.dm
index c89fae800b9..514ab36ed66 100644
--- a/code/game/objects/items/stacks/golem_food/golem_status_effects.dm
+++ b/code/game/objects/items/stacks/golem_food/golem_status_effects.dm
@@ -404,7 +404,7 @@
. = ..()
if (!.)
return
- owner.AddElement(/datum/element/waddling)
+ owner.AddElementTrait(TRAIT_WADDLING, TRAIT_STATUS_EFFECT(id), /datum/element/waddling)
ADD_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id))
slipperiness = owner.AddComponent(\
/datum/component/slippery,\
@@ -418,8 +418,7 @@
return owner.body_position == LYING_DOWN
/datum/status_effect/golem/bananium/on_remove()
- REMOVE_TRAIT(owner, TRAIT_NO_SLIP_WATER, TRAIT_STATUS_EFFECT(id))
- owner.RemoveElement(/datum/element/waddling)
+ owner.remove_traits(owner, list(TRAIT_WADDLING, TRAIT_NO_SLIP_WATER), TRAIT_STATUS_EFFECT(id))
QDEL_NULL(slipperiness)
return ..()
@@ -441,7 +440,7 @@
if (!.)
return
to_chat(owner, span_notice("You start to emit a healthy glow."))
- owner.light_system = MOVABLE_LIGHT
+ owner.light_system = OVERLAY_LIGHT
lightbulb = owner.AddComponent(/datum/component/overlay_lighting, _range = glow_range, _power = glow_power, _color = glow_color)
owner.add_filter(LIGHTBULB_FILTER, 2, list("type" = "outline", "color" = glow_color, "alpha" = 60, "size" = 1))
diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm
index 500b2500c8a..e9426a913ec 100644
--- a/code/game/objects/items/stacks/sheets/leather.dm
+++ b/code/game/objects/items/stacks/sheets/leather.dm
@@ -40,11 +40,6 @@ GLOBAL_LIST_INIT(human_recipes, list( \
inhand_icon_state = null
merge_type = /obj/item/stack/sheet/animalhide/corgi
-GLOBAL_LIST_INIT(gondola_recipes, list ( \
- new/datum/stack_recipe("gondola mask", /obj/item/clothing/mask/gondola, 1, check_density = FALSE, category = CAT_CLOTHING), \
- new/datum/stack_recipe("gondola suit", /obj/item/clothing/under/costume/gondola, 2, check_density = FALSE, category = CAT_CLOTHING), \
- ))
-
/obj/item/stack/sheet/animalhide/corgi/five
amount = 5
@@ -59,6 +54,12 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \
/obj/item/stack/sheet/animalhide/mothroach/five
amount = 5
+GLOBAL_LIST_INIT(gondola_recipes, list ( \
+ new/datum/stack_recipe("gondola mask", /obj/item/clothing/mask/gondola, 1, check_density = FALSE, category = CAT_CLOTHING), \
+ new/datum/stack_recipe("gondola suit", /obj/item/clothing/under/costume/gondola, 2, check_density = FALSE, category = CAT_CLOTHING), \
+ new/datum/stack_recipe("gondola bedsheet", /obj/item/bedsheet/gondola, 1, check_density = FALSE, category = CAT_FURNITURE), \
+ ))
+
/obj/item/stack/sheet/animalhide/gondola
name = "gondola hide"
desc = "The extremely valuable product of gondola hunting."
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 4228866506a..a72599fac9b 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -788,7 +788,8 @@ GLOBAL_LIST_INIT(plastic_recipes, list(
new /datum/stack_recipe("mannequin", /obj/structure/mannequin/plastic, 25, time = 5 SECONDS, one_per_turf = TRUE, check_density = FALSE, category = CAT_ENTERTAINMENT), \
new /datum/stack_recipe("wet floor sign", /obj/item/clothing/suit/caution, 2, check_density = FALSE, category = CAT_EQUIPMENT), \
new /datum/stack_recipe("warning cone", /obj/item/clothing/head/cone, 2, check_density = FALSE, category = CAT_EQUIPMENT), \
- new /datum/stack_recipe("blank wall sign", /obj/item/sign, 1, check_density = FALSE, category = CAT_FURNITURE)))
+ new /datum/stack_recipe("blank wall sign", /obj/item/sign, 1, check_density = FALSE, category = CAT_FURNITURE), \
+ new /datum/stack_recipe("rebellion mask", /obj/item/clothing/mask/rebellion, 1, check_density = FALSE, category = CAT_CLOTHING)))
/obj/item/stack/sheet/plastic
name = "plastic"
diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm
index 51d21d6ef6c..a6bbe3bfe19 100644
--- a/code/game/objects/items/stacks/telecrystal.dm
+++ b/code/game/objects/items/stacks/telecrystal.dm
@@ -21,7 +21,7 @@
var/datum/component/uplink/hidden_uplink = uplink.GetComponent(/datum/component/uplink)
if(hidden_uplink)
- hidden_uplink.add_telecrystals(amount)
+ hidden_uplink.uplink_handler.add_telecrystals(amount)
use(amount)
to_chat(user, span_notice("You press [src] onto yourself and charge your hidden uplink."))
return ITEM_INTERACT_SUCCESS
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index dfdaff500b1..282ced06519 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -376,7 +376,6 @@
/obj/item/reagent_containers/spray/pepper,
/obj/item/restraints/handcuffs,
/obj/item/restraints/legcuffs/bola,
- /obj/item/stock_parts/cell/microfusion, //NOVA EDIT ADDITION
))
/obj/item/storage/belt/security/full/PopulateContents()
diff --git a/code/game/objects/items/storage/boxes/job_boxes.dm b/code/game/objects/items/storage/boxes/job_boxes.dm
index b77d52ab3b9..8960470bb79 100644
--- a/code/game/objects/items/storage/boxes/job_boxes.dm
+++ b/code/game/objects/items/storage/boxes/job_boxes.dm
@@ -29,15 +29,9 @@
return
if(!isnull(mask_type))
new mask_type(src)
- //NOVA EDIT ADDITION START - VOX INTERNALS - Honestly I dont know if this has a function any more with wardrobe_removal(), but TG still uses the plasmaman one so better safe than sorry
- if(!isplasmaman(loc))
- if(isvox(loc))
- new /obj/item/tank/internals/nitrogen/belt/emergency(src)
- else
- new internal_type(src)
- else
- new /obj/item/tank/internals/plasmaman/belt(src)
- //NOVA EDIT ADDITION END - VOX INTERNALS
+
+ if(!isnull(internal_type))
+ new internal_type(src)
if(!isnull(medipen_type))
new medipen_type(src)
diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm
index 9c42113d263..97fe36137a2 100644
--- a/code/game/objects/items/storage/lockbox.dm
+++ b/code/game/objects/items/storage/lockbox.dm
@@ -239,6 +239,8 @@
desc = "A box used to secure small cargo orders from being looted by those who didn't order it. Yeah, cargo tech, that means you."
icon = 'icons/obj/storage/case.dmi'
icon_state = "secure"
+ icon_closed = "secure"
+ icon_locked = "secure_locked"
icon_broken = "secure+b"
inhand_icon_state = "sec-case"
lefthand_file = 'icons/mob/inhands/equipment/briefcase_lefthand.dmi'
@@ -273,8 +275,10 @@
if(privacy_lock)
atom_storage.locked = STORAGE_NOT_LOCKED
+ icon_state = icon_locked
else
atom_storage.locked = STORAGE_FULLY_LOCKED
+ icon_state = icon_closed
privacy_lock = atom_storage.locked
user.visible_message(span_notice("[user] [privacy_lock ? "" : "un"]locks [src]'s privacy lock."),
span_notice("You [privacy_lock ? "" : "un"]lock [src]'s privacy lock."))
diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm
index bcf6a491d71..7546028dded 100644
--- a/code/game/objects/items/storage/uplink_kits.dm
+++ b/code/game/objects/items/storage/uplink_kits.dm
@@ -770,36 +770,9 @@
illustration = "writing_syndie"
/obj/item/storage/box/syndicate/contract_kit/PopulateContents()
- new /obj/item/modular_computer/pda/contractor(src) // SKYRAT EDIT CHANGE - ORIGINAL : /obj/item/modular_computer/pda/syndicate_contract_uplink(src)
+ new /obj/item/modular_computer/pda/contractor(src) // NOVA EDIT CHANGE - ORIGINAL : /obj/item/modular_computer/pda/syndicate_contract_uplink(src)
new /obj/item/storage/box/syndicate/contractor_loadout(src)
new /obj/item/melee/baton/telescopic/contractor_baton(src)
-
- // All about 4 TC or less - some nukeops only items, but fit nicely to the theme.
- var/static/list/item_list = list(
- /obj/item/storage/backpack/duffelbag/syndie/x4,
- /obj/item/storage/box/syndie_kit/throwing_weapons,
- /obj/item/gun/syringe/syndicate,
- /obj/item/pen/edagger,
- /obj/item/pen/sleepy,
- /obj/item/flashlight/emp,
- /obj/item/reagent_containers/syringe/mulligan,
- /obj/item/clothing/shoes/chameleon/noslip,
- /obj/item/storage/medkit/tactical,
- /obj/item/encryptionkey/syndicate,
- /obj/item/clothing/glasses/thermal/syndi,
- /obj/item/slimepotion/slime/sentience/nuclear,
- /obj/item/storage/box/syndie_kit/imp_radio,
- ///obj/item/storage/box/syndie_kit/imp_uplink, // SKYRAT EDIT REMOVAL
- ///obj/item/clothing/gloves/krav_maga/combatglovesplus, // SKYRAT EDIT REMOVAL
- /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot,
- /obj/item/reagent_containers/hypospray/medipen/stimulants,
- /obj/item/storage/box/syndie_kit/imp_freedom,
- /obj/item/toy/eightball/haunted,
- )
- for(var/i in 1 to 3)
- var/selected_item = pick_n_take(item_list + modular_item_list) // NOVA EDIT CHANGE - ORIGINAL : var/selected_item = pick_n_take(item_list)
- new selected_item(src)
-
// Paper guide is always last.
new /obj/item/paper/contractor_guide(src)
@@ -810,14 +783,18 @@
illustration = "writing_syndie"
/obj/item/storage/box/syndicate/contractor_loadout/PopulateContents()
- /* SKYRAT EDIT REMOVAL BEGIN - Contractors get MODSuits instead, see contractor modular for overrides
+ /* NOVA EDIT REMOVAL BEGIN - Contractors get MODSuits instead, see contractor modular for overrides
+ new /obj/item/mod/control/pre_equipped/infiltrator(src)
new /obj/item/clothing/head/helmet/space/syndicate/contract(src)
new /obj/item/clothing/suit/space/syndicate/contract(src)
- SKYRAT EDIT REMOVAL END */
+ NOVA EDIT REMOVAL END */
new /obj/item/clothing/under/chameleon(src)
new /obj/item/clothing/mask/chameleon(src)
- new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/card/id/advanced/chameleon(src)
+ new /obj/item/clothing/glasses/thermal/syndi(src)
+ new /obj/item/storage/toolbox/syndicate(src)
+ new /obj/item/jammer(src)
+ new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src)
new /obj/item/lighter(src)
#undef KIT_RECON
diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm
index 6c11c435507..a670a966805 100644
--- a/code/game/objects/items/tanks/tanks.dm
+++ b/code/game/objects/items/tanks/tanks.dm
@@ -440,6 +440,10 @@
if(LAZYLEN(assembly.assemblies) == igniter_count)
return
+
+ if(isitem(loc)) // we are in a storage item
+ balloon_alert(user, "can't reach!")
+ return
if((src in user.get_equipped_items(include_pockets = TRUE, include_accessories = TRUE)) && !user.canUnEquip(src))
balloon_alert(user, "it's stuck!")
@@ -456,6 +460,7 @@
tank_assembly = assembly //Tell the tank about its assembly part
assembly.master = src //Tell the assembly about its new owner
assembly.on_attach()
+ w_class = WEIGHT_CLASS_BULKY
balloon_alert(user, "bomb assembled")
update_appearance(UPDATE_OVERLAYS)
@@ -469,6 +474,7 @@
user.put_in_hands(tank_assembly)
tank_assembly.master = null
tank_assembly = null
+ w_class = initial(w_class)
update_appearance(UPDATE_OVERLAYS)
/// Ignites the contents of the tank. Called when receiving a signal if the tank is welded and has an igniter attached.
diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm
index b48106d0c1d..7995267954e 100644
--- a/code/game/objects/items/tools/weldingtool.dm
+++ b/code/game/objects/items/tools/weldingtool.dm
@@ -17,7 +17,7 @@
usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg')
drop_sound = 'sound/items/handling/weldingtool_drop.ogg'
pickup_sound = 'sound/items/handling/weldingtool_pickup.ogg'
- light_system = MOVABLE_LIGHT
+ light_system = OVERLAY_LIGHT
light_range = 2
light_power = 0.75
light_color = LIGHT_COLOR_FIRE
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index 91f1ca925ab..cb57c5049bb 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -373,6 +373,8 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
/// If we can unwrench this object; returns SUCCESSFUL_UNFASTEN and FAILED_UNFASTEN, which are both TRUE, or CANT_UNFASTEN, which isn't.
/obj/proc/can_be_unfasten_wrench(mob/user, silent)
+ if(obj_flags & NO_DECONSTRUCTION)
+ return CANT_UNFASTEN
if(!(isfloorturf(loc) || isindestructiblefloor(loc)) && !anchored)
to_chat(user, span_warning("[src] needs to be on the floor to be secured!"))
return FAILED_UNFASTEN
@@ -380,7 +382,7 @@ GLOBAL_LIST_EMPTY(objects_by_id_tag)
/// Try to unwrench an object in a WONDERFUL DYNAMIC WAY
/obj/proc/default_unfasten_wrench(mob/user, obj/item/wrench, time = 20)
- if((obj_flags & NO_DECONSTRUCTION) || wrench.tool_behaviour != TOOL_WRENCH)
+ if(wrench.tool_behaviour != TOOL_WRENCH)
return CANT_UNFASTEN
var/turf/ground = get_turf(src)
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 1943f0aa398..3d976b72cca 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -69,3 +69,10 @@
/obj/structure/animate_atom_living(mob/living/owner)
new /mob/living/simple_animal/hostile/mimic/copy(drop_location(), src, owner)
+
+/// For when a mob comes flying through the window, smash it and damage the mob
+/obj/structure/proc/smash_and_injure(mob/living/flying_mob, atom/oldloc, direction)
+ flying_mob.balloon_alert_to_viewers("smashed through!")
+ flying_mob.apply_damage(damage = rand(5, 15), damagetype = BRUTE, wound_bonus = 15, bare_wound_bonus = 25, sharpness = SHARP_EDGED, attack_direction = get_dir(src, oldloc))
+ new /obj/effect/decal/cleanable/glass(get_step(flying_mob, flying_mob.dir))
+ deconstruct(disassembled = FALSE)
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index 5ea634cf5f8..f80042f5679 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -4,10 +4,6 @@ BEDSHEETS
LINEN BINS
*/
-#define BEDSHEET_ABSTRACT "abstract"
-#define BEDSHEET_SINGLE "single"
-#define BEDSHEET_DOUBLE "double"
-
/obj/item/bedsheet
name = "bedsheet"
desc = "A surprisingly soft linen bedsheet."
@@ -28,7 +24,9 @@ LINEN BINS
dog_fashion = /datum/dog_fashion/head/ghost
/// Custom nouns to act as the subject of dreams
var/list/dream_messages = list("white")
- /// The number of cloth sheets to be dropped by this bedsheet when cut
+ /// Cutting it up will yield this.
+ var/stack_type = /obj/item/stack/sheet/cloth
+ /// The number of sheets dropped by this bedsheet when cut
var/stack_amount = 3
/// Denotes if the bedsheet is a single, double, or other kind of bedsheet
var/bedsheet_type = BEDSHEET_SINGLE
@@ -126,7 +124,7 @@ LINEN BINS
/obj/item/bedsheet/attackby(obj/item/I, mob/user, params)
if(I.tool_behaviour == TOOL_WIRECUTTER || I.get_sharpness())
if (!(flags_1 & HOLOGRAM_1))
- var/obj/item/stack/sheet/cloth/shreds = new (get_turf(src), stack_amount)
+ var/obj/item/stack/shreds = new stack_type(get_turf(src), stack_amount)
if(!QDELETED(shreds)) //stacks merged
transfer_fingerprints_to(shreds)
shreds.add_fingerprint(user)
@@ -338,6 +336,60 @@ LINEN BINS
inhand_icon_state = "sheetian"
dream_messages = list("a dog", "a corgi", "woof", "bark", "arf")
+/obj/item/bedsheet/runtime
+ icon_state = "sheetruntime"
+ inhand_icon_state = "sheetruntime"
+ dream_messages = list("a kitty", "a cat", "meow", "purr", "nya~")
+
+/obj/item/bedsheet/pirate
+ name = "pirate's bedsheet"
+ desc = "It has a Jolly Roger emblem on it and has a faint scent of grog."
+ icon_state = "sheetpirate"
+ inhand_icon_state = "sheetpirate"
+ dream_messages = list(
+ "a buried treasure",
+ "an island",
+ "a monkey",
+ "a parrot",
+ "a swashbuckler",
+ "a talking skull",
+ "avast",
+ "being a pirate",
+ "'cause a pirate is free",
+ "doing whatever you want",
+ "gold",
+ "landlubbers",
+ "stealing",
+ "sailing the Seven Seas",
+ "yarr",
+ )
+
+/obj/item/bedsheet/gondola
+ name = "gondola bedsheet"
+ desc = "A precious bedsheet made from the hide of a endangered and peculiar critter."
+ icon_state = "sheetgondola"
+ inhand_icon_state = "sheetgondola"
+ dream_messages = list("peace", "comfiness", "a rare critter", "a harmless creature")
+ stack_type = /obj/item/stack/sheet/animalhide/gondola
+ stack_amount = 1
+ ///one of four icon states that represent its mouth
+ var/gondola_mouth
+ ///one of four icon states that represent its eyes
+ var/gondola_eyes
+
+/obj/item/bedsheet/gondola/Initialize(mapload)
+ . = ..()
+ gondola_mouth = "sheetgondola_mouth[rand(1, 4)]"
+ gondola_eyes = "sheetgondola_eyes[rand(1, 4)]"
+ add_overlay(gondola_mouth)
+ add_overlay(gondola_eyes)
+
+/obj/item/bedsheet/gondola/worn_overlays(mutable_appearance/standing, isinhands, icon_file)
+ . = ..()
+ if(!isinhands)
+ . += mutable_appearance(icon_file, gondola_mouth)
+ . += mutable_appearance(icon_file, gondola_eyes)
+
/obj/item/bedsheet/cosmos
name = "cosmic space bedsheet"
desc = "Made from the dreams of those who wonder at the stars."
@@ -347,65 +399,6 @@ LINEN BINS
light_power = 2
light_range = 1.4
-/obj/item/bedsheet/random
- icon_state = "random_bedsheet"
- name = "random bedsheet"
- desc = "If you're reading this description ingame, something has gone wrong! Honk!"
- bedsheet_type = BEDSHEET_ABSTRACT
- item_flags = ABSTRACT
- var/static/list/bedsheet_list
- var/spawn_type = BEDSHEET_SINGLE
-
-/obj/item/bedsheet/random/Initialize(mapload)
- ..()
- if(!LAZYACCESS(bedsheet_list, spawn_type))
- var/list/spawn_list = list()
- var/list/possible_types = typesof(/obj/item/bedsheet)
- for(var/obj/item/bedsheet/sheet as anything in possible_types)
- if(initial(sheet.bedsheet_type) == spawn_type)
- spawn_list += sheet
- LAZYSET(bedsheet_list, spawn_type, spawn_list)
- var/chosen_type = pick(bedsheet_list[spawn_type])
- new chosen_type(loc)
- return INITIALIZE_HINT_QDEL
-
-/obj/item/bedsheet/random/double
- icon_state = "random_bedsheet"
- spawn_type = BEDSHEET_DOUBLE
-
-/obj/item/bedsheet/dorms
- icon_state = "random_bedsheet"
- name = "random dorms bedsheet"
- desc = "If you're reading this description ingame, something has gone wrong! Honk!"
- bedsheet_type = BEDSHEET_DOUBLE
- item_flags = ABSTRACT
- slot_flags = null
-
-/obj/item/bedsheet/dorms/Initialize(mapload)
- ..()
- var/type = pick_weight(list("Colors" = 80, "Special" = 20))
- switch(type)
- if("Colors")
- type = pick(list(/obj/item/bedsheet,
- /obj/item/bedsheet/blue,
- /obj/item/bedsheet/green,
- /obj/item/bedsheet/grey,
- /obj/item/bedsheet/orange,
- /obj/item/bedsheet/purple,
- /obj/item/bedsheet/red,
- /obj/item/bedsheet/yellow,
- /obj/item/bedsheet/brown,
- /obj/item/bedsheet/black))
- if("Special")
- type = pick(list(/obj/item/bedsheet/patriot,
- /obj/item/bedsheet/rainbow,
- /obj/item/bedsheet/ian,
- /obj/item/bedsheet/cosmos,
- /obj/item/bedsheet/nanotrasen))
- var/obj/item/bedsheet = new type(loc)
- bedsheet.dir = dir
- return INITIALIZE_HINT_QDEL
-
/obj/item/bedsheet/double
icon_state = "double_sheetwhite"
worn_icon_state = "sheetwhite"
@@ -558,45 +551,16 @@ LINEN BINS
worn_icon_state = "sheetian"
bedsheet_type = BEDSHEET_DOUBLE
+/obj/item/bedsheet/runtime/double
+ icon_state = "double_sheetruntime"
+ worn_icon_state = "sheetruntime"
+ bedsheet_type = BEDSHEET_DOUBLE
+
/obj/item/bedsheet/cosmos/double
icon_state = "double_sheetcosmos"
worn_icon_state = "sheetcosmos"
bedsheet_type = BEDSHEET_DOUBLE
-/obj/item/bedsheet/dorms_double
- icon_state = "random_bedsheet"
- item_flags = ABSTRACT
- bedsheet_type = BEDSHEET_ABSTRACT
-
-/obj/item/bedsheet/dorms_double/Initialize(mapload)
- ..()
- var/type = pick_weight(list("Colors" = 80, "Special" = 20))
- switch(type)
- if("Colors")
- type = pick(list(
- /obj/item/bedsheet/double,
- /obj/item/bedsheet/blue/double,
- /obj/item/bedsheet/green/double,
- /obj/item/bedsheet/grey/double,
- /obj/item/bedsheet/orange/double,
- /obj/item/bedsheet/purple/double,
- /obj/item/bedsheet/red/double,
- /obj/item/bedsheet/yellow/double,
- /obj/item/bedsheet/brown/double,
- /obj/item/bedsheet/black/double,
- ))
- if("Special")
- type = pick(list(
- /obj/item/bedsheet/patriot/double,
- /obj/item/bedsheet/rainbow/double,
- /obj/item/bedsheet/ian/double,
- /obj/item/bedsheet/cosmos/double,
- /obj/item/bedsheet/nanotrasen/double,
- ))
- var/obj/item/bedsheet = new type(loc)
- bedsheet.dir = dir
- return INITIALIZE_HINT_QDEL
-
/obj/structure/bedsheetbin
name = "linen bin"
desc = "It looks rather cosy."
@@ -735,7 +699,3 @@ LINEN BINS
add_fingerprint(user)
return COMPONENT_CANCEL_ATTACK_CHAIN
-
-#undef BEDSHEET_ABSTRACT
-#undef BEDSHEET_SINGLE
-#undef BEDSHEET_DOUBLE
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
index 473fedfa10a..fdaa0c3b69e 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm
@@ -36,7 +36,7 @@
for(var/i in 1 to 5)
new /obj/item/reagent_containers/cup/glass/colocup(src)
-/obj/structure/closet/secure/closet/bar/lavaland_bartender_clothes
+/obj/structure/closet/secure_closet/bar/lavaland_bartender_clothes
name = "bartender's closet"
/obj/structure/closet/secure_closet/bar/lavaland_bartender_clothes/PopulateContents()
@@ -44,4 +44,3 @@
new /obj/item/clothing/glasses/sunglasses/reagent(src)
new /obj/item/clothing/suit/costume/hawaiian(src)
new /obj/item/clothing/shoes/sandal/beach(src)
-
diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm
index a38659aaefe..82e89314d68 100644
--- a/code/game/objects/structures/fluff.dm
+++ b/code/game/objects/structures/fluff.dm
@@ -305,3 +305,12 @@
anchored = FALSE
density = TRUE
deconstructible = TRUE
+
+/obj/structure/fluff/wallsign
+ name = "direction sign"
+ desc = "Now, where to go?"
+ density = FALSE
+ icon = 'icons/obj/fluff/general.dmi'
+ icon_state = "wallsign"
+
+MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fluff/wallsign, 32)
diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm
index 959f0c7a74c..fba9d5cecc4 100644
--- a/code/game/objects/structures/grille.dm
+++ b/code/game/objects/structures/grille.dm
@@ -9,7 +9,7 @@
base_icon_state = "grille"
density = TRUE
anchored = TRUE
- pass_flags_self = PASSGRILLE
+ pass_flags_self = PASSGRILLE | PASSWINDOW
obj_flags = CONDUCTS_ELECTRICITY
obj_flags = CAN_BE_HIT | IGNORE_DENSITY
pressure_resistance = 5*ONE_ATMOSPHERE
diff --git a/code/game/objects/structures/lavaland/ore_vent.dm b/code/game/objects/structures/lavaland/ore_vent.dm
index fe663efec48..08a4394346a 100644
--- a/code/game/objects/structures/lavaland/ore_vent.dm
+++ b/code/game/objects/structures/lavaland/ore_vent.dm
@@ -2,6 +2,7 @@
#define MINERAL_TYPE_OPTIONS_RANDOM 4
#define OVERLAY_OFFSET_START 0
#define OVERLAY_OFFSET_EACH 5
+#define MINERALS_PER_BOULDER 3
/obj/structure/ore_vent
name = "ore vent"
@@ -22,13 +23,8 @@
var/unique_vent = FALSE
/// What icon_state do we use when the ore vent has been tapped?
var/icon_state_tapped = "ore_vent_active"
-
/// A weighted list of what minerals are contained in this vent, with weight determining how likely each mineral is to be picked in produced boulders.
var/list/mineral_breakdown = list()
- /// How many rolls on the mineral_breakdown list are made per boulder produced? EG: 3 rolls means 3 minerals per boulder, with order determining percentage.
- var/minerals_per_boulder = 3
- /// How many minerals are picked to be in the ore vent? These are added to the mineral_breakdown list.
- var/minerals_per_breakdown = MINERAL_TYPE_OPTIONS_RANDOM
/// What size boulders does this vent produce?
var/boulder_size = BOULDER_SIZE_SMALL
/// Reference to this ore vent's NODE drone, to track wave success.
@@ -67,9 +63,9 @@
var/artifact_chance = 0
/// We use a cooldown to prevent the wave defense from being started multiple times.
COOLDOWN_DECLARE(wave_cooldown)
+ /// We use a cooldown to prevent players from tapping boulders rapidly from vents.
COOLDOWN_DECLARE(manual_vent_cooldown)
-
/obj/structure/ore_vent/Initialize(mapload)
if(mapload)
generate_description()
@@ -121,14 +117,14 @@
if(do_after(user, boulder_size * 1 SECONDS, src))
user.apply_damage(20, STAMINA)
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
- produce_boulder()
+ produce_boulder(TRUE)
visible_message(span_notice("You've successfully produced a boulder! Boy are your arms tired."))
/obj/structure/ore_vent/attack_basic_mob(mob/user, list/modifiers)
. = ..()
if(!HAS_TRAIT(user, TRAIT_BOULDER_BREAKER))
return
- produce_boulder()
+ produce_boulder(TRUE)
/obj/structure/ore_vent/is_buckle_possible(mob/living/target, force, check_loc)
. = ..()
@@ -155,17 +151,6 @@
context[SCREENTIP_CONTEXT_LMB] = "Scan vent"
return CONTEXTUAL_SCREENTIP_SET
-/**
- * Picks n types of materials to pack into a boulder created by this ore vent, where n is this vent's minerals_per_boulder.
- * Then assigns custom_materials based on boulder_size, assigned via the ore_quantity_function
- */
-/obj/structure/ore_vent/proc/create_mineral_contents()
- var/list/refined_list = list()
- for(var/iteration in 1 to minerals_per_boulder)
- var/datum/material/material = pick_weight(mineral_breakdown)
- refined_list[material] += ore_quantity_function(iteration)
- return refined_list
-
/**
* This proc is called when the ore vent is initialized, in order to determine what minerals boulders it spawns can contain.
* The materials available are determined by SSore_generation.ore_vent_minerals, which is a list of all minerals that can be contained in ore vents for a given cave generation.
@@ -372,22 +357,38 @@
* @params apply_cooldown Should we apply a cooldown to producing boulders? Default's false, used by manual boulder production (goldgrubs, golems, etc).
*/
/obj/structure/ore_vent/proc/produce_boulder(apply_cooldown = FALSE)
- if(!COOLDOWN_FINISHED(src, manual_vent_cooldown))
+ RETURN_TYPE(/obj/item/boulder)
+
+ //cooldown applies only for manual processing by hand
+ if(apply_cooldown && !COOLDOWN_FINISHED(src, manual_vent_cooldown))
return
+
+ //produce the boulder
var/obj/item/boulder/new_rock
if(prob(artifact_chance))
new_rock = new /obj/item/boulder/artifact(loc)
else
new_rock = new /obj/item/boulder(loc)
- var/list/mats_list = create_mineral_contents()
Shake(duration = 1.5 SECONDS)
+
+ //decorate the boulder with materials
+ var/list/mats_list = list()
+ for(var/iteration in 1 to MINERALS_PER_BOULDER)
+ var/datum/material/material = pick_weight(mineral_breakdown)
+ mats_list[material] += ore_quantity_function(iteration)
new_rock.set_custom_materials(mats_list)
- new_rock.flavor_boulder(src)
+
+ //set size & durability
+ new_rock.boulder_size = boulder_size
+ new_rock.durability = rand(2, boulder_size) //randomize durability a bit for some flavor.
+ new_rock.boulder_string = boulder_icon_state
+ new_rock.update_appearance(UPDATE_ICON_STATE)
+
+ //start the cooldown & return the boulder
if(apply_cooldown)
COOLDOWN_START(src, manual_vent_cooldown, 10 SECONDS)
return new_rock
-
//comes with the station, and is already tapped.
/obj/structure/ore_vent/starter_resources
name = "active ore vent"
@@ -402,12 +403,6 @@
)
/obj/structure/ore_vent/random
- /// Static list of ore vent types, for random generation.
- var/static/list/ore_vent_types = list(
- BOULDER_SIZE_SMALL,
- BOULDER_SIZE_MEDIUM,
- BOULDER_SIZE_LARGE,
- )
/obj/structure/ore_vent/random/Initialize(mapload)
. = ..()
@@ -446,7 +441,7 @@
/mob/living/simple_animal/hostile/asteroid/wolf,
)
ore_vent_options = list(
- "small",
+ SMALL_VENT_TYPE,
)
/obj/structure/ore_vent/random/icebox/lower
@@ -459,12 +454,11 @@
/mob/living/simple_animal/hostile/asteroid/wolf,
)
ore_vent_options = list(
- "small",
- "medium",
- "large",
+ SMALL_VENT_TYPE = 3,
+ MEDIUM_VENT_TYPE = 5,
+ LARGE_VENT_TYPE = 7,
)
-
/obj/structure/ore_vent/boss
name = "menacing ore vent"
desc = "An ore vent, brimming with underground ore. This one has an evil aura about it. Better be careful."
@@ -536,3 +530,4 @@
#undef MINERAL_TYPE_OPTIONS_RANDOM
#undef OVERLAY_OFFSET_START
#undef OVERLAY_OFFSET_EACH
+#undef MINERALS_PER_BOULDER
diff --git a/code/game/objects/structures/mannequin.dm b/code/game/objects/structures/mannequin.dm
index a4cc8a99ed1..29c313b0b54 100644
--- a/code/game/objects/structures/mannequin.dm
+++ b/code/game/objects/structures/mannequin.dm
@@ -64,6 +64,7 @@
icon_state = "mannequin_[material]_[body_type == FEMALE ? "female" : "male"]"
AddElement(/datum/element/strippable, GLOB.strippable_mannequin_items)
AddComponent(/datum/component/simple_rotation, ROTATION_IGNORE_ANCHORED)
+ AddComponent(/datum/component/marionette)
update_appearance()
/obj/structure/mannequin/Destroy()
@@ -202,7 +203,6 @@
name = "skeleton model"
desc = "Not to knock over."
material = MANNEQUIN_SKELETON
- anchored = TRUE
obj_flags = UNIQUE_RENAME
starting_items = list(
/obj/item/clothing/glasses/eyepatch,
diff --git a/code/game/objects/structures/shower.dm b/code/game/objects/structures/shower.dm
index 7b86a17e9dc..ab41615fd96 100644
--- a/code/game/objects/structures/shower.dm
+++ b/code/game/objects/structures/shower.dm
@@ -322,11 +322,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/shower, (-16))
reagents.remove_any(SHOWER_SPRAY_VOLUME)
-/obj/machinery/shower/deconstruct(disassembled = TRUE)
+/obj/machinery/shower/on_deconstruction(disassembled = TRUE)
new /obj/item/stack/sheet/iron(drop_location(), 2)
if(has_water_reclaimer)
new /obj/item/stock_parts/water_recycler(drop_location())
- qdel(src)
/obj/machinery/shower/proc/check_heat(mob/living/L)
var/mob/living/carbon/C = L
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index a0b8f9d79dc..debd4d81bc3 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -825,6 +825,12 @@
pass_flags_self = LETPASSTHROW //You can throw objects over this, despite it's density.
max_integrity = 20
+/obj/structure/rack/skeletal
+ name = "skeletal minibar"
+ desc = "Rattle me boozes!"
+ icon = 'icons/obj/fluff/general.dmi'
+ icon_state = "minibar"
+
/obj/structure/rack/Initialize(mapload)
. = ..()
AddElement(/datum/element/climbable)
diff --git a/code/game/objects/structures/toiletbong.dm b/code/game/objects/structures/toiletbong.dm
index a0aaeeaa4bb..0ea21e9ff84 100644
--- a/code/game/objects/structures/toiletbong.dm
+++ b/code/game/objects/structures/toiletbong.dm
@@ -3,25 +3,28 @@
desc = "A repurposed toilet with re-arranged piping and an attached flamethrower. Why would anyone build this?"
icon = 'icons/obj/watercloset.dmi'
icon_state = "toiletbong"
+ base_icon_state = "toiletbong"
density = FALSE
anchored = TRUE
- var/emagged = FALSE
var/smokeradius = 1
var/mutable_appearance/weed_overlay
/obj/structure/toiletbong/Initialize(mapload)
. = ..()
+ create_storage()
+ AddComponent(/datum/component/simple_rotation, post_rotation = CALLBACK(src, PROC_REF(post_rotation)))
create_storage(max_total_storage = 100, max_slots = 12, canhold = /obj/item/food)
atom_storage.attack_hand_interact = FALSE
+ atom_storage.rustle_sound = FALSE
+ atom_storage.animated = FALSE
- weed_overlay = mutable_appearance('icons/obj/watercloset.dmi', "toiletbong_overlay")
+ weed_overlay = mutable_appearance('icons/obj/watercloset.dmi', "[base_icon_state]_overlay")
START_PROCESSING(SSobj, src)
-/obj/structure/toiletbong/update_icon()
+/obj/structure/toiletbong/update_overlays()
. = ..()
- cut_overlays()
if (LAZYLEN(contents))
- add_overlay(weed_overlay)
+ . += weed_overlay
/obj/structure/toiletbong/attack_hand(mob/living/carbon/user)
. = ..()
@@ -32,45 +35,45 @@
user.balloon_alert(user, "it's empty!")
return
user.visible_message(span_boldnotice("[user] takes a huge drag on the [src]."))
- if (do_after(user, 2 SECONDS, target = src))
- var/turf/toiletbong_location = loc
- toiletbong_location.hotspot_expose(1000, 5)
- for (var/obj/item/item in contents)
- if (item.resistance_flags & INDESTRUCTIBLE)
- user.balloon_alert(user, "[item.name] is blocking the pipes!")
- continue
- playsound(src, 'sound/items/modsuit/flamethrower.ogg', 50)
- var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/puff = new
- puff.set_up(smokeradius, holder = src, location = user, carry = item.reagents, efficiency = 20)
- puff.start()
- if (prob(5) && !emagged)
- if(islizard(user))
- user.balloon_alert(user, "a hidden treat!")
- user.visible_message(span_danger("[user] fishes a mouse out of the pipes."))
- else
- to_chat(user, span_userdanger("There was something disgusting in the pipes!"))
- user.visible_message(span_danger("[user] spits out a mouse."))
- user.adjust_disgust(50)
- user.vomit(VOMIT_CATEGORY_DEFAULT)
- var/mob/living/spawned_mob = new /mob/living/basic/mouse(get_turf(user))
- spawned_mob.faction |= "[REF(user)]"
- if(prob(50))
- for(var/j in 1 to rand(1, 3))
- step(spawned_mob, pick(NORTH,SOUTH,EAST,WEST))
- qdel(item)
- if(!emagged)
- break
- update_icon()
+ if (!do_after(user, 2 SECONDS, target = src))
+ return
+ var/turf/toiletbong_location = loc
+ toiletbong_location.hotspot_expose(1000, 5)
+ for (var/obj/item/item in contents)
+ if (item.resistance_flags & INDESTRUCTIBLE)
+ user.balloon_alert(user, "[item.name] is blocking the pipes!")
+ continue
+ playsound(src, 'sound/items/modsuit/flamethrower.ogg', 50)
+ var/datum/effect_system/fluid_spread/smoke/chem/smoke_machine/puff = new
+ puff.set_up(smokeradius, holder = src, location = user, carry = item.reagents, efficiency = 20)
+ puff.start()
+ if (prob(5) && !(obj_flags & EMAGGED))
+ if(user.get_liked_foodtypes() & GORE)
+ user.balloon_alert(user, "a hidden treat!")
+ user.visible_message(span_danger("[user] fishes a mouse out of the pipes."))
+ else
+ to_chat(user, span_userdanger("There was something disgusting in the pipes!"))
+ user.visible_message(span_danger("[user] spits out a mouse."))
+ user.adjust_disgust(50)
+ user.vomit(VOMIT_CATEGORY_DEFAULT)
+ var/mob/living/spawned_mob = new /mob/living/basic/mouse(get_turf(user))
+ spawned_mob.faction |= "[REF(user)]"
+ if(prob(50))
+ for(var/j in 1 to rand(1, 3))
+ step(spawned_mob, pick(NORTH,SOUTH,EAST,WEST))
+ qdel(item)
+ if(!(obj_flags & EMAGGED))
+ break
+ update_appearance(UPDATE_ICON)
/obj/structure/toiletbong/wrench_act(mob/living/user, obj/item/tool)
- tool.play_tool_sound(src)
- if(anchored)
- to_chat(user, span_notice("You begin unsecuring the [src]."))
- anchored = FALSE
- else
- to_chat(user, span_notice("You secure the [src] to the floor."))
- anchored = TRUE
- return TRUE
+ ..()
+ default_unfasten_wrench(user, tool)
+ return ITEM_INTERACT_SUCCESS
+
+///Called in the simple rotation's post_rotation callback, playing a sound cue to players.
+/obj/structure/toiletbong/proc/post_rotation(mob/user, degrees)
+ playsound(src, 'sound/items/deconstruct.ogg', 50)
/obj/structure/toiletbong/crowbar_act(mob/living/user, obj/item/tool)
if(anchored)
@@ -86,26 +89,18 @@
qdel(src)
return TRUE
-/obj/structure/toiletbong/AltClick(mob/living/user)
- if(anchored)
- return ..()
- setDir(turn(dir,90))
- playsound(src, 'sound/items/deconstruct.ogg', 50)
- return
-
/obj/structure/toiletbong/emag_act(mob/user, obj/item/card/emag/emag_card)
+ if(obj_flags & EMAGGED)
+ return FALSE
+ obj_flags |= EMAGGED
+ smokeradius = 2
playsound(src, 'sound/effects/fish_splash.ogg', 50)
- user.balloon_alert(user, "whoops!")
- if(!emagged)
- emagged = TRUE
- smokeradius = 2
- balloon_alert(user, "toilet broke")
- if (emag_card)
- to_chat(user, span_boldwarning("The [emag_card] falls into the toilet. You fish it back out. Looks like you broke the toilet."))
- return TRUE
- return FALSE
+ balloon_alert(user, "toilet broke")
+ if (emag_card)
+ to_chat(user, span_boldwarning("The [emag_card] falls into the toilet. You fish it back out. Looks like you broke the toilet."))
+ return TRUE
-/obj/structure/toiletbong/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/card/emag))
+/obj/structure/toiletbong/attackby(obj/item/attacking_item, mob/user, params)
+ if(istype(attacking_item, /obj/item/card/emag))
return
- . = ..()
+ return ..()
diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
index cc9de4cdb95..44952801ec7 100644
--- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
+++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm
@@ -15,7 +15,7 @@
/obj/structure/c_transit_tube/Initialize(mapload)
. = ..()
- AddComponent(/datum/component/simple_rotation, AfterRotation = CALLBACK(src, PROC_REF(AfterRotation)))
+ AddComponent(/datum/component/simple_rotation, post_rotation = CALLBACK(src, PROC_REF(post_rotation)))
/obj/structure/c_transit_tube/proc/can_wrench_in_loc(mob/user)
var/turf/source_turf = get_turf(loc)
@@ -27,7 +27,7 @@
return FALSE
return TRUE
-/obj/structure/c_transit_tube/proc/AfterRotation(mob/user, degrees)
+/obj/structure/c_transit_tube/proc/post_rotation(mob/user, degrees)
if(flipped_build_type && degrees == ROTATION_FLIP)
setDir(turn(dir, degrees)) //Turn back we don't actually flip
flipped = !flipped
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 755fd7653d2..2231fb67121 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -14,7 +14,7 @@
armor_type = /datum/armor/structure_window
can_atmos_pass = ATMOS_PASS_PROC
rad_insulation = RAD_VERY_LIGHT_INSULATION
- pass_flags_self = PASSGLASS
+ pass_flags_self = PASSGLASS | PASSWINDOW
set_dir_on_move = FALSE
flags_ricochet = RICOCHET_HARD
receive_ricochet_chance_mod = 0.5
@@ -67,7 +67,7 @@
flags_1 |= ALLOW_DARK_PAINTS_1
RegisterSignal(src, COMSIG_OBJ_PAINTED, PROC_REF(on_painted))
AddElement(/datum/element/atmos_sensitive, mapload)
- AddComponent(/datum/component/simple_rotation, ROTATION_NEEDS_ROOM, AfterRotation = CALLBACK(src, PROC_REF(AfterRotation)))
+ AddComponent(/datum/component/simple_rotation, ROTATION_NEEDS_ROOM, post_rotation = CALLBACK(src, PROC_REF(post_rotation)))
var/static/list/loc_connections = list(
COMSIG_ATOM_EXIT = PROC_REF(on_exit),
@@ -358,7 +358,7 @@
dropped_debris += new /obj/item/stack/rods(location, (fulltile ? 2 : 1))
return dropped_debris
-/obj/structure/window/proc/AfterRotation(mob/user, degrees)
+/obj/structure/window/proc/post_rotation(mob/user, degrees)
air_update_turf(TRUE, FALSE)
/obj/structure/window/proc/on_painted(obj/structure/window/source, mob/user, obj/item/toy/crayon/spraycan/spraycan, is_dark_color)
@@ -932,6 +932,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw
icon_state = "clockwork_window-single"
glass_type = /obj/item/stack/sheet/bronze
+MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/bronze/spawner, 0)
+
/obj/structure/window/bronze/unanchored
anchored = FALSE
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 20e4a13d574..4f98ed4a807 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -50,7 +50,7 @@
//allocate a channel if necessary now so its the same for everyone
channel = channel || SSsounds.random_available_channel()
- var/sound/S = sound(get_sfx(soundin))
+ var/sound/S = isdatum(soundin) ? soundin : sound(get_sfx(soundin))
var/maxdistance = SOUND_RANGE + extrarange
var/source_z = turf_source.z
var/list/listeners = SSmobs.clients_by_zlevel[source_z].Copy()
diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm
index d68fbe51b3e..408dc9ee590 100644
--- a/code/game/turfs/closed/indestructible.dm
+++ b/code/game/turfs/closed/indestructible.dm
@@ -121,6 +121,16 @@ NOVA EDIT REMOVAL END */
smoothing_groups = SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS
canSmoothWith = SMOOTH_GROUP_WALLS
+/turf/closed/indestructible/reinforced/titanium
+ name = "reinforced titanium imitation wall"
+ desc = "A huge chunk of reinforced metal used to separate rooms. Naturally, to cut down on costs, this is just a really good paint job to resemble titanium. Effectively impervious to conventional methods of destruction."
+ icon = 'icons/turf/walls/shuttle_wall.dmi'
+ icon_state = "shuttle_wall-0"
+ base_icon_state = "shuttle_wall"
+
+/turf/closed/indestructible/reinforced/titanium/nodiagonal
+ icon_state = "shuttle_wall-15"
+ smoothing_flags = SMOOTH_BITMASK
/turf/closed/indestructible/riveted
icon = 'icons/turf/walls/riveted.dmi'
diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm
index e049c2c393f..472935f5ae5 100644
--- a/code/game/turfs/open/_open.dm
+++ b/code/game/turfs/open/_open.dm
@@ -115,12 +115,28 @@
/turf/open/indestructible/TerraformTurf(path, new_baseturf, flags, defer_change = FALSE, ignore_air = FALSE)
return
+
+/turf/open/indestructible/large
+ icon_state = "floor_large"
+
/turf/open/indestructible/white
icon_state = "white"
+/turf/open/indestructible/white/smooth_large
+ icon_state = "white_large"
+
+/turf/open/indestructible/white/textured
+ icon_state = "textured_white"
+
/turf/open/indestructible/dark
icon_state = "darkfull"
+/turf/open/indestructible/dark/textured
+ icon_state = "textured_dark"
+
+/turf/open/indestructible/dark/smooth_large
+ icon_state = "dark_large"
+
/turf/open/indestructible/light
icon_state = "light_on-1"
@@ -232,6 +248,9 @@
/turf/open/indestructible/meat/airless
initial_gas_mix = AIRLESS_ATMOS
+/turf/open/indestructible/vault
+ icon_state = "rockvault"
+
/turf/open/indestructible/plating
name = "plating"
icon_state = "plating"
@@ -243,6 +262,18 @@
/turf/open/indestructible/plating/airless
initial_gas_mix = AIRLESS_ATMOS
+/turf/open/indestructible/kitchen
+ icon_state = /turf/open/floor/iron/kitchen::icon_state
+
+/turf/open/indestructible/rockyground
+ icon_state = /turf/open/misc/ashplanet/rocky::icon_state
+ icon = /turf/open/misc/ashplanet/rocky::icon
+ name = /turf/open/misc/ashplanet/rocky::name
+
+/turf/open/indestructible/stone
+ icon_state = /turf/open/floor/stone::icon_state
+ name = /turf/open/floor/stone::name
+
/turf/open/Initalize_Atmos(time)
excited = FALSE
update_visuals()
diff --git a/code/game/turfs/open/chasm.dm b/code/game/turfs/open/chasm.dm
index 48ab1ceca38..142d966172b 100644
--- a/code/game/turfs/open/chasm.dm
+++ b/code/game/turfs/open/chasm.dm
@@ -119,3 +119,19 @@
/turf/open/chasm/true/apply_components(mapload)
AddComponent(/datum/component/chasm, null, mapload) //Don't pass anything for below_turf.
+
+/turf/open/chasm/true/no_smooth
+ smoothing_flags = NONE
+
+/turf/open/chasm/true/no_smooth/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
+ return FALSE
+
+/turf/open/chasm/true/no_smooth/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, list/rcd_data)
+ return FALSE
+
+/turf/open/chasm/true/no_smooth/attackby(obj/item/item, mob/user, params, area/area_restriction)
+ if(istype(item, /obj/item/stack/rods))
+ return
+ else if(istype(item, /obj/item/stack/tile/iron))
+ return
+ return ..()
diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm
index 1a174723d85..8f9e7b44aa6 100644
--- a/code/game/turfs/open/lava.dm
+++ b/code/game/turfs/open/lava.dm
@@ -52,7 +52,8 @@
/turf/open/lava/Destroy()
for(var/mob/living/leaving_mob in contents)
- REMOVE_TRAIT(leaving_mob, TRAIT_PERMANENTLY_ONFIRE, TURF_TRAIT)
+ leaving_mob.RemoveElement(/datum/element/perma_fire_overlay)
+ REMOVE_TRAIT(leaving_mob, TRAIT_NO_EXTINGUISH, TURF_TRAIT)
return ..()
/turf/open/lava/update_overlays()
@@ -144,7 +145,8 @@
/turf/open/lava/Exited(atom/movable/gone, direction)
. = ..()
if(isliving(gone) && !islava(gone.loc))
- REMOVE_TRAIT(gone, TRAIT_PERMANENTLY_ONFIRE, TURF_TRAIT)
+ gone.RemoveElement(/datum/element/perma_fire_overlay)
+ REMOVE_TRAIT(gone, TRAIT_NO_EXTINGUISH, TURF_TRAIT)
/turf/open/lava/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum)
if(burn_stuff(AM))
@@ -292,11 +294,10 @@
if(QDELETED(burn_target))
return FALSE
- . = TRUE
if(isobj(burn_target))
var/obj/burn_obj = burn_target
if(burn_obj.resistance_flags & ON_FIRE) // already on fire; skip it.
- return
+ return TRUE
if(!(burn_obj.resistance_flags & FLAMMABLE))
burn_obj.resistance_flags |= FLAMMABLE //Even fireproof things burn up in lava
if(burn_obj.resistance_flags & FIRE_PROOF)
@@ -305,17 +306,21 @@
burn_obj.set_armor_rating(FIRE, 50)
burn_obj.fire_act(temperature_damage, 1000 * seconds_per_tick)
if(istype(burn_obj, /obj/structure/closet))
- var/obj/structure/closet/burn_closet = burn_obj
- for(var/burn_content in burn_closet.contents)
+ for(var/burn_content in burn_target)
burn_stuff(burn_content)
- return
+ return TRUE
- var/mob/living/burn_living = burn_target
- ADD_TRAIT(burn_living, TRAIT_PERMANENTLY_ONFIRE, TURF_TRAIT)
- burn_living.ignite_mob()
- burn_living.adjust_fire_stacks(lava_firestacks * seconds_per_tick)
- burn_living.update_fire()
- burn_living.adjustFireLoss(lava_damage * seconds_per_tick)
+ if(isliving(burn_target))
+ var/mob/living/burn_living = burn_target
+ if(!HAS_TRAIT_FROM(burn_living, TRAIT_NO_EXTINGUISH, TURF_TRAIT))
+ burn_living.AddElement(/datum/element/perma_fire_overlay)
+ ADD_TRAIT(burn_living, TRAIT_NO_EXTINGUISH, TURF_TRAIT)
+ burn_living.adjust_fire_stacks(lava_firestacks * seconds_per_tick)
+ burn_living.ignite_mob()
+ burn_living.adjustFireLoss(lava_damage * seconds_per_tick)
+ return TRUE
+
+ return FALSE
/turf/open/lava/can_cross_safely(atom/movable/crossing)
return HAS_TRAIT(src, TRAIT_LAVA_STOPPED) || HAS_TRAIT(crossing, immunity_trait ) || HAS_TRAIT(crossing, TRAIT_MOVE_FLYING)
diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
index 66004140e59..14d8d737886 100644
--- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
+++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm
@@ -446,7 +446,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
if(ishuman(victim))
var/mob/living/carbon/human/human_victim = victim
species = span_notice("[human_victim.dna.species.name]")
- if(human_victim.mind && human_victim.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(IS_CHANGELING(human_victim))
species = span_warning("Changeling lifeform")
var/obj/item/organ/internal/heart/gland/temp = locate() in human_victim.organs
if(temp)
diff --git a/code/modules/antagonists/brainwashing/brainwashing.dm b/code/modules/antagonists/brainwashing/brainwashing.dm
index 7a84fc183c4..524bfb04362 100644
--- a/code/modules/antagonists/brainwashing/brainwashing.dm
+++ b/code/modules/antagonists/brainwashing/brainwashing.dm
@@ -54,10 +54,6 @@
owner.announce_objectives()
return ..()
-/datum/antagonist/brainwashed/on_mindshield(mob/implanter)
- owner.remove_antag_datum(/datum/antagonist/brainwashed)
- return COMPONENT_MINDSHIELD_DECONVERTED
-
/datum/antagonist/brainwashed/admin_add(datum/mind/new_owner,mob/admin)
var/mob/living/carbon/C = new_owner.current
if(!istype(C))
diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm
index 9e8c0fa04e9..59656fd80bd 100644
--- a/code/modules/antagonists/changeling/changeling_power.dm
+++ b/code/modules/antagonists/changeling/changeling_power.dm
@@ -44,7 +44,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p
/datum/action/changeling/Trigger(trigger_flags)
var/mob/user = owner
- if(!user || !user.mind || !user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(!user || !IS_CHANGELING(user))
return
try_to_sting(user)
@@ -61,7 +61,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p
/datum/action/changeling/proc/try_to_sting(mob/living/user, mob/living/target)
if(!can_sting(user, target))
return FALSE
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(sting_action(user, target))
sting_feedback(user, target)
changeling.adjust_chemicals(-chemical_cost)
@@ -81,7 +81,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p
/datum/action/changeling/proc/can_sting(mob/living/user, mob/living/target)
if(!can_be_used_by(user))
return FALSE
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(changeling.chem_charges < chemical_cost)
user.balloon_alert(user, "needs [chemical_cost] chemicals!")
return FALSE
diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm
index 1fdb50a7bab..5bd0f390cb8 100644
--- a/code/modules/antagonists/changeling/powers/absorb.dm
+++ b/code/modules/antagonists/changeling/powers/absorb.dm
@@ -24,13 +24,13 @@
return
var/mob/living/carbon/target = owner.pulling
- var/datum/antagonist/changeling/changeling = owner.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(owner)
return changeling.can_absorb_dna(target)
/datum/action/changeling/absorb_dna/sting_action(mob/owner)
SHOULD_CALL_PARENT(FALSE) // the only reason to call parent is for proper blackbox logging, and we do that ourselves in a snowflake way
- var/datum/antagonist/changeling/changeling = owner.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(owner)
var/mob/living/carbon/human/target = owner.pulling
is_absorbing = TRUE
@@ -68,7 +68,7 @@
/datum/action/changeling/absorb_dna/proc/absorb_memories(mob/living/carbon/human/target)
var/datum/mind/suckedbrain = target.mind
- var/datum/antagonist/changeling/changeling = owner.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(owner)
for(var/memory_type in suckedbrain.memories)
var/datum/memory/stolen_memory = suckedbrain.memories[memory_type]
@@ -109,7 +109,7 @@
to_chat(owner, span_boldnotice("We have no more knowledge of [target]'s speech patterns."))
- var/datum/antagonist/changeling/target_ling = target.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/target_ling = IS_CHANGELING(target)
if(target_ling)//If the target was a changeling, suck out their extra juice and objective points!
to_chat(owner, span_boldnotice("[target] was one of us. We have absorbed their power."))
diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm
index eba507ad5e0..ef3070356d5 100644
--- a/code/modules/antagonists/changeling/powers/biodegrade.dm
+++ b/code/modules/antagonists/changeling/powers/biodegrade.dm
@@ -65,6 +65,18 @@
..()
return TRUE
+ var/obj/item/clothing/shoes/shoes = user.shoes
+ if(istype(shoes) && shoes.tied == SHOES_KNOTTED && !(shoes.resistance_flags & (INDESTRUCTIBLE|UNACIDABLE|ACID_PROOF)))
+ new /obj/effect/decal/cleanable/greenglow(shoes.drop_location())
+ user.visible_message(
+ span_warning("[user] vomits a glob of acid on [user.p_their()] tied up [shoes.name], melting [shoes.p_them()] into a pool of goo!"),
+ span_warning("We vomit acidic ooze onto our tied up [shoes.name], melting [shoes.p_them()] into a pool of goo!"),
+ )
+ log_combat(user, shoes, "melted own shoes", addition = "(biodegrade)")
+ qdel(shoes)
+ ..()
+ return TRUE
+
user.balloon_alert(user, "already free!")
return FALSE
diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm
index cd748e83159..921dde35492 100644
--- a/code/modules/antagonists/changeling/powers/fakedeath.dm
+++ b/code/modules/antagonists/changeling/powers/fakedeath.dm
@@ -40,6 +40,7 @@
return
changeling.fakedeath(CHANGELING_TRAIT)
+ ADD_TRAIT(changeling, TRAIT_STASIS, CHANGELING_TRAIT)
addtimer(CALLBACK(src, PROC_REF(ready_to_regenerate), changeling), fakedeath_duration * duration_modifier, TIMER_UNIQUE)
// Basically, these let the ling exit stasis without giving away their ling-y-ness if revived through other means
RegisterSignal(changeling, SIGNAL_REMOVETRAIT(TRAIT_DEATHCOMA), PROC_REF(fakedeath_reset))
@@ -54,6 +55,7 @@
revive_ready = FALSE
build_all_button_icons(UPDATE_BUTTON_NAME|UPDATE_BUTTON_ICON)
+ REMOVE_TRAIT(changeling, TRAIT_STASIS, CHANGELING_TRAIT)
UnregisterSignal(changeling, SIGNAL_REMOVETRAIT(TRAIT_DEATHCOMA))
UnregisterSignal(changeling, COMSIG_MOB_STATCHANGE)
@@ -116,7 +118,7 @@
if(QDELETED(src) || QDELETED(user))
return
- var/datum/antagonist/changeling/ling = user.mind?.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/ling = IS_CHANGELING(user)
if(QDELETED(ling) || !(src in ling.innate_powers + ling.purchased_powers)) // checking both innate and purchased for full coverage
return
if(!HAS_TRAIT_FROM(user, TRAIT_DEATHCOMA, CHANGELING_TRAIT))
diff --git a/code/modules/antagonists/changeling/powers/lesserform.dm b/code/modules/antagonists/changeling/powers/lesserform.dm
index 87bd7c7c8b6..55238ce762d 100644
--- a/code/modules/antagonists/changeling/powers/lesserform.dm
+++ b/code/modules/antagonists/changeling/powers/lesserform.dm
@@ -30,7 +30,7 @@
if(user.movement_type & VENTCRAWLING)
user.balloon_alert(user, "can't transform in pipes!")
return FALSE
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
var/datum/changeling_profile/chosen_form = select_form(changeling, user)
if(!chosen_form)
return FALSE
diff --git a/code/modules/antagonists/changeling/powers/mimic_voice.dm b/code/modules/antagonists/changeling/powers/mimic_voice.dm
index 3a9314a953a..9caf0abb450 100644
--- a/code/modules/antagonists/changeling/powers/mimic_voice.dm
+++ b/code/modules/antagonists/changeling/powers/mimic_voice.dm
@@ -9,7 +9,7 @@
// Fake Voice
/datum/action/changeling/mimicvoice/sting_action(mob/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(changeling.mimicing)
changeling.mimicing = ""
changeling.chem_recharge_slowdown -= 0.25
@@ -27,7 +27,7 @@
return TRUE
/datum/action/changeling/mimicvoice/Remove(mob/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(changeling?.mimicing)
changeling.chem_recharge_slowdown = max(0, changeling.chem_recharge_slowdown - 0.25)
changeling.mimicing = ""
diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm
index 9c5b6a10ec9..7ad2b14448c 100644
--- a/code/modules/antagonists/changeling/powers/mutations.dm
+++ b/code/modules/antagonists/changeling/powers/mutations.dm
@@ -121,7 +121,7 @@
//checks if we already have an organic suit and casts it off.
/datum/action/changeling/suit/proc/check_suit(mob/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(!ishuman(user) || !changeling)
return 1
var/mob/living/carbon/human/H = user
@@ -154,7 +154,7 @@
user.equip_to_slot_if_possible(new suit_type(user), ITEM_SLOT_OCLOTHING, 1, 1, 1)
user.equip_to_slot_if_possible(new helmet_type(user), ITEM_SLOT_HEAD, 1, 1, 1)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
changeling.chem_recharge_slowdown += recharge_slowdown
return TRUE
@@ -477,7 +477,7 @@
weapon_name_simple = "shield"
/datum/action/changeling/weapon/shield/sting_action(mob/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) //So we can read the absorbed_count.
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user) //So we can read the absorbed_count.
if(!changeling)
return
diff --git a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
index 8ed9c27599b..18fda4bf4ff 100644
--- a/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
+++ b/code/modules/antagonists/changeling/powers/pheromone_receptors.dm
@@ -15,14 +15,14 @@
/datum/action/changeling/pheromone_receptors/Remove(mob/living/carbon/user)
if(receptors_active)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
changeling.chem_recharge_slowdown -= 0.25
user.remove_status_effect(/datum/status_effect/agent_pinpointer/changeling)
..()
/datum/action/changeling/pheromone_receptors/sting_action(mob/living/carbon/user)
..()
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(!receptors_active)
to_chat(user, span_warning("We search for the scent of any nearby changelings."))
changeling.chem_recharge_slowdown += 0.25
@@ -49,7 +49,7 @@
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
if(C != owner && C.mind)
- var/datum/antagonist/changeling/antag_datum = C.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/antag_datum = IS_CHANGELING(C)
if(istype(antag_datum))
var/their_loc = get_turf(C)
var/distance = get_dist_euclidian(my_loc, their_loc)
diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm
index badd18f19f0..aa204d89a16 100644
--- a/code/modules/antagonists/changeling/powers/shriek.dm
+++ b/code/modules/antagonists/changeling/powers/shriek.dm
@@ -16,7 +16,7 @@
for(var/mob/living/M in get_hearers_in_view(4, user))
if(iscarbon(M))
var/mob/living/carbon/C = M
- if(!C.mind || !C.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(!IS_CHANGELING(C))
var/obj/item/organ/internal/ears/ears = C.get_organ_slot(ORGAN_SLOT_EARS)
if(ears)
ears.adjustEarDamage(0, 30)
diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm
index 918ed0d4398..25092a26258 100644
--- a/code/modules/antagonists/changeling/powers/tiny_prick.dm
+++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm
@@ -6,7 +6,7 @@
var/mob/user = owner
if(!user || !user.mind)
return
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(!changeling)
return
if(!changeling.chosen_sting)
@@ -17,7 +17,7 @@
/datum/action/changeling/sting/proc/set_sting(mob/user)
to_chat(user, span_notice("We prepare our sting. Alt+click or click the middle mouse button on a target to sting them."))
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
changeling.chosen_sting = src
changeling.lingstingdisplay.icon_state = button_icon_state
@@ -25,7 +25,7 @@
/datum/action/changeling/sting/proc/unset_sting(mob/user)
to_chat(user, span_warning("We retract our sting, we can't sting anyone for now."))
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
changeling.chosen_sting = null
changeling.lingstingdisplay.icon_state = null
@@ -40,7 +40,7 @@
/datum/action/changeling/sting/can_sting(mob/user, mob/target)
if(!..())
return
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(!changeling.chosen_sting)
to_chat(user, "We haven't prepared our sting yet!")
if(!iscarbon(target))
@@ -53,7 +53,7 @@
return // NOVA EDIT END
if(!length(get_path_to(user, target, max_distance = changeling.sting_range, simulated_only = FALSE)))
return // no path within the sting's range is found. what a weird place to use the pathfinding system
- if(target.mind && target.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(IS_CHANGELING(target))
sting_feedback(user, target)
changeling.chem_charges -= chemical_cost
return 1
@@ -62,7 +62,7 @@
if(!target)
return
to_chat(user, span_notice("We stealthily sting [target.name]."))
- if(target.mind && target.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(IS_CHANGELING(target))
to_chat(target, span_warning("You feel a tiny prick."))
return 1
@@ -96,7 +96,7 @@
/datum/action/changeling/sting/transformation/set_sting(mob/user)
selected_dna = null
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
var/datum/changeling_profile/new_selected_dna = changeling.select_dna()
if(QDELETED(src) || QDELETED(changeling) || QDELETED(user))
return
@@ -200,13 +200,13 @@
/datum/action/changeling/sting/extract_dna/can_sting(mob/user, mob/target)
if(..())
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
return changeling.can_absorb_dna(target)
/datum/action/changeling/sting/extract_dna/sting_action(mob/user, mob/living/carbon/human/target)
..()
log_combat(user, target, "stung", "extraction sting")
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
if(!changeling.has_profile_with_dna(target.dna))
changeling.add_new_profile(target)
return TRUE
diff --git a/code/modules/antagonists/changeling/powers/transform.dm b/code/modules/antagonists/changeling/powers/transform.dm
index 69f21b0e44e..aea06a27e1e 100644
--- a/code/modules/antagonists/changeling/powers/transform.dm
+++ b/code/modules/antagonists/changeling/powers/transform.dm
@@ -13,7 +13,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/glasses/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -25,7 +25,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/under/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -38,7 +38,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/suit/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -51,7 +51,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/head/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -63,7 +63,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/shoes/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -75,7 +75,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/gloves/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -87,7 +87,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/clothing/mask/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -100,7 +100,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/item/changeling/attack_hand(mob/user, list/modifiers)
- if(loc == user && user.mind && user.mind.has_antag_datum(/datum/antagonist/changeling))
+ if(loc == user && IS_CHANGELING(user))
to_chat(user, span_notice("You reabsorb [src] into your body."))
qdel(src)
return
@@ -134,7 +134,7 @@
//Change our DNA to that of somebody we've absorbed.
/datum/action/changeling/transform/sting_action(mob/living/carbon/human/user)
- var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling = IS_CHANGELING(user)
var/datum/changeling_profile/chosen_prof = changeling.select_dna()
if(!chosen_prof)
@@ -186,7 +186,7 @@
/datum/antagonist/changeling/proc/check_menu(mob/living/carbon/user)
if(!istype(user))
return FALSE
- var/datum/antagonist/changeling/changeling_datum = user.mind.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling_datum = IS_CHANGELING(user)
if(!changeling_datum)
return FALSE
return TRUE
diff --git a/code/modules/antagonists/changeling/powers/void_adaption.dm b/code/modules/antagonists/changeling/powers/void_adaption.dm
index 76c0eeffc97..934ae2f5770 100644
--- a/code/modules/antagonists/changeling/powers/void_adaption.dm
+++ b/code/modules/antagonists/changeling/powers/void_adaption.dm
@@ -55,14 +55,14 @@
if (!should_be_active)
on_removed_adaption(void_adapted, "Our cells relax in safer air.")
return
- var/datum/antagonist/changeling/changeling_data = void_adapted.mind?.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling_data = IS_CHANGELING(void_adapted)
to_chat(void_adapted, span_changeling("Our cells harden themselves against the [pick(active_reasons)]."))
changeling_data?.chem_recharge_slowdown -= recharge_slowdown
currently_active = TRUE
/// Called when we stop being adapted
/datum/action/changeling/void_adaption/proc/on_removed_adaption(mob/living/former, message)
- var/datum/antagonist/changeling/changeling_data = former.mind?.has_antag_datum(/datum/antagonist/changeling)
+ var/datum/antagonist/changeling/changeling_data = IS_CHANGELING(former)
to_chat(former, span_changeling(message))
changeling_data?.chem_recharge_slowdown += recharge_slowdown
currently_active = FALSE
diff --git a/code/modules/antagonists/heretic/heretic_knowledge.dm b/code/modules/antagonists/heretic/heretic_knowledge.dm
index cb9f3b75ccc..f2cf7b00047 100644
--- a/code/modules/antagonists/heretic/heretic_knowledge.dm
+++ b/code/modules/antagonists/heretic/heretic_knowledge.dm
@@ -211,7 +211,8 @@
/datum/heretic_knowledge/spell/on_lose(mob/user, datum/antagonist/heretic/our_heretic)
var/datum/action/cooldown/spell/created_spell = created_spell_ref?.resolve()
- created_spell?.Remove(user)
+ if(created_spell?.owner == user)
+ created_spell.Remove(user)
/**
* A knowledge subtype for knowledge that can only
diff --git a/code/modules/antagonists/heretic/items/heretic_necks.dm b/code/modules/antagonists/heretic/items/heretic_necks.dm
index 44e387cf970..c1f244dfd0e 100644
--- a/code/modules/antagonists/heretic/items/heretic_necks.dm
+++ b/code/modules/antagonists/heretic/items/heretic_necks.dm
@@ -55,7 +55,7 @@
// The amulette conversion tool used by moon heretics
/obj/item/clothing/neck/heretic_focus/moon_amulette
name = "Moonlight Amulette"
- desc = "A piece of the mind, the sight and the moon. Gazing into it makes your head spin and hear whispers of laughter and joy."
+ desc = "A piece of the mind, the soul and the moon. Gazing into it makes your head spin and hear whispers of laughter and joy."
icon = 'icons/obj/antags/eldritch.dmi'
icon_state = "moon_amulette"
w_class = WEIGHT_CLASS_SMALL
@@ -64,7 +64,7 @@
/obj/item/clothing/neck/heretic_focus/moon_amulette/attack(mob/living/target, mob/living/user, params)
var/mob/living/carbon/human/hit = target
- if(!IS_HERETIC(user))
+ if(!IS_HERETIC_OR_MONSTER(user))
user.balloon_alert(user, "you feel a presence watching you")
user.add_mood_event("Moon Amulette Insanity", /datum/mood_event/amulette_insanity)
user.mob_mood.set_sanity(user.mob_mood.sanity - 50)
@@ -73,7 +73,7 @@
return
if(!hit.mob_mood)
return
- if(hit.mob_mood.sanity_level < SANITY_LEVEL_CRAZY)
+ if(hit.mob_mood.sanity_level < SANITY_LEVEL_UNSTABLE)
user.balloon_alert(user, "their mind is too strong!")
hit.add_mood_event("Moon Amulette Insanity", /datum/mood_event/amulette_insanity)
hit.mob_mood.set_sanity(hit.mob_mood.sanity - sanity_damage)
diff --git a/code/modules/antagonists/heretic/items/keyring.dm b/code/modules/antagonists/heretic/items/keyring.dm
index a6a53bc3cee..b71015dbfe1 100644
--- a/code/modules/antagonists/heretic/items/keyring.dm
+++ b/code/modules/antagonists/heretic/items/keyring.dm
@@ -3,7 +3,7 @@
desc = "A crack in space, impossibly deep and painful to the eyes. Definitely not safe."
icon = 'icons/effects/eldritch.dmi'
icon_state = "realitycrack"
- light_system = STATIC_LIGHT
+ light_system = COMPLEX_LIGHT
light_power = 1
light_on = TRUE
light_color = COLOR_GREEN
diff --git a/code/modules/antagonists/heretic/knowledge/blade_lore.dm b/code/modules/antagonists/heretic/knowledge/blade_lore.dm
index 257f87d7c9f..93983c41e0d 100644
--- a/code/modules/antagonists/heretic/knowledge/blade_lore.dm
+++ b/code/modules/antagonists/heretic/knowledge/blade_lore.dm
@@ -384,7 +384,7 @@
/datum/heretic_knowledge/ultimate/blade_final
name = "Maelstrom of Silver"
desc = "The ascension ritual of the Path of Blades. \
- Bring 3 headless corpses to a transmutation rune to complete the ritual. \
+ Bring 3 corpses with either no head or a split skull to a transmutation rune to complete the ritual. \
When completed, you will be surrounded in a constant, regenerating orbit of blades. \
These blades will protect you from all attacks, but are consumed on use. \
Your Furious Steel spell will also have a shorter cooldown. \
@@ -399,7 +399,7 @@
if(!.)
return FALSE
- return !sacrifice.get_bodypart(BODY_ZONE_HEAD)
+ return !sacrifice.get_bodypart(BODY_ZONE_HEAD) || HAS_TRAIT(sacrifice, TRAIT_HAS_CRANIAL_FISSURE)
/datum/heretic_knowledge/ultimate/blade_final/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc)
. = ..()
diff --git a/code/modules/antagonists/heretic/knowledge/moon_lore.dm b/code/modules/antagonists/heretic/knowledge/moon_lore.dm
index 57d99a355f0..d7d1bd3bf22 100644
--- a/code/modules/antagonists/heretic/knowledge/moon_lore.dm
+++ b/code/modules/antagonists/heretic/knowledge/moon_lore.dm
@@ -67,11 +67,11 @@
var/mob/living/carbon/carbon_target = target
to_chat(carbon_target, span_danger("You hear echoing laughter from above"))
carbon_target.cause_hallucination(/datum/hallucination/delusion/preset/moon, "delusion/preset/moon hallucination caused by mansus grasp")
- carbon_target.mob_mood.set_sanity(carbon_target.mob_mood.sanity-20)
+ carbon_target.mob_mood.set_sanity(carbon_target.mob_mood.sanity-30)
/datum/heretic_knowledge/spell/moon_smile
name = "Smile of the moon"
- desc = "Grants you Smile of the moon, a ranged spell muting, blinding and deafening the target for a\
+ desc = "Grants you Smile of the moon, a ranged spell muting, blinding, deafening and knocking down the target for a\
duration based on their sanity."
gain_text = "The moon smiles upon us all and those who see its true side can bring its joy."
next_knowledge = list(
@@ -112,7 +112,7 @@
/datum/heretic_knowledge/moon_amulette
name = "Moonlight Amulette"
- desc = "Allows you to transmute 2 sheets of glass, a pair of eyes, a brain and a tie \
+ desc = "Allows you to transmute 2 sheets of glass, a heart and a tie \
if the item is used on someone with low sanity they go berserk attacking everyone \
, if their sanity isnt low enough it decreases their mood."
gain_text = "At the head of the parade he stood, the moon condensed into one mass, a reflection of the soul."
@@ -124,7 +124,6 @@
/datum/heretic_knowledge/painting,
)
required_atoms = list(
- /obj/item/organ/internal/eyes = 1,
/obj/item/organ/internal/heart = 1,
/obj/item/stack/sheet/glass = 2,
/obj/item/clothing/neck/tie = 1,
@@ -190,11 +189,13 @@
/datum/heretic_knowledge/ultimate/moon_final/on_finished_recipe(mob/living/user, list/selected_atoms, turf/loc)
. = ..()
+ var/datum/antagonist/heretic/heretic_datum = IS_HERETIC(user)
priority_announce("[generate_heretic_text()] Laugh, for the ringleader [user.real_name] has ascended! \
The truth shall finally devour the lie! [generate_heretic_text()]","[generate_heretic_text()]", ANNOUNCER_SPANOMALIES)
user.client?.give_award(/datum/award/achievement/misc/moon_ascension, user)
ADD_TRAIT(user, TRAIT_MADNESS_IMMUNE, REF(src))
+ heretic_datum.add_team_hud(user, /datum/antagonist/lunatic)
RegisterSignal(user, COMSIG_LIVING_LIFE, PROC_REF(on_life))
@@ -237,6 +238,7 @@
amount_of_lunatics += 1
/datum/heretic_knowledge/ultimate/moon_final/proc/on_life(mob/living/source, seconds_per_tick, times_fired)
+ var/obj/effect/moon_effect = /obj/effect/temp_visual/moon_ringleader
SIGNAL_HANDLER
visible_hallucination_pulse(
@@ -251,6 +253,7 @@
continue
if(IS_HERETIC_OR_MONSTER(carbon_view))
continue
+ new moon_effect(get_turf(carbon_view))
carbon_view.adjust_confusion(2 SECONDS)
carbon_view.mob_mood.set_sanity(carbon_sanity - 5)
if(carbon_sanity < 30)
diff --git a/code/modules/antagonists/heretic/magic/flesh_surgery.dm b/code/modules/antagonists/heretic/magic/flesh_surgery.dm
index 0fb0a402da9..12b3fcfbcaf 100644
--- a/code/modules/antagonists/heretic/magic/flesh_surgery.dm
+++ b/code/modules/antagonists/heretic/magic/flesh_surgery.dm
@@ -85,23 +85,24 @@
/// If cast on an organ, we'll restore it's health and even un-fail it.
/datum/action/cooldown/spell/touch/flesh_surgery/proc/heal_organ(obj/item/melee/touch_attack/hand, obj/item/organ/to_heal, mob/living/carbon/caster)
+ if(to_heal.damage == 0)
+ to_heal.balloon_alert(caster, "already in good condition!")
+ return FALSE
to_heal.balloon_alert(caster, "healing organ...")
if(!do_after(caster, 1 SECONDS, to_heal, extra_checks = CALLBACK(src, PROC_REF(heal_checks), hand, to_heal, caster)))
to_heal.balloon_alert(caster, "interrupted!")
return FALSE
var/organ_hp_to_heal = to_heal.maxHealth * organ_percent_healing
- if(to_heal.damage < organ_hp_to_heal)
- to_heal.set_organ_damage(organ_hp_to_heal)
- to_heal.balloon_alert(caster, "organ healed")
- playsound(to_heal, 'sound/magic/staff_healing.ogg', 30)
- new /obj/effect/temp_visual/cult/sparks(get_turf(to_heal))
- caster.visible_message(
- span_warning("[caster]'s hand glows a brilliant red as [caster.p_they()] restore \the [to_heal] to good condition!"),
- span_notice("Your hand glows a brilliant red as you restore \the [to_heal] to good condition!"),
- )
- else
- to_heal.balloon_alert(caster, "already in good condition!")
+ to_heal.set_organ_damage(max(0 , to_heal.damage - organ_hp_to_heal))
+ to_heal.balloon_alert(caster, "organ healed")
+ playsound(to_heal, 'sound/magic/staff_healing.ogg', 30)
+ new /obj/effect/temp_visual/cult/sparks(get_turf(to_heal))
+ var/condition = (to_heal.damage > 0) ? "better" : "perfect"
+ caster.visible_message(
+ span_warning("[caster]'s hand glows a brilliant red as [caster.p_they()] restore \the [to_heal] to [condition] condition!"),
+ span_notice("Your hand glows a brilliant red as you restore \the [to_heal] to [condition] condition!"),
+ )
return TRUE
@@ -120,7 +121,7 @@
playsound(to_heal, 'sound/magic/staff_healing.ogg', 30)
new /obj/effect/temp_visual/cult/sparks(get_turf(to_heal))
caster.visible_message(
- span_warning("[caster]'s hand glows a brilliant red as [caster.p_they()] restore [to_heal] to good condition!"),
+ span_warning("[caster]'s hand glows a brilliant red as [caster.p_they()] restore[caster.p_s()] [to_heal] to good condition!"),
span_notice("Your hand glows a brilliant red as you restore [to_heal] to good condition!"),
)
return TRUE
@@ -169,14 +170,14 @@
time_it_takes = 6 SECONDS
caster.visible_message(
- span_danger("[caster]'s hand glows a brilliant red as [caster.p_they()] reach directly into [caster.p_their()] own [parsed_zone]!"),
+ span_danger("[caster]'s hand glows a brilliant red as [caster.p_they()] reach[caster.p_es()] directly into [caster.p_their()] own [parsed_zone]!"),
span_userdanger("Your hand glows a brilliant red as you reach directly into your own [parsed_zone]!"),
)
else
carbon_victim.visible_message(
- span_danger("[caster]'s hand glows a brilliant red as [caster.p_they()] reach directly into [carbon_victim]'s [parsed_zone]!"),
- span_userdanger("[caster]'s hand glows a brilliant red as [caster.p_they()] reach directly into your [parsed_zone]!"),
+ span_danger("[caster]'s hand glows a brilliant red as [caster.p_they()] reach[caster.p_es()] directly into [carbon_victim]'s [parsed_zone]!"),
+ span_userdanger("[caster]'s hand glows a brilliant red as [caster.p_they()] reach[caster.p_es()] directly into your [parsed_zone]!"),
)
carbon_victim.balloon_alert(caster, "extracting [chosen_organ]...")
@@ -184,6 +185,7 @@
carbon_victim.add_atom_colour(COLOR_DARK_RED, TEMPORARY_COLOUR_PRIORITY)
if(!do_after(caster, time_it_takes, carbon_victim, extra_checks = CALLBACK(src, PROC_REF(extraction_checks), picked_organ, hand, victim, caster)))
carbon_victim.balloon_alert(caster, "interrupted!")
+ carbon_victim.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_DARK_RED)
return FALSE
// Visible message done before Remove()
@@ -196,8 +198,8 @@
else
carbon_victim.visible_message(
- span_bolddanger("[caster]'s pulls [carbon_victim]'s [chosen_organ] out of [carbon_victim.p_their()] [parsed_zone]!!"),
- span_userdanger("[caster]'s pulls your [chosen_organ] out of [carbon_victim.p_their()] [parsed_zone]!!"),
+ span_bolddanger("[caster] pulls [carbon_victim]'s [chosen_organ] out of [carbon_victim.p_their()] [parsed_zone]!!"),
+ span_userdanger("[caster] pulls your [chosen_organ] out of your [parsed_zone]!!"),
)
picked_organ.Remove(carbon_victim)
diff --git a/code/modules/antagonists/heretic/magic/moon_ringleader.dm b/code/modules/antagonists/heretic/magic/moon_ringleader.dm
index af753bba92f..45d3285a876 100644
--- a/code/modules/antagonists/heretic/magic/moon_ringleader.dm
+++ b/code/modules/antagonists/heretic/magic/moon_ringleader.dm
@@ -52,12 +52,13 @@
victim.log_message("was driven insane by [caster]")
victim.mob_mood.set_sanity(victim_sanity * 0.5)
+
/obj/effect/temp_visual/moon_ringleader
icon = 'icons/effects/eldritch.dmi'
icon_state = "ring_leader_effect"
alpha = 180
duration = 6
-/obj/effect/temp_visual/moon_ringleader/Initialize(mapload)
+/obj/effect/temp_visual/moon_ringleader/ringleader/Initialize(mapload)
. = ..()
transform = transform.Scale(10)
diff --git a/code/modules/antagonists/heretic/magic/moon_smile.dm b/code/modules/antagonists/heretic/magic/moon_smile.dm
index 75aba2c2ced..893059721c4 100644
--- a/code/modules/antagonists/heretic/magic/moon_smile.dm
+++ b/code/modules/antagonists/heretic/magic/moon_smile.dm
@@ -1,7 +1,7 @@
/datum/action/cooldown/spell/pointed/moon_smile
name = "Smile of the moon"
desc = "Lets you turn the gaze of the moon on someone \
- temporarily blinding, muting, deafening and confusing a single target."
+ temporarily blinding, muting, deafening and knocking down a single target."
background_icon_state = "bg_heretic"
overlay_icon_state = "bg_heretic_border"
button_icon = 'icons/mob/actions/actions_ecult.dmi'
@@ -36,13 +36,14 @@
playsound(cast_on, 'sound/hallucinations/i_see_you1.ogg', 50, 1)
to_chat(cast_on, span_warning("Your eyes cry out in pain, your ears bleed and your lips seal! THE MOON SMILES UPON YOU!"))
- cast_on.adjust_temp_blindness(moon_smile_duration SECONDS)
- cast_on.set_eye_blur_if_lower(moon_smile_duration + 2 SECONDS)
+ cast_on.adjust_temp_blindness(moon_smile_duration + 5 SECONDS)
+ cast_on.set_eye_blur_if_lower(moon_smile_duration + 7 SECONDS)
var/obj/item/organ/internal/ears/ears = cast_on.get_organ_slot(ORGAN_SLOT_EARS)
- ears?.adjustEarDamage(0, moon_smile_duration)
+ ears?.adjustEarDamage(0, moon_smile_duration + 2 SECONDS)
- cast_on.adjust_silence(moon_smile_duration SECONDS)
+ cast_on.adjust_silence(moon_smile_duration + 5 SECONDS)
+ cast_on.AdjustKnockdown(2 SECONDS)
cast_on.add_mood_event("moon_smile", /datum/mood_event/moon_smile)
//Lowers sanity
cast_on.mob_mood.set_sanity(cast_on.mob_mood.sanity - 20)
diff --git a/code/modules/antagonists/heretic/moon_lunatic.dm b/code/modules/antagonists/heretic/moon_lunatic.dm
index cc6a304e074..21177f1a623 100644
--- a/code/modules/antagonists/heretic/moon_lunatic.dm
+++ b/code/modules/antagonists/heretic/moon_lunatic.dm
@@ -6,6 +6,7 @@
show_in_antagpanel = FALSE
suicide_cry = "PRAISE THE RINGLEADER!!"
antag_moodlet = /datum/mood_event/heretics/lunatic
+ antag_hud_name = "lunatic"
can_assign_self_objectives = FALSE
hardcore_random_bonus = FALSE
// The mind of the ascended heretic who created us
@@ -33,6 +34,9 @@
var/mob/living/our_mob = mob_override || owner.current
handle_clown_mutation(our_mob, "Ancient knowledge from the moon has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.")
our_mob.faction |= FACTION_HERETIC
+ add_team_hud(our_mob)
+ add_team_hud(our_mob, /datum/antagonist/heretic)
+ ADD_TRAIT(our_mob, TRAIT_MADNESS_IMMUNE, REF(src))
var/datum/action/cooldown/lunatic_track/moon_track = new /datum/action/cooldown/lunatic_track()
var/datum/action/cooldown/spell/touch/mansus_grasp/mad_touch = new /datum/action/cooldown/spell/touch/mansus_grasp()
diff --git a/code/modules/antagonists/heretic/status_effects/debuffs.dm b/code/modules/antagonists/heretic/status_effects/debuffs.dm
index 7fffc4a5706..08839fa8f10 100644
--- a/code/modules/antagonists/heretic/status_effects/debuffs.dm
+++ b/code/modules/antagonists/heretic/status_effects/debuffs.dm
@@ -251,7 +251,7 @@
owner.adjustBruteLoss( -150 + owner.mob_mood.sanity)
owner.adjustFireLoss(-150 + owner.mob_mood.sanity)
- to_chat(owner, span_warning(("THE MOON SHOWS YOU THE TRUTH AND THE LIARS WISH TO COVER IT, SLAY THEM ALL!!!")))
+ to_chat(owner, span_hypnophrase(("THE MOON SHOWS YOU THE TRUTH AND THE LIARS WISH TO COVER IT, SLAY THEM ALL!!!")))
owner.balloon_alert(owner, "they lie..THEY ALL LIE!!!")
owner.AdjustUnconscious(7 SECONDS, ignore_canstun = FALSE)
ADD_TRAIT(owner, TRAIT_MUTE, REF(src))
@@ -271,6 +271,7 @@
if (damage_sustained < 75)
return
+
qdel(src)
/datum/status_effect/moon_converted/proc/update_owner_overlay(atom/source, list/overlays)
diff --git a/code/modules/antagonists/heretic/status_effects/mark_effects.dm b/code/modules/antagonists/heretic/status_effects/mark_effects.dm
index c8d2a04e64a..3dffa2dd4fe 100644
--- a/code/modules/antagonists/heretic/status_effects/mark_effects.dm
+++ b/code/modules/antagonists/heretic/status_effects/mark_effects.dm
@@ -295,6 +295,7 @@
/datum/status_effect/eldritch/moon/on_effect()
owner.adjust_confusion(30 SECONDS)
+ owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 25, 160)
owner.emote(pick("giggle", "laugh"))
owner.add_mood_event("Moon Insanity", /datum/mood_event/moon_insanity)
return ..()
diff --git a/code/modules/antagonists/nightmare/nightmare_equipment.dm b/code/modules/antagonists/nightmare/nightmare_equipment.dm
index 965b95ca6e8..fd80b3ea3ef 100644
--- a/code/modules/antagonists/nightmare/nightmare_equipment.dm
+++ b/code/modules/antagonists/nightmare/nightmare_equipment.dm
@@ -64,7 +64,7 @@
remove_crit()
/obj/item/light_eater/proc/prepare_crit_timer()
- crit_timer = addtimer(CALLBACK(src, PROC_REF(add_crit)), 15 SECONDS, TIMER_DELETE_ME | TIMER_STOPPABLE)
+ crit_timer = addtimer(CALLBACK(src, PROC_REF(add_crit)), 7 SECONDS, TIMER_DELETE_ME | TIMER_STOPPABLE)
/obj/item/light_eater/proc/stop_crit_timer()
deltimer(crit_timer)
diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
index 734025e9a37..a7611c24448 100644
--- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
+++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm
@@ -118,7 +118,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec)
var/tc_per_nukie = round(tc_to_distribute / (length(orphans)+length(uplinks)))
for (var/datum/component/uplink/uplink in uplinks)
- uplink.add_telecrystals(tc_per_nukie)
+ uplink.uplink_handler.add_telecrystals(tc_per_nukie)
tc_to_distribute -= tc_per_nukie
for (var/mob/living/L in orphans)
diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm
index 3ed178e2413..b01d48d757e 100644
--- a/code/modules/antagonists/nukeop/nukeop.dm
+++ b/code/modules/antagonists/nukeop/nukeop.dm
@@ -68,7 +68,7 @@
var/extra_tc = CEILING(GLOB.joined_player_list.len/5, 5)
var/datum/component/uplink/uplink = owner.find_syndicate_uplink()
if (uplink)
- uplink.add_telecrystals(extra_tc)
+ uplink.uplink_handler.add_telecrystals(extra_tc)
var/datum/component/uplink/uplink = owner.find_syndicate_uplink()
if(uplink)
@@ -622,7 +622,7 @@
nukie.mind.add_antag_datum(antag_datum, src)
var/datum/component/uplink/uplink = nukie.mind.find_syndicate_uplink()
- uplink?.set_telecrystals(tc_to_spawn)
+ uplink?.uplink_handler.set_telecrystals(tc_to_spawn)
// add some pizzazz
do_sparks(4, FALSE, spawn_loc)
diff --git a/code/modules/antagonists/space_dragon/space_dragon.dm b/code/modules/antagonists/space_dragon/space_dragon.dm
index 4b385b70e59..25543fbc8fe 100644
--- a/code/modules/antagonists/space_dragon/space_dragon.dm
+++ b/code/modules/antagonists/space_dragon/space_dragon.dm
@@ -263,7 +263,7 @@
players_to_carp_taken[carpy.key] += 1
var/list = ""
for(var/carp_user in players_to_carp_taken)
- list += "