diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 5e96a1d0076..b4a4e5b71fd 100644
--- a/_maps/map_files/debug/runtimestation.dmm
+++ b/_maps/map_files/debug/runtimestation.dmm
@@ -2425,6 +2425,7 @@
"SN" = (
/obj/structure/table/reinforced,
/obj/machinery/light/directional/south,
+/obj/item/bitrunning_debug,
/turf/open/floor/iron,
/area/station/bitrunning/den)
"Td" = (
@@ -3108,12 +3109,12 @@ aa
aa
aa
aa
-uI
-uI
-uI
-uI
-uI
-uI
+aa
+aa
+aa
+aa
+aa
+aa
aa
aa
aa
@@ -3201,10 +3202,10 @@ aa
aa
aa
uI
-hU
-hU
-jR
-Oq
+uI
+uI
+uI
+uI
uI
aa
aa
diff --git a/_maps/safehouses/TEMPLATES/TEMPLATE.dmm b/_maps/safehouses/TEMPLATES/TEMPLATE.dmm
index c8e5059f0d0..03eaca12fb1 100644
--- a/_maps/safehouses/TEMPLATES/TEMPLATE.dmm
+++ b/_maps/safehouses/TEMPLATES/TEMPLATE.dmm
@@ -13,11 +13,11 @@
/turf/open/floor/plating,
/area/virtual_domain/safehouse)
"v" = (
-/obj/effect/bitrunning/exit_spawn,
+/obj/effect/landmark/bitrunning/hololadder_spawn,
/turf/open/floor/plating,
/area/virtual_domain/safehouse)
"N" = (
-/obj/effect/bitrunning/goal_turf,
+/obj/effect/landmark/bitrunning/cache_goal_turf,
/turf/open/floor/plating,
/area/virtual_domain/safehouse)
"R" = (
diff --git a/_maps/virtual_domains/README.md b/_maps/virtual_domains/README.md
index a02d43e1575..723af1b34c2 100644
--- a/_maps/virtual_domains/README.md
+++ b/_maps/virtual_domains/README.md
@@ -1,32 +1,33 @@
# Making new virtual domains
-## From scratch
-
-1. Create a new map using TGM format. It can be any size, but please, consider limiting to 75x75 max.
-2. Ensure that the map has ONE tile marked with the safehouse bottom left landmark. If you're using modular safehouses, it will need to be a 7x6 area.
-4. Provide a way for players to enter your new map via the north door, which is 4th tile over.
-5. Enclose your area with a single wall binary closed wall.
-
-## From an existing map
-
+## REQUIRED:
+1. One way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signable landmark if you have a points system.
+2. Place a virtual domain baseturf helper in each area.
+3. Ensure that the map has ONE tile marked with the safehouse bottom left landmark. If you're using modular safehouses, it will need an open 7x6 area.
+4. Placing a safehouse area is redundant, but it will ensure there is power in the starting safehouse.
+5. Create the dm file that defines the map qualities. You can use the existing ones as a template.
+
+## Converting an existing map
1. Create a new map using the existing map's size - give yourself enough room to enclose it with a binary wall. There's no need for any space outside of it, so ensure that it fits and is enclosed, nothing outside of this.
2. Copy and paste the existing map into it.
-3. Find an accessible area for a safehouse, 7x6 - or with a custom, just ensure the necessary landmarks are placed.
+3. Find an accessible area for a safehouse, 7x6.
4. Place a bottom left safehouse landmark somewhere on the map to load the safehouse.
-## BOTH.
-1. You need to have one (1) way that the encrypted cache can spawn. This can be from a mob drop, a landmark (place a few, it'll pick one), or a signable landmark if you have a points system.
-2. Make note of the size of the map. Make sure this is in the dm file.
-3. Create the dm file that defines the map qualities. Examples are in the bitrunning file.
+## Notes
+You shouldn't need to fully enclose your map in 15 tiles of binary filler. Using one solid wall should do the trick.
-### Notes
+For areas, ideally just one on the map and one for the safehouse. Vdoms should never last so long as to need individual area power and atmos unless you're specifically going for a gimmick.
-You shouldn't need to fully enclose your map in 15 tiles of binary filler. Using one solid wall should do the trick.
+Use modular mob segments! Use modular map segments! Add some variety to your maps! Just make sure you've set your map to have "is_modular" afterwards.
Adding some open tile padding around the safehouse is a good touch. About 7 tiles West/East for the visual effect of a larger map.
If you want to add prep gear, you can do so within the safehouse's area as long you don't overlap with goal turfs or exit spawners. The top left corner is a good spot for this, with respect for the walls, therefore [1, 1], [1, 2], [1, 3]
-You can also create safehouses if you find yourself needing the same gear over and over again. There is a readme for that as well.
+You can also create a specific safehouse if you find yourself needing the same gear over and over again. There is a readme for that as well.
Boss zones should give players pretty ample space, I've been using a 23x23 minimum area.
+
+While it's not a hard set rule, 75x75 is the guideline for max size. The main issue is keeping them in the domain for too long.
+
+You have the option of baking in your own safehouse and ignoring the 7x6 guideline. To do this, you will still need a safehouse landmark and a file to load - even if it's empty. Ensure that you have the necessary landmarks placed that normally go in a safehouse on the map itself.
diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm
index 779b1b893c0..628265552f1 100644
--- a/_maps/virtual_domains/beach_bar.dmm
+++ b/_maps/virtual_domains/beach_bar.dmm
@@ -4,10 +4,10 @@
/obj/effect/turf_decal/sand,
/obj/structure/sign/poster/contraband/have_a_puff/directional/west,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ag" = (
/turf/open/floor/carpet/red,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"as" = (
/obj/structure/closet/crate/bin,
/obj/item/tank/internals/emergency_oxygen,
@@ -16,14 +16,14 @@
/obj/effect/turf_decal/sand,
/obj/machinery/light/directional/west,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"aw" = (
/obj/machinery/grill,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"aE" = (
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"aZ" = (
/obj/machinery/light/small/directional/east,
/obj/structure/closet/crate{
@@ -32,57 +32,57 @@
/obj/item/stack/sheet/mineral/coal/ten,
/obj/item/stack/sheet/mineral/coal/ten,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bf" = (
/mob/living/basic/crab{
name = "Jonny"
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bC" = (
/obj/effect/turf_decal/sand,
/mob/living/basic/crab{
name = "James"
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bM" = (
/mob/living/basic/crab{
name = "Jon"
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bQ" = (
/obj/structure/fluff/beach_umbrella/cap,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bS" = (
/obj/machinery/chem_master/condimaster{
name = "CondiMaster Neo";
pixel_x = -4
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cb" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/pill/lsd,
/obj/item/reagent_containers/pill/lsd,
/obj/item/reagent_containers/pill/lsd,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cv" = (
/turf/open/floor/carpet/royalblue,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cz" = (
/obj/effect/turf_decal/sand,
/obj/machinery/jukebox,
/obj/item/coin/gold,
/turf/open/floor/sepia,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cG" = (
/obj/structure/flora/bush/sparsegrass/style_random,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"db" = (
/obj/item/reagent_containers/cup/glass/bottle/beer/light,
/obj/item/reagent_containers/cup/glass/bottle/beer/light,
@@ -113,7 +113,7 @@
/obj/item/reagent_containers/cup/glass/colocup,
/obj/item/reagent_containers/cup/glass/colocup,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"di" = (
/obj/machinery/vending/boozeomat,
/obj/effect/mapping_helpers/atom_injector/obj_flag{
@@ -121,37 +121,37 @@
target_type = /obj/machinery/vending/boozeomat
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dj" = (
/turf/open/misc/beach/coast{
dir = 1
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dx" = (
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
dir = 8
},
/turf/open/floor/sepia,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dI" = (
/obj/machinery/light/directional/south,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dZ" = (
/obj/structure/bookcase/random/reference,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ed" = (
/obj/machinery/atmospherics/components/tank/air{
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"er" = (
/obj/structure/noticeboard/staff,
/turf/closed/wall/mineral/wood/nonmetal,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"fc" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/pill/happy,
@@ -159,22 +159,18 @@
pixel_x = -8;
pixel_y = -1
},
-/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada{
- pixel_y = 5;
- pixel_x = 6
- },
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"fr" = (
/obj/item/melee/skateboard/hoverboard,
/obj/machinery/light/directional/west,
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"gh" = (
/obj/structure/flora/bush/stalky/style_random,
/obj/structure/flora/bush/sparsegrass/style_random,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"gl" = (
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
/area/lavaland/surface/outdoors/virtual_domain)
@@ -185,21 +181,21 @@
/turf/open/misc/beach/coast{
dir = 4
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"hk" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"hE" = (
/obj/structure/sign/departments/restroom/directional/east,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"hG" = (
/obj/machinery/door/airlock/sandstone{
name = "Surfer Shack 1"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"iz" = (
/turf/closed/indestructible/binary,
/area/lavaland/surface/outdoors/virtual_domain)
@@ -210,18 +206,18 @@
/obj/item/reagent_containers/cup/rag,
/obj/machinery/light/small/directional/west,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jc" = (
/turf/open/floor/iron/stairs/right,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jg" = (
/obj/machinery/vending/hydronutrients,
/turf/open/floor/iron/grimy,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jl" = (
/obj/structure/flora/rock/pile/jungle/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jy" = (
/obj/effect/turf_decal/sand{
density = 1
@@ -230,7 +226,7 @@
/turf/open/floor/pod/light{
density = 1
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ke" = (
/obj/structure/marker_beacon/bronze,
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
@@ -242,7 +238,7 @@
},
/obj/structure/chair/stool/bar/directional/west,
/turf/open/floor/sepia,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"kv" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/indestructible/binary,
@@ -251,45 +247,45 @@
/obj/structure/table,
/obj/machinery/reagentgrinder,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"kK" = (
/obj/structure/mirror/directional/west,
/obj/structure/sink/kitchen/directional/south,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"kT" = (
/obj/structure/chair/stool/bar/directional/south,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"lq" = (
/obj/item/melee/skateboard/hoverboard,
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"lB" = (
/obj/item/toy/seashell,
/obj/effect/turf_decal/sand,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"lS" = (
/turf/open/floor/light/colour_cycle/dancefloor_a,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ml" = (
/turf/template_noop,
/area/virtual_domain/safehouse)
"mq" = (
/obj/structure/closet/secure_closet/freezer/kitchen/all_access,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"mG" = (
/obj/structure/easel,
/obj/item/canvas/twentythree_twentythree,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"mP" = (
/turf/open/misc/beach/coast/corner{
dir = 1
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"mX" = (
/obj/structure/closet/secure_closet/freezer/meat/all_access,
/obj/item/food/meat/rawbacon,
@@ -299,15 +295,12 @@
/obj/item/food/meat/slab/rawcrab,
/obj/item/food/meat/slab/rawcrab,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
-"no" = (
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"nP" = (
/obj/item/stack/sheet/iron/fifty,
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"oE" = (
/obj/structure/railing/corner{
dir = 1
@@ -316,57 +309,57 @@
/turf/open/misc/beach/coast/corner{
dir = 8
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"oP" = (
/obj/structure/table/wood,
/obj/machinery/reagentgrinder,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"pr" = (
/turf/template_noop,
/area/template_noop)
"pC" = (
/obj/machinery/computer/arcade/battle,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"pT" = (
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"pZ" = (
/obj/machinery/light/directional/south,
/turf/open/misc/beach/coast{
dir = 1
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qc" = (
/obj/structure/extinguisher_cabinet/directional/south,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qg" = (
/obj/structure/sign/poster/contraband/space_up/directional/west,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qR" = (
/obj/effect/spawner/structure/window,
/obj/structure/curtain,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qW" = (
/obj/item/melee/skateboard/hoverboard,
/mob/living/basic/chicken{
name = "Chicken Joe"
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"rc" = (
/obj/machinery/light/directional/east,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ri" = (
/obj/structure/sign/poster/official/fruit_bowl,
/turf/closed/wall/mineral/wood/nonmetal,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"rm" = (
/obj/item/storage/crayons,
/obj/structure/closet/crate/wooden,
@@ -374,11 +367,11 @@
/obj/item/canvas/twentythree_twentythree,
/obj/item/canvas/twentythree_twentythree,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"rT" = (
/obj/item/toy/seashell,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"sT" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/template_noop,
@@ -388,19 +381,19 @@
name = "Resort Casino"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"tF" = (
/obj/structure/extinguisher_cabinet/directional/east,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"tZ" = (
/obj/structure/toilet,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uc" = (
/obj/machinery/light/small/directional/east,
/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ug" = (
/obj/structure/closet/secure_closet{
icon_state = "cabinet";
@@ -416,31 +409,33 @@
/obj/item/clothing/suit/costume/hawaiian,
/obj/machinery/light/small/directional/east,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uk" = (
/obj/structure/closet/crate/hydroponics,
/obj/item/shovel/spade,
/obj/item/reagent_containers/cup/bucket,
/obj/item/cultivator,
/turf/open/floor/iron/grimy,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uq" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada,
/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada{
- pixel_x = -5;
+ pixel_x = 4
+ },
+/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada{
+ pixel_x = -7;
pixel_y = 5
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uU" = (
/obj/effect/turf_decal/sand,
/turf/open/floor/sepia,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uV" = (
/obj/structure/flora/coconuts,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ve" = (
/obj/item/toy/dodgeball,
/obj/item/toy/dodgeball,
@@ -448,33 +443,33 @@
/obj/item/toy/dodgeball,
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"vp" = (
/obj/machinery/light/directional/east,
/obj/structure/chair/stool/bar/directional/south,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"vq" = (
/obj/machinery/oven/range,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"vv" = (
/obj/structure/chair/stool/directional/south,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"vN" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/pill/morphine,
/obj/item/reagent_containers/pill/morphine,
/obj/item/reagent_containers/pill/morphine,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"vT" = (
/obj/structure/railing{
dir = 8
},
/turf/open/misc/beach/coast/corner,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"wb" = (
/obj/structure/closet/crate/freezer{
name = "Cooler"
@@ -498,10 +493,10 @@
/obj/item/reagent_containers/cup/glass/bottle/beer/light,
/obj/item/reagent_containers/cup/glass/bottle/beer/light,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"wD" = (
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xb" = (
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/lavaland/surface/outdoors/virtual_domain)
@@ -510,16 +505,16 @@
/obj/item/storage/dice,
/obj/item/stack/spacecash/c1000,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xq" = (
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/window/reinforced/spawner/directional/south,
/obj/item/megaphone,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xw" = (
/turf/open/floor/pod/dark,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xJ" = (
/obj/structure/closet/cabinet,
/obj/item/storage/backpack/duffelbag,
@@ -531,7 +526,7 @@
/obj/item/clothing/glasses/sunglasses,
/obj/item/clothing/neck/beads,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xR" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/structure/window/reinforced/spawner/directional/north{
@@ -542,7 +537,7 @@
/obj/item/clothing/under/shorts/red,
/obj/item/clothing/glasses/sunglasses,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xW" = (
/turf/open/space/basic,
/area/space)
@@ -552,14 +547,14 @@
/obj/item/reagent_containers/pill/zoom,
/obj/item/reagent_containers/pill/zoom,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yi" = (
/obj/structure/sink/kitchen/directional/west{
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
name = "old sink"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yl" = (
/obj/item/reagent_containers/cup/glass/colocup{
pixel_x = -7;
@@ -574,39 +569,39 @@
pixel_y = -3
},
/turf/open/floor/carpet/red,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ys" = (
/obj/effect/turf_decal/sand,
/obj/machinery/light/directional/east,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yv" = (
/obj/effect/turf_decal/sand,
/obj/machinery/food_cart,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yB" = (
/obj/item/instrument/guitar,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yU" = (
/obj/structure/sign/warning/gas_mask/directional/north,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yX" = (
/obj/structure/chair/stool/bar/directional/south,
/turf/open/floor/carpet/red,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"zn" = (
/obj/machinery/light/directional/east,
/turf/open/misc/beach/coast{
dir = 8
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"zw" = (
/obj/structure/punching_bag,
/turf/open/floor/pod/dark,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"zI" = (
/obj/structure/marker_beacon/indigo,
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
@@ -614,7 +609,7 @@
"zU" = (
/obj/structure/flora/rock/pile/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Aa" = (
/obj/effect/turf_decal/sand,
/obj/effect/turf_decal/stripes/asteroid/line{
@@ -622,11 +617,11 @@
},
/obj/machinery/light/directional/west,
/turf/open/floor/sepia,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ae" = (
/obj/structure/chair,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Al" = (
/turf/closed/mineral/random/volcanic,
/area/lavaland/surface/outdoors/virtual_domain)
@@ -637,19 +632,19 @@
"Au" = (
/obj/structure/fluff/beach_umbrella/science,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"AI" = (
/obj/structure/table/reinforced,
/obj/machinery/reagentgrinder,
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"AP" = (
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade{
dir = 1
},
/obj/structure/table/wood,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Br" = (
/obj/structure/table/wood/poker,
/obj/item/toy/cards/deck/cas{
@@ -660,73 +655,73 @@
pixel_y = 2
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Bu" = (
/turf/open/misc/beach/coast{
dir = 8
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Bw" = (
/obj/structure/flora/bush/sparsegrass/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"BD" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/condiment/saltshaker,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"BJ" = (
/obj/structure/table/wood/poker,
/obj/item/toy/cards/deck,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"BM" = (
/turf/closed/wall/mineral/wood/nonmetal,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"BQ" = (
/obj/machinery/seed_extractor,
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Cb" = (
/obj/machinery/light/directional/north,
/mob/living/basic/crab{
name = "Eddie"
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Cv" = (
/obj/machinery/hydroponics/constructable,
/turf/open/floor/iron/grimy,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"CA" = (
/obj/structure/window/reinforced/spawner/directional/east,
/obj/effect/mob_spawn/ghost_role/human/beach/lifeguard,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"CO" = (
/obj/machinery/vending/dinnerware,
/obj/machinery/light/directional/east,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Db" = (
/obj/machinery/barsign/all_access,
/turf/closed/wall/mineral/wood/nonmetal,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ds" = (
/obj/machinery/door/airlock/public/glass{
name = "Resort Lobby"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Dt" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/sand,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"DL" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/wall/mineral/sandstone,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Em" = (
/obj/item/reagent_containers/condiment/enzyme{
layer = 5
@@ -736,28 +731,28 @@
},
/obj/structure/table,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Et" = (
/obj/machinery/light/small/directional/east,
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ev" = (
/obj/structure/reagent_dispensers/beerkeg,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"EC" = (
/obj/structure/sign/warning/gas_mask/directional/west,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"EP" = (
/obj/machinery/light/directional/north,
/obj/machinery/washing_machine,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Fn" = (
/turf/closed/wall/mineral/sandstone,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"FM" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/turf/template_noop,
@@ -767,26 +762,26 @@
/obj/item/secateurs,
/obj/item/reagent_containers/cup/bottle/nutrient/ez,
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"FS" = (
/obj/effect/turf_decal/sand,
/obj/structure/sign/warning/no_smoking/circle/directional/east,
/obj/machinery/light/directional/east,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"FY" = (
/obj/structure/mineral_door/wood,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Gh" = (
/obj/effect/turf_decal/sand,
/obj/structure/sign/poster/contraband/starkist/directional/north,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Gz" = (
/obj/structure/flora/tree/palm,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"GA" = (
/obj/structure/window/reinforced/spawner/directional/north,
/obj/structure/window/reinforced/spawner/directional/west,
@@ -795,56 +790,56 @@
/obj/item/storage/medkit/regular,
/obj/item/storage/medkit/brute,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Hs" = (
/obj/machinery/shower/directional/west,
/turf/open/floor/iron/white,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"HF" = (
/obj/machinery/deepfryer,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ia" = (
/obj/structure/urinal/directional/north,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ii" = (
/obj/machinery/light/directional/west,
/turf/open/floor/iron/stairs/left,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ir" = (
/obj/machinery/vending/cola,
/obj/effect/turf_decal/sand,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Iv" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/condiment/peppermill,
/obj/item/reagent_containers/condiment/soysauce,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"IH" = (
/obj/item/toy/beach_ball,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"IM" = (
/obj/machinery/hydroponics/constructable,
/obj/machinery/light/directional/east,
/turf/open/floor/iron/grimy,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"IP" = (
/obj/machinery/vending/snack,
/obj/effect/turf_decal/sand,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Jt" = (
/obj/item/reagent_containers/cup/glass/bottle/beer,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"JC" = (
/obj/structure/fluff/beach_umbrella/engine,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"JE" = (
/obj/structure/closet/secure_closet/freezer/kitchen/all_access,
/obj/item/reagent_containers/condiment/milk,
@@ -852,53 +847,53 @@
/obj/item/reagent_containers/condiment/flour,
/obj/item/reagent_containers/condiment/flour,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"JY" = (
/obj/structure/flora/rock/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Kd" = (
/obj/structure/sign/warning/secure_area,
/turf/closed/wall/mineral/sandstone,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"KH" = (
/obj/structure/mineral_door/wood{
name = "Croupier's Booth"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"KZ" = (
/obj/structure/flora/bush/stalky/style_random,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"LD" = (
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"LW" = (
/obj/item/storage/cans/sixbeer,
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Mp" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada{
- pixel_x = 5;
- pixel_y = 5
+ pixel_x = 8;
+ pixel_y = 4
},
/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Mw" = (
/obj/structure/chair/sofa/right/brown,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Mz" = (
/obj/structure/chair/sofa/left/brown,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Nr" = (
/obj/machinery/light/directional/north,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Nw" = (
/obj/item/bedsheet/dorms{
dir = 4
@@ -907,7 +902,7 @@
dir = 4
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"NM" = (
/obj/structure/closet/crate/hydroponics,
/obj/item/food/grown/ambrosia/vulgaris,
@@ -921,32 +916,32 @@
/obj/item/food/grown/ambrosia/vulgaris,
/obj/item/food/grown/ambrosia/vulgaris,
/turf/open/floor/iron/grimy,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"NX" = (
/obj/effect/landmark/bitrunning/loot_signal,
/turf/open/floor/light/colour_cycle/dancefloor_a,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"OE" = (
/obj/effect/mob_spawn/ghost_role/human/beach{
dir = 4
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"OK" = (
/obj/structure/sign/warning/gas_mask/directional/north,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"OR" = (
/obj/machinery/light/directional/south,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"OW" = (
/obj/structure/sink/kitchen/directional/east{
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
name = "old sink"
},
/turf/open/floor/pod/light,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"OZ" = (
/obj/structure/marker_beacon/teal,
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
@@ -955,30 +950,30 @@
/obj/structure/chair/wood,
/obj/machinery/light/directional/west,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Pg" = (
/obj/structure/sign/poster/official/high_class_martini/directional/west,
/obj/effect/mob_spawn/ghost_role/human/bartender{
dir = 4
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"PM" = (
/obj/machinery/door/airlock/external/ruin,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Qb" = (
/obj/machinery/griddle,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Qu" = (
/obj/structure/curtain,
/turf/open/floor/iron/white,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"QP" = (
/obj/structure/extinguisher_cabinet/directional/north,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"QX" = (
/obj/machinery/chem_dispenser/drinks/fullupgrade{
dir = 1
@@ -986,10 +981,10 @@
/obj/structure/table/wood,
/obj/machinery/light/small/directional/east,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Rx" = (
/turf/open/floor/iron/stairs/medium,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"RL" = (
/obj/structure/closet/cabinet,
/obj/item/storage/backpack/duffelbag,
@@ -1001,173 +996,173 @@
/obj/item/clothing/glasses/sunglasses/big,
/obj/item/clothing/neck/beads,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Sg" = (
/obj/structure/flora/coconuts,
/obj/machinery/light/directional/north,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"SB" = (
/obj/machinery/door/airlock/sandstone{
name = "Resort Bathroom"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"SD" = (
/obj/machinery/door/airlock/sandstone{
name = "Bar Access"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"SY" = (
/obj/machinery/door/airlock/sandstone{
name = "Surfer Shack 2"
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"TG" = (
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"TJ" = (
/obj/structure/fluff/beach_umbrella/security,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"TX" = (
/obj/structure/sign/poster/contraband/ambrosia_vulgaris/directional/north,
/turf/open/floor/iron/grimy,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ud" = (
/obj/effect/turf_decal/sand,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Uh" = (
/turf/open/floor/iron/stairs/old,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Uq" = (
/obj/structure/weightmachine/weightlifter,
/turf/open/floor/pod/dark,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"UU" = (
/obj/structure/flora/bush/large/style_random,
/obj/structure/flora/bush/jungle/a/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ve" = (
/obj/machinery/processor,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"VA" = (
/obj/machinery/computer/slot_machine,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"VH" = (
/obj/machinery/light/directional/west,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"VX" = (
/obj/structure/flora/bush/large/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"We" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/cooking_to_serve_man,
/obj/item/clothing/suit/apron/chef,
/obj/item/clothing/head/utility/chefhat,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Wg" = (
/obj/structure/dresser,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ww" = (
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"WL" = (
/obj/machinery/light/directional/north,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"WO" = (
/obj/structure/flora/bush/jungle/a/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"WW" = (
/obj/effect/turf_decal/sand,
/obj/machinery/icecream_vat,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"WX" = (
/obj/item/toy/plush/lizard_plushie/green{
name = "Soaks-The-Rays"
},
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Xt" = (
/turf/open/misc/beach/coast/corner{
dir = 4
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Xv" = (
/obj/structure/table/wood,
/obj/structure/bedsheetbin,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"XL" = (
/obj/machinery/light/directional/east,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"XM" = (
/turf/open/misc/beach/coast,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"XP" = (
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"XT" = (
/obj/effect/turf_decal/sand,
/obj/structure/sign/departments/botany/directional/south,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Yi" = (
/obj/structure/flora/bush/sparsegrass/style_random,
/obj/item/toy/seashell,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Yq" = (
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"YI" = (
/obj/machinery/door/airlock/maintenance{
name = "Supply Room"
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"YJ" = (
/turf/open/floor/carpet/purple,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"YN" = (
/obj/effect/turf_decal/sand,
/obj/machinery/light/directional/west,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Zb" = (
/obj/structure/sign/poster/official/cohiba_robusto_ad/directional/west,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Zd" = (
/obj/structure/sign/poster/contraband/space_cola/directional/north,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Zg" = (
/obj/structure/table,
/obj/machinery/microwave,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Zt" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/pill/morphine,
/obj/item/storage/fancy/donut_box,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
(1,1,1) = {"
pr
@@ -2118,7 +2113,7 @@ iz
(23,1,1) = {"
iz
Al
-no
+xb
Fn
Cb
wD
@@ -2161,7 +2156,7 @@ xW
(24,1,1) = {"
iz
Al
-no
+xb
Fn
wD
Gz
@@ -2204,7 +2199,7 @@ xW
(25,1,1) = {"
iz
Al
-no
+xb
Fn
OK
Gz
@@ -2247,7 +2242,7 @@ xW
(26,1,1) = {"
iz
Al
-no
+xb
Fn
Sg
wD
diff --git a/_maps/virtual_domains/breeze_bay.dmm b/_maps/virtual_domains/breeze_bay.dmm
index 6fe6f49ab3a..eb305cb7788 100644
--- a/_maps/virtual_domains/breeze_bay.dmm
+++ b/_maps/virtual_domains/breeze_bay.dmm
@@ -1,29 +1,37 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/closed/indestructible/binary,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"c" = (
/obj/structure/flora/coconuts,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"d" = (
/obj/structure/chair/wood,
/turf/open/floor/wood/large,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"e" = (
/turf/open/floor/carpet/red,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
+"f" = (
+/obj/machinery/light/small/directional/west,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/fullbright)
"g" = (
/obj/item/toy/beach_ball/branded,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"i" = (
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"k" = (
/obj/effect/landmark/bitrunning/loot_signal,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
+"l" = (
+/obj/machinery/light/small/directional/south,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/fullbright)
"m" = (
/obj/item/fishing_rod{
pixel_x = 5;
@@ -36,22 +44,22 @@
},
/obj/structure/table/wood,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"o" = (
/obj/structure/flora/tree/jungle/style_5,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"p" = (
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"s" = (
/obj/structure/fluff/beach_umbrella/cap,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"t" = (
/obj/structure/fluff/beach_umbrella/syndi,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"v" = (
/obj/effect/baseturf_helper/virtual_domain,
/obj/effect/landmark/bitrunning/safehouse_spawn,
@@ -60,44 +68,48 @@
"y" = (
/obj/structure/flora/bush/sparsegrass/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"z" = (
/mob/living/basic/crab,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
+"A" = (
+/turf/open/misc/beach/sand,
+/area/virtual_domain/fullbright)
"B" = (
/obj/structure/flora/tree/jungle/style_6,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"C" = (
/obj/structure/flora/tree/jungle/style_2,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"D" = (
/turf/open/floor/carpet/green,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"F" = (
/obj/structure/fluff/beach_umbrella/engine,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"G" = (
/obj/structure/flora/bush/jungle/a/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"H" = (
/obj/structure/flora/tree/jungle/style_4,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"I" = (
/turf/template_noop,
/area/virtual_domain/safehouse)
"J" = (
+/obj/machinery/light/small/directional/north,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"K" = (
/obj/structure/flora/tree/jungle,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"L" = (
/obj/item/fishing_line,
/obj/item/fishing_hook,
@@ -105,19 +117,25 @@
/obj/item/fishing_hook,
/obj/structure/closet/crate,
/obj/item/bait_can/worm,
+/obj/item/bait_can/worm,
+/obj/item/bait_can/worm,
+/turf/open/misc/beach/sand,
+/area/virtual_domain/fullbright)
+"N" = (
+/obj/machinery/light/small/directional/east,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"O" = (
/obj/structure/flora/rock/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"P" = (
/turf/open/misc/beach/coast,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Q" = (
/obj/structure/flora/bush/stalky/style_random,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"R" = (
/obj/structure/closet/crate/freezer{
name = "Cooler"
@@ -142,22 +160,22 @@
/obj/item/reagent_containers/cup/glass/bottle/beer/light,
/obj/item/clothing/head/soft/fishing_hat,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"S" = (
/obj/structure/flora/tree/jungle/style_3,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"U" = (
/obj/structure/flora/tree/palm/style_random,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"X" = (
/turf/open/floor/wood/large,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Z" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/indestructible/binary,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
(1,1,1) = {"
a
@@ -191,13 +209,13 @@ a
K
G
y
-J
-J
-J
-J
-J
-J
-J
+A
+N
+A
+A
+A
+A
+N
z
P
i
@@ -215,10 +233,10 @@ a
"}
(3,1,1) = {"
a
-J
+A
O
-J
-J
+A
+l
I
I
I
@@ -242,17 +260,17 @@ a
"}
(4,1,1) = {"
a
-J
+A
C
-J
-J
+A
+A
I
I
I
I
I
I
-J
+A
P
i
i
@@ -269,17 +287,17 @@ a
"}
(5,1,1) = {"
a
-J
+A
y
-J
-J
+A
+A
I
I
I
I
I
I
-J
+A
P
i
i
@@ -297,9 +315,9 @@ a
(6,1,1) = {"
a
S
-J
-J
-J
+A
+A
+A
I
I
I
@@ -325,15 +343,15 @@ a
a
G
G
-J
-J
+A
+A
I
I
I
I
I
I
-J
+A
P
i
i
@@ -350,17 +368,17 @@ a
"}
(8,1,1) = {"
a
-J
+A
H
g
-J
+A
I
I
I
I
I
I
-J
+A
P
i
i
@@ -379,8 +397,8 @@ a
a
G
y
-J
-J
+A
+l
I
I
I
@@ -405,16 +423,16 @@ a
(10,1,1) = {"
a
o
-J
-J
-J
-J
-J
-J
-J
-J
-J
-J
+A
+A
+A
+f
+A
+A
+A
+A
+f
+A
P
i
i
@@ -431,17 +449,17 @@ a
"}
(11,1,1) = {"
a
-J
-J
-J
-J
-J
-J
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
P
i
i
@@ -458,17 +476,17 @@ a
"}
(12,1,1) = {"
a
-J
+A
B
y
-J
-J
-J
+A
+A
+A
U
c
-J
-J
-J
+A
+A
+A
P
i
i
@@ -485,17 +503,17 @@ a
"}
(13,1,1) = {"
a
-J
-J
-J
-J
+A
+A
+A
+A
s
-J
-J
-J
-J
+A
+A
+A
+A
k
-J
+A
P
i
i
@@ -514,15 +532,15 @@ a
a
K
y
-J
-J
+A
+A
p
p
-J
-J
-J
+A
+A
+A
m
-J
+A
P
i
i
@@ -539,17 +557,17 @@ a
"}
(15,1,1) = {"
a
-J
-J
-J
-J
+A
+A
+A
+A
t
-J
-J
-J
-J
+A
+A
+A
+A
L
-J
+A
P
i
i
@@ -566,17 +584,17 @@ a
"}
(16,1,1) = {"
a
-J
+A
C
-J
-J
+A
+A
e
e
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
P
i
i
@@ -594,16 +612,16 @@ a
(17,1,1) = {"
a
G
-J
-J
-J
+A
+A
+A
F
-J
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
+A
P
i
i
@@ -622,15 +640,15 @@ a
a
S
G
-J
-J
+A
+A
D
D
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
X
X
X
@@ -647,17 +665,17 @@ a
"}
(19,1,1) = {"
a
-J
-J
-J
-J
+A
+A
+A
+A
R
-J
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
+A
X
X
X
@@ -674,17 +692,17 @@ a
"}
(20,1,1) = {"
a
-J
+A
H
-J
-J
-J
-J
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
+A
+A
+A
+A
P
i
i
@@ -701,17 +719,17 @@ a
"}
(21,1,1) = {"
a
-J
+A
O
-J
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
+A
c
-J
-J
+A
+A
P
i
i
@@ -729,16 +747,16 @@ a
(22,1,1) = {"
a
o
-J
+A
y
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
U
-J
-J
+A
+A
P
i
i
@@ -755,17 +773,17 @@ a
"}
(23,1,1) = {"
a
-J
+A
G
-J
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
+A
y
-J
-J
+A
+A
P
i
i
@@ -782,17 +800,17 @@ a
"}
(24,1,1) = {"
a
-J
+A
B
-J
+A
z
-J
+A
y
-J
-J
-J
-J
-J
+A
+A
+A
+A
+A
P
i
Q
diff --git a/_maps/virtual_domains/clown_planet.dmm b/_maps/virtual_domains/clown_planet.dmm
index 01d7b88a5ef..7dbeefe3043 100644
--- a/_maps/virtual_domains/clown_planet.dmm
+++ b/_maps/virtual_domains/clown_planet.dmm
@@ -7,15 +7,15 @@
/obj/machinery/light/small/directional/west,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"aI" = (
/obj/item/bikehorn/airhorn,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"aM" = (
/obj/item/bikehorn,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"aP" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -23,7 +23,7 @@
/obj/effect/decal/cleanable/food/pie_smudge,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ba" = (
/obj/structure/mecha_wreckage/honker,
/obj/structure/disposalpipe/segment{
@@ -31,7 +31,7 @@
invisibility = 101
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bi" = (
/obj/item/bikehorn,
/obj/structure/disposalpipe/segment{
@@ -39,19 +39,19 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bp" = (
/turf/open/indestructible/light,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bq" = (
/obj/structure/disposalpipe/segment{
dir = 10
},
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"by" = (
/turf/closed/wall/r_wall,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"bQ" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -59,26 +59,26 @@
},
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bR" = (
/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bU" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cw" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cM" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -87,7 +87,7 @@
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cW" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -95,21 +95,21 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ed" = (
/obj/structure/disposalpipe/segment{
invisibility = 101
},
/obj/machinery/light/small/directional/west,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"eE" = (
/obj/structure/window/reinforced/spawner/directional/south,
/obj/structure/disposalpipe/segment{
invisibility = 101
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fh" = (
/obj/effect/mob_spawn/corpse/human/damaged,
/obj/effect/decal/cleanable/blood/old,
@@ -118,7 +118,7 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gr" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/template_noop,
@@ -129,23 +129,23 @@
},
/obj/effect/baseturf_helper/virtual_domain,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gH" = (
/obj/item/bikehorn,
/obj/effect/decal/cleanable/dirt,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gK" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"hK" = (
/obj/item/clothing/head/cone,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"hY" = (
/turf/template_noop,
/area/template_noop)
@@ -157,24 +157,24 @@
dir = 4
},
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ik" = (
/turf/open/lava/smooth,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"iR" = (
/obj/structure/disposalpipe/segment{
dir = 4;
invisibility = 101
},
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"ki" = (
/obj/structure/disposalpipe/segment{
dir = 4;
invisibility = 101
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"kn" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -182,7 +182,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lj" = (
/obj/structure/disposalpipe/trunk{
dir = 4
@@ -191,14 +191,14 @@
dir = 8
},
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"lm" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/obj/machinery/light/small/directional/east,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lr" = (
/obj/item/bikehorn,
/obj/effect/decal/cleanable/dirt,
@@ -207,60 +207,60 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lx" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ly" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"lP" = (
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mD" = (
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mE" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mF" = (
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nE" = (
/obj/effect/mapping_helpers/no_lava,
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"oA" = (
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"oI" = (
/obj/structure/table/glass,
/obj/item/grown/bananapeel/bluespace,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pl" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ps" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qM" = (
/obj/structure/disposalpipe/segment{
invisibility = 101
@@ -268,7 +268,7 @@
/obj/machinery/light/small/directional/north,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rg" = (
/obj/item/coin/bananium,
/obj/item/coin/bananium,
@@ -276,19 +276,19 @@
/obj/item/coin/bananium,
/obj/machinery/light/small/directional/west,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rh" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rr" = (
/obj/structure/disposalpipe/segment{
dir = 5
},
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"rH" = (
/obj/structure/disposalpipe/junction/yjunction{
dir = 1;
@@ -297,46 +297,46 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rT" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"sq" = (
/obj/machinery/light/directional/north,
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"sT" = (
/obj/structure/disposalpipe/sorting/mail/flip{
dir = 1
},
/obj/effect/mapping_helpers/mail_sorting/supply/qm_office,
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"tq" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"tt" = (
/obj/structure/disposalpipe/segment{
dir = 4;
invisibility = 101
},
/turf/open/indestructible/light,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"tv" = (
/obj/effect/mob_spawn/corpse/human/damaged,
/obj/effect/decal/cleanable/blood/old,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"tF" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"tI" = (
/obj/item/coin/bananium,
/obj/item/coin/bananium,
@@ -344,15 +344,15 @@
/obj/item/coin/bananium,
/obj/machinery/light/small/directional/east,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uX" = (
/obj/effect/mapping_helpers/no_lava,
/mob/living/basic/clown,
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uY" = (
/turf/closed/mineral/bananium,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uZ" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -362,13 +362,13 @@
/obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/escape,
/obj/item/pen/fourcolor,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wz" = (
/obj/machinery/light/small/directional/south,
/obj/effect/mapping_helpers/no_lava,
/mob/living/basic/clown,
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xt" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/turf/template_noop,
@@ -377,17 +377,17 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"yz" = (
/obj/structure/disposalpipe/segment{
dir = 10
},
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"yS" = (
/obj/structure/marker_beacon/yellow,
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"yZ" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -395,16 +395,16 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zm" = (
/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zA" = (
/obj/structure/statue/bananium/clown,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zF" = (
/obj/structure/disposalpipe/trunk{
dir = 4
@@ -413,14 +413,14 @@
dir = 8
},
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Aa" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/obj/effect/turf_decal/tile/red/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Bi" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -429,7 +429,7 @@
/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Cp" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -437,7 +437,7 @@
},
/obj/machinery/light/small/directional/west,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Cs" = (
/obj/item/bikehorn,
/obj/structure/disposalpipe/segment{
@@ -446,10 +446,7 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
-"Dh" = (
-/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Do" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -457,7 +454,7 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"DL" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -465,35 +462,35 @@
/obj/item/bikehorn,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ex" = (
/obj/structure/disposalpipe/segment{
dir = 10
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"FI" = (
/obj/item/reagent_containers/cup/glass/trophy/gold_cup,
/obj/structure/table/glass,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Gg" = (
/obj/structure/table/glass,
/obj/item/gun/magic/staff/honk,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Hq" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Hr" = (
/obj/structure/table/glass,
/obj/item/clothing/shoes/clown_shoes/banana_shoes,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"HQ" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -501,10 +498,10 @@
/obj/machinery/light/small/directional/east,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ie" = (
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"Iz" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -512,20 +509,20 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"IN" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"IY" = (
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Jv" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"JB" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -534,28 +531,28 @@
/obj/machinery/light/small/directional/north,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ka" = (
/obj/effect/decal/cleanable/food/pie_smudge,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Kh" = (
/obj/effect/mob_spawn/corpse/human/damaged,
/obj/effect/decal/cleanable/blood/old,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"KG" = (
/obj/item/pickaxe,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"KI" = (
/obj/structure/disposalpipe/segment{
dir = 4;
invisibility = 101
},
/turf/closed/wall/r_wall,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"Lv" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -563,18 +560,18 @@
},
/obj/machinery/light/small/directional/east,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Nv" = (
/obj/effect/decal/cleanable/cobweb,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"NB" = (
/obj/machinery/disposal/delivery_chute,
/obj/structure/disposalpipe/trunk{
dir = 1
},
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"NL" = (
/obj/machinery/disposal/delivery_chute{
desc = "The following is engraved upon the chute: A FATE WORSE THAN DEATH LIES WITHIN";
@@ -584,12 +581,12 @@
/obj/structure/disposalpipe/trunk,
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"NW" = (
/obj/structure/table/glass,
/obj/item/reagent_containers/spray/waterflower/superlube,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ok" = (
/obj/item/bikehorn,
/obj/structure/disposalpipe/segment{
@@ -597,7 +594,7 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ov" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -605,7 +602,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"PJ" = (
/obj/structure/disposalpipe/trunk,
/obj/structure/disposaloutlet{
@@ -613,10 +610,10 @@
},
/obj/effect/mapping_helpers/no_lava,
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"PM" = (
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"PQ" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -624,20 +621,20 @@
},
/obj/item/pickaxe,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"QP" = (
/turf/template_noop,
/area/virtual_domain/safehouse)
"QX" = (
/obj/structure/closet/crate/secure/bitrunning/encrypted,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Rh" = (
/obj/structure/disposalpipe/segment{
dir = 5
},
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Rx" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -646,13 +643,13 @@
/obj/structure/table,
/obj/item/flashlight/lamp/bananalamp,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"RU" = (
/obj/structure/disposalpipe/segment{
invisibility = 101
},
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"Sg" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -661,13 +658,13 @@
/obj/effect/decal/cleanable/food/pie_smudge,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Sm" = (
/obj/structure/disposalpipe/segment{
dir = 5
},
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Tm" = (
/obj/effect/decal/cleanable/food/pie_smudge,
/obj/structure/disposalpipe/segment{
@@ -675,13 +672,13 @@
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Tx" = (
/obj/structure/disposalpipe/segment{
invisibility = 101
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"TH" = (
/obj/structure/disposalpipe/trunk{
dir = 4
@@ -690,67 +687,60 @@
dir = 8
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"TK" = (
/obj/structure/disposalpipe/segment{
invisibility = 101
},
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ug" = (
/obj/machinery/light/small/directional/north,
/turf/open/floor/carpet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UL" = (
/obj/effect/decal/cleanable/oil,
/obj/structure/disposalpipe/segment{
dir = 10
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UN" = (
/obj/structure/disposalpipe/segment{
dir = 10
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UQ" = (
/obj/structure/disposalpipe/segment{
invisibility = 101
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UY" = (
/obj/structure/disposalpipe/segment{
dir = 5
},
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
-"Vv" = (
-/obj/structure/disposalpipe/segment{
- dir = 4;
- invisibility = 101
- },
-/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Vx" = (
/obj/structure/disposalpipe/segment{
dir = 4;
invisibility = 101
},
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"VI" = (
/obj/structure/disposalpipe/segment{
dir = 10
},
/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
"VQ" = (
/turf/open/floor/noslip,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ww" = (
/obj/structure/disposalpipe/segment{
dir = 4;
@@ -759,40 +749,40 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/yellow/fourcorners,
/turf/open/indestructible/permalube,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"WB" = (
/obj/machinery/disposal/delivery_chute{
dir = 1
},
/obj/structure/disposalpipe/trunk,
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"WT" = (
/obj/machinery/door/airlock/bananium,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"WX" = (
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xp" = (
/obj/machinery/light/directional/south,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XB" = (
/obj/machinery/light/directional/north,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Yb" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/indestructible/honk,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"YP" = (
/obj/structure/disposalpipe/segment{
dir = 4;
invisibility = 101
},
/turf/open/indestructible/white,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ZR" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -801,7 +791,7 @@
dir = 4
},
/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
+/area/virtual_domain)
(1,1,1) = {"
Ie
@@ -904,13 +894,13 @@ Ie
Ie
Ie
Ie
-Dh
-Dh
-Dh
-Dh
-Dh
-Dh
-Dh
+by
+by
+by
+by
+by
+by
+by
Ie
Ie
Ie
@@ -918,11 +908,11 @@ Ie
Ie
Ie
Ie
-Dh
-Dh
-Dh
-Dh
-Dh
+by
+by
+by
+by
+by
Ie
Ie
Ie
@@ -948,29 +938,29 @@ Vx
Ie
Ie
Ie
-Dh
-Dh
-Dh
+by
+by
+by
ik
ik
ik
ik
ik
-Dh
-Dh
+by
+by
Ie
Ie
Ie
Ie
Ie
-Dh
-Dh
+by
+by
ik
ik
ik
-Dh
-Dh
-Dh
+by
+by
+by
Ie
Ie
Ie
@@ -993,8 +983,8 @@ Ie
Vx
Ie
Ie
-Dh
-Dh
+by
+by
ik
ik
ik
@@ -1003,21 +993,21 @@ Sm
Hq
Sm
ik
-Dh
-Dh
+by
+by
Ie
Ie
Ie
-Dh
-Dh
+by
+by
ik
ik
tq
mD
ik
ik
-Dh
-Dh
+by
+by
Ie
Ie
Ie
@@ -1038,8 +1028,8 @@ Ie
Ie
Vx
Ie
-Dh
-Dh
+by
+by
ik
ik
IN
@@ -1050,11 +1040,11 @@ yZ
aP
Sm
ik
-Dh
-Dh
-Dh
-Dh
-Dh
+by
+by
+by
+by
+by
Nv
IY
tq
@@ -1063,8 +1053,8 @@ ik
ik
ik
ik
-Dh
-Dh
+by
+by
Ie
Ie
Vx
@@ -1084,23 +1074,23 @@ Ie
Ie
Vx
Ie
-Dh
+by
ik
ik
-Dh
+by
Bi
cw
UQ
lr
UQ
UY
-Vv
+KI
ik
-Dh
+by
IY
Jv
IY
-Dh
+by
IY
Jv
Kh
@@ -1110,7 +1100,7 @@ ik
tq
ik
ik
-Dh
+by
Ie
Ie
Vx
@@ -1129,8 +1119,8 @@ hY
Ie
Ie
Vx
-Dh
-Dh
+by
+by
ik
IN
Tm
@@ -1139,9 +1129,9 @@ Ww
cw
UQ
Sm
-Vv
-Vv
-Dh
+KI
+KI
+by
zm
oA
IY
@@ -1152,12 +1142,12 @@ Jv
IY
IY
IY
-Dh
+by
ik
mD
ik
-Dh
-Dh
+by
+by
Ie
Vx
hY
@@ -1175,27 +1165,27 @@ hY
Ie
Ie
Vx
-Dh
+by
ik
ik
UN
UQ
UY
Ww
-Vv
+KI
TH
-Vv
+KI
YP
Cp
uY
-Dh
+by
sq
oA
IY
-Dh
-Dh
+by
+by
Jv
-Dh
+by
IY
IY
IY
@@ -1203,7 +1193,7 @@ tq
ik
ik
ik
-Dh
+by
Ie
Vx
Ie
@@ -1221,7 +1211,7 @@ tF
Ie
Ie
Vx
-Dh
+by
ik
IN
UQ
@@ -1229,14 +1219,14 @@ UQ
yZ
Do
Do
-Vv
+KI
YP
YP
YP
KG
uY
-Dh
-Dh
+by
+by
oA
IY
IY
@@ -1246,10 +1236,10 @@ IY
gH
Jv
Xp
-Dh
+by
ik
ik
-Dh
+by
by
KI
by
@@ -1267,15 +1257,15 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
yz
fh
UQ
UY
-Vv
+KI
Ww
-Vv
+KI
YP
YP
tt
@@ -1285,7 +1275,7 @@ oA
oA
oA
IY
-Dh
+by
IY
IY
Jv
@@ -1295,7 +1285,7 @@ IY
ik
tq
ik
-Dh
+by
by
iR
PM
@@ -1313,7 +1303,7 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
Hq
TK
@@ -1321,18 +1311,18 @@ qM
yZ
Ww
Ww
-Vv
+KI
YP
PQ
tt
bp
uY
-Dh
+by
oA
oA
IY
IY
-Dh
+by
IY
IY
IY
@@ -1359,7 +1349,7 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
UN
UQ
@@ -1368,20 +1358,20 @@ DL
Ww
yz
lx
-Vv
+KI
YP
Lv
WX
-Dh
-Dh
+by
+by
oA
IY
IY
-Dh
-Dh
+by
+by
IY
IY
-Dh
+by
IY
Jv
ik
@@ -1403,8 +1393,8 @@ Ie
"}
(14,1,1) = {"
Ie
-Dh
-Vv
+by
+KI
nE
nE
mD
@@ -1415,17 +1405,17 @@ Ex
Tm
UQ
lx
-Vv
-Vv
+KI
+KI
ps
TK
Sm
-Dh
-Dh
-Dh
+by
+by
+by
zA
rg
-Dh
+by
XB
IY
Jv
@@ -1449,11 +1439,11 @@ Ie
"}
(15,1,1) = {"
Ie
-Dh
+by
ij
hK
nE
-Dh
+by
yz
UQ
UQ
@@ -1466,13 +1456,13 @@ Do
Iz
kn
Ww
-Dh
-Dh
+by
+by
FI
mF
mF
mF
-Dh
+by
IY
Jv
Jv
@@ -1495,7 +1485,7 @@ Ie
"}
(16,1,1) = {"
Ie
-Dh
+by
VQ
uX
NL
@@ -1513,13 +1503,13 @@ pl
Do
Ex
UY
-Dh
+by
Ug
oI
NW
mF
-Dh
-Dh
+by
+by
Jv
IY
IY
@@ -1541,11 +1531,11 @@ Ie
"}
(17,1,1) = {"
Ie
-Dh
+by
VQ
bR
wz
-Dh
+by
Hq
UQ
Sm
@@ -1568,7 +1558,7 @@ WT
IY
Jv
IY
-Dh
+by
ik
tq
ik
@@ -1587,7 +1577,7 @@ Ie
"}
(18,1,1) = {"
Ie
-Dh
+by
VQ
uX
PJ
@@ -1596,7 +1586,7 @@ sT
kn
Do
Do
-Vv
+KI
Do
Ov
UQ
@@ -1605,12 +1595,12 @@ Ok
mE
rH
pl
-Dh
+by
mF
Hr
Gg
mF
-Dh
+by
IY
IY
IY
@@ -1633,12 +1623,12 @@ Ie
"}
(19,1,1) = {"
Ie
-Dh
+by
zF
uX
nE
-Dh
-Dh
+by
+by
Ww
Ww
Ww
@@ -1649,14 +1639,14 @@ lP
Ex
UY
Ka
-Vv
+KI
tv
-Dh
+by
FI
mF
mF
QX
-Dh
+by
IY
IY
IY
@@ -1679,29 +1669,29 @@ Ie
"}
(20,1,1) = {"
Ie
-Dh
-Vv
+by
+KI
nE
nE
ik
-Dh
+by
Ww
Ww
Cs
Do
Do
-Vv
-Dh
-Dh
+KI
+by
+by
bQ
-Dh
+by
ba
-Dh
+by
IY
-Dh
+by
zA
tI
-Dh
+by
XB
IY
Jv
@@ -1727,26 +1717,26 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
-Dh
-Dh
+by
+by
Do
Do
Do
Ww
Do
-Vv
+KI
rh
ed
gK
-Dh
+by
UL
Sm
IY
IY
-Dh
-Dh
+by
+by
Kh
IY
IY
@@ -1773,26 +1763,26 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
-Dh
-Dh
+by
+by
JB
Sg
-Vv
+KI
Ww
-Vv
+KI
uZ
YP
bp
bp
uY
-Dh
+by
bQ
oA
IY
IY
-Dh
+by
IY
Jv
IY
@@ -1819,15 +1809,15 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
cM
eE
lx
-Vv
+KI
ki
Ww
-Vv
+KI
Rx
YP
bp
@@ -1835,7 +1825,7 @@ bp
WB
TK
Aa
-Dh
+by
IY
IY
Jv
@@ -1844,10 +1834,10 @@ Jv
IY
aM
Xp
-Dh
+by
tq
ik
-Dh
+by
by
iR
PM
@@ -1865,10 +1855,10 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
-Dh
-Dh
+by
+by
lP
Do
Do
@@ -1879,7 +1869,7 @@ bq
Rh
WX
uY
-Dh
+by
oA
oA
IY
@@ -1888,12 +1878,12 @@ Jv
Jv
IY
IY
-Dh
-Dh
+by
+by
ik
mD
ik
-Dh
+by
by
KI
by
@@ -1911,20 +1901,20 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
-Dh
-Dh
+by
+by
pl
Do
-Vv
+KI
Do
-Vv
-Vv
+KI
+KI
rh
lm
uY
-Dh
+by
sq
oA
IY
@@ -1932,14 +1922,14 @@ IY
IY
IY
IY
-Dh
+by
IY
IY
ik
mD
ik
ik
-Dh
+by
Ie
Vx
Ie
@@ -1957,19 +1947,19 @@ Ie
Ie
Ie
Vx
-Dh
+by
ik
ik
-Dh
+by
yd
Do
Do
Do
Ex
lx
-Vv
-Dh
-Dh
+KI
+by
+by
oA
oA
IY
@@ -1980,12 +1970,12 @@ aM
IY
IY
IY
-Dh
+by
ik
tq
ik
-Dh
-Dh
+by
+by
Ie
Vx
hY
@@ -2003,34 +1993,34 @@ hY
Ie
Ie
Vx
-Dh
-Dh
+by
+by
ik
-Dh
-Dh
+by
+by
Ex
lx
HQ
UQ
UQ
bU
-Dh
+by
ik
-Dh
+by
Yb
IY
IY
-Dh
+by
IY
IY
-Dh
+by
IY
IY
ik
mD
ik
ik
-Dh
+by
Ie
Ie
Vx
@@ -2050,23 +2040,23 @@ Ie
Ie
Vx
Ie
-Dh
-Dh
+by
+by
ik
ik
-Dh
+by
mD
-Dh
+by
Ka
lP
mD
-Dh
+by
ik
-Dh
-Dh
-Dh
-Dh
-Dh
+by
+by
+by
+by
+by
IY
IY
IY
@@ -2075,8 +2065,8 @@ ik
ik
ik
ik
-Dh
-Dh
+by
+by
Ie
Ie
Vx
@@ -2097,31 +2087,31 @@ Ie
Vx
Ie
Ie
-Dh
-Dh
+by
+by
ik
ik
ik
tq
tq
tq
-Dh
+by
ik
-Dh
-Dh
+by
+by
Ie
Ie
Ie
-Dh
-Dh
+by
+by
ik
ik
mD
tq
ik
ik
-Dh
-Dh
+by
+by
Ie
Ie
Ie
@@ -2144,29 +2134,29 @@ Vx
Ie
Ie
Ie
-Dh
-Dh
-Dh
+by
+by
+by
ik
ik
ik
ik
ik
-Dh
-Dh
+by
+by
Ie
Ie
Ie
Ie
Ie
-Dh
-Dh
+by
+by
ik
ik
ik
-Dh
-Dh
-Dh
+by
+by
+by
Ie
Ie
Ie
@@ -2192,13 +2182,13 @@ Ie
Ie
Ie
Ie
-Dh
-Dh
-Dh
-Dh
-Dh
-Dh
-Dh
+by
+by
+by
+by
+by
+by
+by
Ie
Ie
Ie
@@ -2206,11 +2196,11 @@ Ie
Ie
Ie
Ie
-Dh
-Dh
-Dh
-Dh
-Dh
+by
+by
+by
+by
+by
Ie
Ie
Ie
diff --git a/_maps/virtual_domains/legion.dmm b/_maps/virtual_domains/legion.dmm
deleted file mode 100644
index 55843177ad0..00000000000
--- a/_maps/virtual_domains/legion.dmm
+++ /dev/null
@@ -1,6370 +0,0 @@
-//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
-"ah" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ak" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"aI" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"aR" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"bd" = (
-/obj/structure/stone_tile/block,
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"be" = (
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"bt" = (
-/obj/effect/decal/cleanable/blood,
-/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/footprints{
- dir = 1
- },
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"bu" = (
-/obj/structure/marker_beacon/bronze,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ca" = (
-/obj/effect/mob_spawn/corpse/human/legioninfested,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"cf" = (
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"cp" = (
-/turf/template_noop,
-/area/template_noop)
-"dm" = (
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"dn" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/effect/mob_spawn/corpse/human/legioninfested,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"dr" = (
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/obj/structure/stone_tile/block/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"dx" = (
-/obj/effect/decal/cleanable/blood/footprints{
- dir = 8
- },
-/obj/effect/decal/cleanable/blood/drip,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"dL" = (
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"dQ" = (
-/turf/closed/wall/mineral/titanium/survival/pod,
-/area/lavaland/surface/outdoors/virtual_domain)
-"et" = (
-/obj/structure/stone_tile/block/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ew" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"eJ" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"fA" = (
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"fG" = (
-/obj/structure/marker_beacon/violet,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"gh" = (
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"gk" = (
-/obj/structure/necropolis_gate/locked,
-/obj/structure/stone_tile/slab,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"gK" = (
-/obj/effect/decal/cleanable/blood/footprints,
-/obj/effect/decal/cleanable/blood/drip,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"gQ" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"hc" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"hw" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/block/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"hx" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"hU" = (
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ib" = (
-/turf/closed/mineral/volcanic/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ie" = (
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"iP" = (
-/obj/structure/fluff/drake_statue/falling,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"iR" = (
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"iV" = (
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"jk" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"jt" = (
-/obj/structure/stone_tile/slab/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"jw" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"jN" = (
-/obj/machinery/sleeper/survival_pod,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ka" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"kg" = (
-/turf/closed/indestructible/riveted/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"kT" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"kZ" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ll" = (
-/obj/structure/stone_tile/cracked,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"lz" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"lC" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"lO" = (
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"lT" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"mz" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"mG" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"nm" = (
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"nu" = (
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"nv" = (
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ny" = (
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"nI" = (
-/obj/structure/stone_tile/block,
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"nO" = (
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/surrounding_tile{
- dir = 1
- },
-/obj/structure/stone_tile/center,
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ob" = (
-/obj/structure/necropolis_gate/legion_gate,
-/obj/structure/necropolis_arch,
-/obj/structure/stone_tile/slab,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"og" = (
-/obj/effect/landmark/bitrunning/safehouse_spawn,
-/turf/template_noop,
-/area/virtual_domain/safehouse)
-"oo" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/block/cracked{
- dir = 1
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ox" = (
-/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
-"oS" = (
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"pP" = (
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"qo" = (
-/obj/structure/stone_tile/slab/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"qs" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"qW" = (
-/obj/effect/decal/cleanable/blood/footprints{
- dir = 1
- },
-/obj/machinery/door/airlock/survival_pod/glass,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"rt" = (
-/obj/effect/mob_spawn/corpse/human/miner,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"rU" = (
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"sd" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"sk" = (
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"sz" = (
-/obj/structure/stone_tile/center,
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"sA" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"tk" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"tF" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"uK" = (
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"vf" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"wq" = (
-/obj/structure/marker_beacon/teal,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"wy" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"xd" = (
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"xm" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"xw" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"xD" = (
-/obj/structure/stone_tile/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"yu" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 1
- },
-/obj/structure/stone_tile/block,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"yZ" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"zg" = (
-/obj/machinery/light/small/directional/south,
-/obj/effect/baseturf_helper/virtual_domain,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/virtual_domain/powered)
-"zo" = (
-/obj/effect/turf_decal/mining/survival,
-/turf/closed/wall/mineral/titanium/survival/pod,
-/area/lavaland/surface/outdoors/virtual_domain)
-"zW" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 8
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/center/cracked,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ah" = (
-/obj/effect/baseturf_helper/virtual_domain,
-/turf/closed/indestructible/binary,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Aj" = (
-/obj/structure/marker_beacon/burgundy,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ak" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 8
- },
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/center/cracked,
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 4
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"As" = (
-/obj/structure/marker_beacon/cerulean,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"AY" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Bo" = (
-/obj/structure/marker_beacon/indigo,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"BO" = (
-/turf/template_noop,
-/area/virtual_domain/safehouse)
-"CX" = (
-/obj/effect/decal/cleanable/blood/drip,
-/obj/effect/decal/cleanable/blood/footprints{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Dm" = (
-/turf/closed/mineral/random/volcanic,
-/area/lavaland/surface/outdoors/virtual_domain)
-"DP" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 8
- },
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile/center,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ek" = (
-/obj/structure/stone_tile/block,
-/obj/structure/stone_tile/block/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ep" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ez" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"EC" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Fg" = (
-/obj/structure/stone_tile/surrounding/cracked{
- dir = 6
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Fp" = (
-/obj/effect/baseturf_helper/virtual_domain,
-/turf/template_noop,
-/area/virtual_domain/safehouse)
-"Fq" = (
-/obj/structure/marker_beacon/fuchsia,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"FV" = (
-/obj/structure/stone_tile/block,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Gj" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Gn" = (
-/turf/closed/indestructible/riveted/boss/see_through,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Go" = (
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 1
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"GH" = (
-/obj/structure/fans,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"GM" = (
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Hi" = (
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Hu" = (
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Hw" = (
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/surrounding_tile{
- dir = 1
- },
-/obj/structure/stone_tile/center/cracked,
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"HK" = (
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"HQ" = (
-/obj/structure/stone_tile/block/cracked,
-/obj/structure/stone_tile/block{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"HZ" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ii" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Io" = (
-/obj/structure/marker_beacon/jade,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ip" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"IB" = (
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"IG" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"IL" = (
-/obj/structure/stone_tile/surrounding,
-/obj/structure/stone_tile/center/cracked,
-/mob/living/simple_animal/hostile/megafauna/legion/virtual_domain,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"IQ" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Jc" = (
-/obj/structure/stone_tile/slab,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Jp" = (
-/obj/structure/stone_tile/block/cracked,
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Jt" = (
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Jw" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"JD" = (
-/obj/structure/fluff/drake_statue,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"KG" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile,
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Le" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Lx" = (
-/obj/effect/decal/cleanable/blood/footprints{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"LH" = (
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ml" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Mm" = (
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/center/cracked,
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Mo" = (
-/obj/structure/stone_tile/block/cracked,
-/obj/structure/stone_tile/block/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"MH" = (
-/obj/structure/stone_tile/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"MP" = (
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"MW" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Nl" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 1
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 8
- },
-/obj/structure/stone_tile/center,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ot" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 1
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 8
- },
-/obj/structure/stone_tile/center,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Pv" = (
-/obj/effect/turf_decal/mining/survival{
- dir = 4
- },
-/turf/closed/wall/mineral/titanium/survival/pod,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Px" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"PO" = (
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Qi" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/cracked,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Qx" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/marker_beacon/burgundy,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"QD" = (
-/obj/item/pickaxe,
-/obj/effect/decal/cleanable/blood,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"RC" = (
-/obj/effect/turf_decal/mining/survival{
- dir = 1
- },
-/turf/closed/wall/mineral/titanium/survival/pod,
-/area/lavaland/surface/outdoors/virtual_domain)
-"RV" = (
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"So" = (
-/obj/structure/stone_tile/cracked,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Sw" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"SI" = (
-/obj/effect/turf_decal/mining,
-/turf/closed/wall/mineral/titanium/survival/pod,
-/area/lavaland/surface/outdoors/virtual_domain)
-"SJ" = (
-/obj/structure/stone_tile/slab/cracked,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"SX" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ti" = (
-/turf/closed/mineral/random/high_chance/volcanic,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Tm" = (
-/obj/structure/bed/pod,
-/obj/item/bedsheet/black,
-/obj/structure/tubes,
-/obj/machinery/light/small/broken/directional/east,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"TC" = (
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"TJ" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Ud" = (
-/obj/machinery/light/small/directional/north,
-/obj/effect/baseturf_helper/virtual_domain,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/virtual_domain/powered)
-"UD" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 1
- },
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/center/cracked,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"UM" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Vc" = (
-/obj/structure/tubes,
-/obj/item/crowbar,
-/obj/effect/decal/cleanable/blood/drip,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"VI" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 1
- },
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile,
-/obj/structure/stone_tile/center,
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Wa" = (
-/obj/structure/stone_tile/surrounding_tile{
- dir = 4
- },
-/obj/structure/stone_tile/surrounding_tile/cracked{
- dir = 1
- },
-/obj/structure/stone_tile/surrounding_tile{
- dir = 8
- },
-/obj/structure/stone_tile/center/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Wm" = (
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"WM" = (
-/obj/structure/stone_tile/block,
-/obj/structure/stone_tile/cracked{
- dir = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"WR" = (
-/obj/structure/stone_tile/block,
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"WS" = (
-/obj/item/gps/computer,
-/obj/structure/tubes,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Xb" = (
-/obj/structure/marker_beacon/yellow,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Xn" = (
-/obj/structure/stone_tile,
-/obj/structure/stone_tile/cracked{
- dir = 8
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Xo" = (
-/obj/structure/stone_tile/block,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Xv" = (
-/obj/structure/stone_tile{
- dir = 1
- },
-/obj/structure/stone_tile/cracked,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"XO" = (
-/obj/effect/turf_decal/mining/survival{
- dir = 8
- },
-/turf/closed/wall/mineral/titanium/survival/pod,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Yu" = (
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"YN" = (
-/obj/structure/stone_tile/block/cracked,
-/obj/structure/stone_tile/block/cracked{
- dir = 1
- },
-/turf/open/lava/smooth/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"YV" = (
-/obj/structure/stone_tile{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Zc" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 4
- },
-/obj/structure/stone_tile/block{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Zh" = (
-/obj/structure/marker_beacon/purple,
-/turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Zj" = (
-/obj/structure/stone_tile/block/cracked{
- dir = 8
- },
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Zq" = (
-/obj/structure/stone_tile/block{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 4
- },
-/obj/structure/stone_tile{
- dir = 8
- },
-/turf/open/indestructible/boss,
-/area/lavaland/surface/outdoors/virtual_domain)
-"Zu" = (
-/obj/machinery/smartfridge/survival_pod{
- desc = "A heated storage unit. This one's seen better days.";
- name = "dusty survival pod storage"
- },
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ZM" = (
-/obj/structure/stone_tile/cracked{
- dir = 4
- },
-/obj/structure/stone_tile,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/lavaland/surface/outdoors/virtual_domain)
-"ZN" = (
-/obj/structure/table/survival_pod,
-/obj/item/knife/combat/survival,
-/turf/open/floor/pod/dark,
-/area/lavaland/surface/outdoors/virtual_domain)
-
-(1,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-Ah
-"}
-(2,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ox
-"}
-(3,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-ib
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(4,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(5,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(6,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-wq
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(7,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(8,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-rt
-nu
-nu
-ib
-ib
-ox
-"}
-(9,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(10,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(11,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(12,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(13,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-fG
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(14,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(15,1,1) = {"
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(16,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(17,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-Ti
-Ti
-Ti
-GM
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Io
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Xb
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(18,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-et
-Ti
-GM
-GM
-GM
-nu
-nu
-nu
-nu
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(19,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-GM
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-wq
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(20,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(21,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-nu
-nu
-nu
-nu
-GM
-Ti
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Zh
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(22,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-FV
-nu
-nu
-nu
-nu
-Ti
-Dm
-Dm
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(23,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-GM
-GM
-GM
-Ti
-Ti
-Dm
-Dm
-Ti
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(24,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-FV
-Ml
-Ti
-Dm
-Dm
-Ti
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(25,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-GM
-Ti
-Dm
-Dm
-IB
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(26,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-GM
-GM
-GM
-GM
-GM
-fA
-fA
-fA
-fA
-RV
-fA
-fA
-fA
-fA
-fA
-fA
-Xn
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-As
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(27,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ek
-Le
-be
-be
-kT
-GM
-GM
-GM
-GM
-fA
-fA
-xm
-fA
-fA
-fA
-GM
-ZM
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(28,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-dr
-KG
-mz
-KG
-KG
-jt
-GM
-GM
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-HZ
-nu
-bu
-nu
-nu
-nu
-MH
-nu
-nu
-lz
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(29,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-bd
-mG
-Hw
-hU
-Mm
-lO
-et
-GM
-tk
-fA
-fA
-fA
-fA
-ak
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-YV
-nu
-nu
-So
-nu
-nu
-nu
-nu
-nu
-nu
-bu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(30,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ez
-WR
-JD
-rU
-KG
-dm
-GM
-GM
-fA
-Hi
-fA
-fA
-fA
-ll
-fA
-fA
-Wm
-fA
-fA
-YV
-qs
-MH
-nu
-nu
-nu
-ny
-ca
-oS
-nu
-nu
-Qx
-nu
-nu
-hx
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(31,1,1) = {"
-ox
-kg
-kg
-kg
-Hu
-Zq
-wy
-Zq
-lT
-kg
-kg
-Gn
-Gn
-KG
-Ak
-nv
-Ot
-mG
-hw
-kg
-kg
-Wm
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-ak
-nu
-nu
-qs
-nu
-nu
-TC
-nu
-YV
-nu
-ny
-nu
-oS
-nu
-nu
-nu
-SX
-nu
-nu
-nu
-zg
-BO
-BO
-BO
-BO
-BO
-og
-Ud
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(32,1,1) = {"
-ox
-kg
-kg
-Gn
-VI
-xw
-gQ
-ka
-iR
-kg
-kg
-Gn
-Gn
-sz
-KG
-KG
-KG
-KG
-mz
-kg
-kZ
-kZ
-sd
-kZ
-lC
-kZ
-TJ
-UM
-kZ
-IQ
-UM
-UM
-AY
-nu
-nI
-nu
-nu
-nu
-nu
-oS
-nu
-nu
-nu
-nu
-nu
-qs
-nu
-nu
-nu
-nu
-nu
-nu
-BO
-BO
-BO
-BO
-BO
-BO
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(33,1,1) = {"
-ox
-PO
-PO
-gk
-PO
-Zc
-IL
-Yu
-SJ
-Yu
-Yu
-Yu
-ob
-dL
-uK
-MP
-uK
-uK
-dL
-Jc
-Mo
-eJ
-Mo
-hc
-yu
-eJ
-Fg
-eJ
-YN
-tF
-Mo
-Zj
-HQ
-qo
-Jp
-nu
-aR
-nu
-TC
-nu
-YV
-nu
-nu
-oS
-nu
-nu
-ny
-Sw
-nu
-nu
-nu
-nu
-BO
-BO
-BO
-BO
-BO
-BO
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Io
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(34,1,1) = {"
-ox
-kg
-kg
-Gn
-Nl
-gh
-jw
-lT
-oo
-kg
-kg
-Gn
-Gn
-Wa
-KG
-xd
-Ez
-mz
-HK
-kg
-ie
-Jw
-Jw
-jk
-Jw
-jk
-dn
-Jw
-Jw
-LH
-Ii
-Qi
-aI
-nu
-Xo
-nu
-nu
-YV
-Sw
-nu
-nu
-nu
-sA
-nu
-Gj
-nu
-nu
-HZ
-nu
-YV
-nu
-nu
-BO
-BO
-BO
-BO
-BO
-BO
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(35,1,1) = {"
-ox
-kg
-kg
-kg
-Hu
-Ep
-iV
-Go
-Ip
-kg
-kg
-Gn
-Gn
-lO
-nO
-hU
-UD
-KG
-dm
-kg
-kg
-ll
-fA
-fA
-fA
-ak
-fA
-fA
-fA
-fA
-ll
-fA
-nu
-nu
-ny
-nu
-nu
-Aj
-HZ
-nu
-ew
-nu
-nu
-bu
-nu
-nu
-nu
-nu
-nu
-Aj
-nu
-nu
-BO
-BO
-BO
-BO
-BO
-BO
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(36,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-KG
-WR
-iP
-rU
-Ez
-cf
-GM
-GM
-fA
-fA
-yZ
-vf
-ll
-fA
-fA
-fA
-ak
-fA
-fA
-oS
-ny
-qs
-YV
-qs
-nu
-nu
-nu
-nu
-nu
-nu
-Sw
-nu
-qs
-oS
-nu
-nu
-Sw
-nu
-nu
-BO
-BO
-BO
-BO
-BO
-BO
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-ib
-ox
-"}
-(37,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-bd
-xd
-zW
-nv
-DP
-KG
-FV
-GM
-GM
-fA
-fA
-fA
-GM
-Px
-fA
-IG
-GM
-Hi
-fA
-fA
-nu
-nu
-nu
-nu
-TC
-nu
-ah
-nu
-nu
-nm
-nu
-nu
-nu
-nu
-nu
-nu
-sk
-nu
-nu
-zg
-BO
-BO
-BO
-BO
-BO
-Fp
-Ud
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-nu
-nu
-ib
-ox
-"}
-(38,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-bd
-KG
-KG
-KG
-lO
-Jc
-GM
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-GM
-Jt
-fA
-fA
-fA
-nu
-TC
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(39,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ek
-KG
-lO
-MW
-pP
-GM
-GM
-GM
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-xD
-fA
-fA
-fA
-oS
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(40,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-IB
-nu
-nu
-nu
-nu
-GM
-RV
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(41,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-nu
-nu
-Sw
-Xv
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-GM
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(42,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-nu
-nu
-nu
-ny
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-EC
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Bo
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(43,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-WM
-GM
-Px
-ny
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(44,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-GM
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(45,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-GM
-GM
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(46,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-GM
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-ak
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-wq
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-ib
-ox
-"}
-(47,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-xD
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-ib
-ox
-"}
-(48,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-ib
-ox
-"}
-(49,1,1) = {"
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-Ti
-GM
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-GM
-fA
-fA
-fA
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Fq
-nu
-ib
-ib
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-ib
-ox
-"}
-(50,1,1) = {"
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-kg
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-rt
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(51,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-dQ
-dQ
-XO
-dQ
-dQ
-GM
-nu
-nu
-nu
-ib
-ox
-"}
-(52,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Fq
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-dQ
-GH
-jN
-ZN
-zo
-GM
-nu
-nu
-nu
-ib
-ox
-"}
-(53,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-RC
-Zu
-QD
-bt
-qW
-CX
-nu
-nu
-nu
-ib
-ox
-"}
-(54,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-dQ
-WS
-Tm
-Vc
-SI
-Lx
-nu
-nu
-nu
-ib
-ox
-"}
-(55,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-dQ
-dQ
-Pv
-dQ
-dQ
-Lx
-nu
-nu
-nu
-ib
-ox
-"}
-(56,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-nu
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-GM
-GM
-GM
-GM
-dx
-gK
-nu
-nu
-nu
-ib
-ox
-"}
-(57,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-Io
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(58,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(59,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(60,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-fA
-fA
-fA
-fA
-nu
-nu
-nu
-nu
-nu
-nu
-Xb
-nu
-nu
-nu
-ib
-ox
-"}
-(61,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-nu
-nu
-ib
-ox
-"}
-(62,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ox
-"}
-(63,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-nu
-nu
-nu
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-nu
-nu
-ib
-ib
-ib
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-nu
-ib
-ib
-nu
-nu
-nu
-nu
-ib
-ib
-ox
-"}
-(64,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ib
-ox
-"}
-(65,1,1) = {"
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-cp
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-ox
-"}
diff --git a/_maps/virtual_domains/pipedream.dmm b/_maps/virtual_domains/pipedream.dmm
index 44bd845477a..c443e8c4764 100644
--- a/_maps/virtual_domains/pipedream.dmm
+++ b/_maps/virtual_domains/pipedream.dmm
@@ -4,13 +4,13 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"aw" = (
/obj/structure/disposalpipe/sorting/mail/flip{
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ax" = (
/obj/effect/turf_decal/tile/yellow/fourcorners,
/obj/structure/frame/computer{
@@ -21,24 +21,24 @@
icon_state = "medium"
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"aK" = (
/turf/open/space/basic,
-/area/space)
+/area/virtual_domain)
"aL" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bq" = (
/obj/machinery/light/small/red/dim{
dir = 1
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bs" = (
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bw" = (
/obj/structure/disposalpipe/broken{
dir = 1
@@ -46,18 +46,18 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/preopen,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bx" = (
/obj/structure/frame/computer,
/obj/item/shard,
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-12"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bA" = (
/obj/structure/chair/plastic,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bG" = (
/obj/structure/lattice/catwalk{
name = "industrial lift"
@@ -65,7 +65,7 @@
/obj/structure/closet/crate/preopen,
/obj/structure/railing,
/turf/open/chasm,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"bS" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 1
@@ -80,7 +80,7 @@
pixel_y = -2
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cw" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 9
@@ -89,7 +89,7 @@
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cB" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 10
@@ -99,18 +99,18 @@
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cF" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 9
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"dx" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/item/shard,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"dz" = (
/obj/machinery/light/broken,
/obj/effect/decal/cleanable/dirt,
@@ -119,22 +119,22 @@
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"dA" = (
/obj/machinery/light/dim{
dir = 4
},
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"dP" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"eg" = (
/turf/closed/wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ei" = (
/obj/machinery/conveyor/auto{
dir = 6;
@@ -145,17 +145,17 @@
dir = 5
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ev" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/template_noop,
-/area/virtual_domain/safehouse)
+/area/virtual_domain)
"eJ" = (
/obj/structure/disposalpipe/sorting{
dir = 2
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"eN" = (
/obj/effect/turf_decal/trimline/yellow/arrow_cw{
dir = 1
@@ -165,42 +165,42 @@
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"eY" = (
/turf/closed/wall/r_wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fe" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 8
},
/obj/structure/table/reinforced,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fg" = (
/turf/open/floor/iron/stairs/left{
dir = 8
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fj" = (
/obj/structure/closet/crate/preopen,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fl" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fw" = (
/obj/structure/door_assembly/door_assembly_eng,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fK" = (
/obj/structure/chair/stool/bar/directional/west,
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fR" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 8
@@ -210,52 +210,53 @@
},
/obj/structure/sign/poster/official/random/directional/west,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"fZ" = (
/obj/effect/turf_decal/tile/yellow/fourcorners,
/obj/structure/chair/office{
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gc" = (
/obj/structure/disposalpipe/broken,
+/obj/effect/landmark/bitrunning/mob_segment,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gj" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gs" = (
/obj/machinery/door/airlock/external/glass/ruin,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gN" = (
/obj/structure/disposalpipe/sorting{
dir = 8
},
/turf/open/floor/catwalk_floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gV" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"hg" = (
/obj/effect/turf_decal/caution{
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"hi" = (
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"hk" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
/obj/effect/decal/cleanable/dirt/dust,
@@ -263,24 +264,24 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ho" = (
/obj/effect/turf_decal/siding/white{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"iw" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"iz" = (
/obj/structure/broken_flooring/corner,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"iI" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 8
@@ -288,7 +289,7 @@
/obj/effect/turf_decal/trimline/yellow/corner,
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jv" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 8
@@ -297,53 +298,53 @@
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jw" = (
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jH" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/catwalk_floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jQ" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/light/small/red/dim{
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jS" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/corner{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jW" = (
/obj/effect/decal/cleanable/generic,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"kh" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ki" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"kn" = (
/obj/machinery/light/small/red/dim{
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"kJ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -353,67 +354,60 @@
id = "factorylockdown"
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"kU" = (
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lp" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/locked,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
-"lt" = (
-/obj/structure/disposalpipe/sorting{
- dir = 8
- },
-/mob/living/basic/hivebot/range,
-/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lx" = (
/obj/machinery/door/poddoor/shutters/indestructible{
dir = 4;
id = "factorylockdown"
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lB" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 5
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lC" = (
/obj/machinery/door/airlock/glass,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lI" = (
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lN" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"lW" = (
/obj/structure/disposalpipe/sorting{
dir = 8
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mh" = (
/obj/structure/broken_flooring/pile{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mu" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mE" = (
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"mY" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -422,7 +416,7 @@
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nc" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -432,30 +426,30 @@
},
/obj/structure/sign/poster/official/safety_internals/directional/south,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nz" = (
/obj/structure/broken_flooring/side/directional/north,
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nD" = (
/obj/structure/disposalpipe/trunk/multiz,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nL" = (
/obj/effect/turf_decal/tile/dark/half,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nS" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
dir = 5
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"op" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/dim{
@@ -463,62 +457,56 @@
},
/obj/structure/sign/warning/doors/directional/north,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"oN" = (
/obj/machinery/conveyor/auto,
/obj/structure/window/reinforced/spawner/directional/west,
/obj/structure/window/reinforced/spawner/directional/east,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"oX" = (
/obj/structure/broken_flooring/corner/directional/north,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pa" = (
/obj/machinery/light/small/red/dim{
dir = 1
},
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
-"pb" = (
-/obj/structure/broken_flooring/corner{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pf" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/effect/mapping_helpers/damaged_window,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pi" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"po" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/maint,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pv" = (
/obj/structure/broken_flooring/side{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pI" = (
/obj/effect/turf_decal/tile/yellow/fourcorners,
/obj/machinery/light/small/red/dim{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"pJ" = (
/obj/structure/broken_flooring/pile{
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qc" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 8
@@ -526,18 +514,18 @@
/obj/structure/table/reinforced,
/obj/effect/spawner/random/bureaucracy/briefcase,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qk" = (
/obj/structure/disposalpipe/segment{
dir = 10
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qK" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/warning/secure_area/directional/north,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qN" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -545,7 +533,7 @@
/obj/effect/mob_spawn/corpse/human/factory,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qT" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -554,13 +542,13 @@
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qV" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"qW" = (
/obj/machinery/light/dim{
dir = 1
@@ -569,45 +557,44 @@
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rc" = (
/obj/structure/disposalpipe/segment,
/obj/structure/sign/poster/contraband/random/directional/north,
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rz" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
},
/obj/machinery/light/small/red/dim,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rG" = (
/obj/machinery/light/dim,
/obj/effect/turf_decal/trimline/yellow/line,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rJ" = (
/obj/structure/railing,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rM" = (
/obj/structure/disposalpipe/broken{
dir = 1
},
-/mob/living/basic/hivebot/strong,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"rO" = (
/turf/closed/mineral,
-/area/space)
+/area/virtual_domain)
"sn" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-38"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"sB" = (
/obj/machinery/light/broken{
dir = 8
@@ -617,7 +604,7 @@
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"sW" = (
/obj/effect/decal/cleanable/oil/streak,
/obj/effect/turf_decal/trimline/yellow/corner{
@@ -629,39 +616,34 @@
/obj/effect/decal/cleanable/blood/drip,
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"tl" = (
/obj/machinery/door/poddoor/shutters/indestructible{
id = "factorylockdown"
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"tr" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
-"tE" = (
-/obj/structure/disposalpipe/segment,
-/mob/living/basic/hivebot/range,
-/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ud" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-110"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uk" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/effect/decal/cleanable/blood/splatter/over_window,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"um" = (
/obj/machinery/light/dim{
dir = 1
},
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uv" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -670,29 +652,29 @@
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uz" = (
/obj/effect/spawner/random/trash/mess,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uC" = (
/obj/structure/falsewall,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uF" = (
/obj/structure/disposalpipe/segment,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uP" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-55"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"uU" = (
/obj/structure/broken_flooring/side,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"vb" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/effect/turf_decal/trimline/yellow/line{
@@ -700,7 +682,7 @@
},
/obj/machinery/light/broken,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ve" = (
/obj/machinery/mass_driver/trash{
dir = 1
@@ -709,26 +691,26 @@
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"vA" = (
/obj/structure/closet/crate/maint,
/obj/effect/turf_decal/stripes{
dir = 9
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"vL" = (
/obj/effect/decal/cleanable/glass,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"vQ" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"vU" = (
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wg" = (
/obj/machinery/light/small/red/dim{
dir = 4
@@ -736,24 +718,24 @@
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet/crate/preopen,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wh" = (
/obj/structure/table/wood,
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-207"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wl" = (
/obj/item/shard,
/turf/open/space/basic,
-/area/space)
+/area/virtual_domain)
"wm" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
dir = 1
},
/obj/structure/sign/clock/directional/north,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wq" = (
/obj/structure/table/wood,
/obj/machinery/button/door{
@@ -763,7 +745,7 @@
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-63"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ws" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 1
@@ -772,57 +754,56 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ww" = (
/obj/effect/turf_decal/stripes{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
-/mob/living/basic/hivebot,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wU" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"wW" = (
/obj/effect/turf_decal/tile/yellow/fourcorners,
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xa" = (
/obj/machinery/door/poddoor/shutters/indestructible{
dir = 8;
id = "factorylockdown"
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xj" = (
/obj/structure/railing/corner/end{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xk" = (
/obj/machinery/light/dim{
dir = 4
},
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xl" = (
/obj/structure/disposalpipe/segment{
dir = 5
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xA" = (
/obj/effect/decal/cleanable/generic,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xE" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/effect/turf_decal/trimline/yellow/line{
@@ -830,11 +811,11 @@
},
/obj/machinery/light/broken,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xF" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/indestructible/binary,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xM" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 4
@@ -844,28 +825,28 @@
name = "cat bed"
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"xT" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"yB" = (
/obj/machinery/door/airlock/maintenance,
/obj/effect/mapping_helpers/airlock/welded,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"yM" = (
/turf/closed/indestructible/fakedoor{
name = "Stairwell Access"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"yQ" = (
/turf/template_noop,
/area/template_noop)
"yX" = (
/obj/structure/fans/tiny,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zp" = (
/obj/structure/chair/sofa/corp/right{
dir = 1
@@ -873,13 +854,13 @@
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/broken,
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zB" = (
/obj/structure/closet/crate/bin,
/obj/item/trash/tray,
/obj/effect/spawner/random/trash/garbage,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zE" = (
/obj/structure/disposalpipe/broken{
dir = 1
@@ -888,7 +869,7 @@
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zO" = (
/obj/effect/turf_decal/siding/white{
dir = 4
@@ -896,30 +877,23 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/broken,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Av" = (
/obj/item/stack/rods/two,
/turf/open/space/basic,
-/area/space)
-"Aw" = (
-/obj/structure/lattice/catwalk{
- name = "industrial lift"
- },
-/mob/living/basic/hivebot/rapid,
-/turf/open/chasm,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"AJ" = (
/obj/effect/decal/cleanable/generic,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"AP" = (
/obj/structure/railing,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"AU" = (
/turf/open/misc/asteroid/airless,
-/area/space)
+/area/virtual_domain)
"Bd" = (
/obj/structure/closet/secure_closet/tac{
req_access = null
@@ -928,11 +902,11 @@
/obj/item/ammo_casing/shotgun/buckshot,
/obj/item/ammo_casing/shotgun/buckshot,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Bh" = (
/obj/structure/broken_flooring/corner/directional/east,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Bx" = (
/obj/structure/table/reinforced,
/obj/machinery/microwave{
@@ -940,11 +914,11 @@
desc = "No longer cooks and boils stuff."
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"BA" = (
/obj/structure/broken_flooring/corner/directional/south,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"BI" = (
/obj/machinery/door/airlock/command/glass{
name = "Quartermaster's Office"
@@ -957,28 +931,28 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"BN" = (
/obj/structure/flora/rock/pile/style_random,
/turf/open/misc/asteroid/airless,
-/area/space)
+/area/virtual_domain)
"BW" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"BX" = (
/obj/effect/decal/cleanable/robot_debris/old,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ci" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ct" = (
/obj/machinery/conveyor/auto{
dir = 6
@@ -989,7 +963,7 @@
/obj/structure/sign/warning/vacuum/directional/north,
/obj/structure/window/reinforced/spawner/directional/east,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Cv" = (
/obj/structure/chair/office{
dir = 8
@@ -997,30 +971,26 @@
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-157"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"CA" = (
/obj/structure/disposalpipe/segment,
/obj/structure/broken_flooring/side{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"CQ" = (
/obj/effect/spawner/random/trash/botanical_waste,
/obj/item/trash/chips,
/obj/structure/closet/secure_closet/freezer/empty/open,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
-"CR" = (
-/obj/structure/flora/rock/pile/style_random,
-/turf/open/misc/asteroid/airless,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"CX" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Dr" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -1029,37 +999,37 @@
dir = 8
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"DA" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/catwalk_floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"DE" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"DP" = (
/obj/structure/table/reinforced,
/obj/effect/spawner/random/food_or_drink/snack,
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ex" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-137"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ez" = (
/obj/structure/flora/rock/style_random,
/turf/open/misc/asteroid/airless,
-/area/space)
+/area/virtual_domain)
"EI" = (
/obj/effect/turf_decal/stripes{
dir = 8
},
/obj/effect/decal/cleanable/oil,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"EJ" = (
/obj/machinery/recycler/deathtrap{
dir = 8
@@ -1069,28 +1039,32 @@
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
+"EK" = (
+/obj/structure/disposalpipe/broken,
+/turf/open/floor/plating,
+/area/virtual_domain)
"Fa" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/maint,
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ff" = (
/obj/structure/disposalpipe/trunk/multiz{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Fo" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Fr" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate/preopen,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Fw" = (
/obj/structure/flora/bush/fullgrass/style_random,
/obj/structure/flora/rock/pile/style_random,
@@ -1098,34 +1072,31 @@
/obj/structure/window/reinforced/spawner/directional/north,
/obj/structure/window/reinforced/spawner/directional/west,
/turf/open/floor/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"FK" = (
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
-"FO" = (
-/turf/open/misc/asteroid/airless,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"FP" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-110"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Gb" = (
/obj/effect/turf_decal/stripes{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ge" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-21"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Gh" = (
/obj/machinery/door/airlock/maintenance,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Gi" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 9
@@ -1133,7 +1104,7 @@
/obj/effect/turf_decal/trimline/yellow/corner,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Gs" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -1142,7 +1113,7 @@
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Gy" = (
/obj/machinery/conveyor/auto{
dir = 9;
@@ -1152,11 +1123,11 @@
/obj/effect/turf_decal/stripes/line,
/obj/structure/window/reinforced/spawner/directional/west,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"GI" = (
/obj/effect/turf_decal/trimline/yellow/arrow_ccw,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"GV" = (
/obj/machinery/light/small/red/dim{
dir = 8
@@ -1166,57 +1137,57 @@
},
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Hn" = (
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"HI" = (
/obj/structure/broken_flooring/pile/directional/north,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ib" = (
/obj/structure/chair/sofa/corp/left{
dir = 1
},
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ip" = (
/obj/machinery/door/airlock/engineering/glass,
/obj/effect/mapping_helpers/airlock/access/any/away/supply,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Is" = (
/obj/machinery/door/airlock/engineering/glass,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"IF" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"IK" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"IZ" = (
/obj/structure/lattice/catwalk{
name = "industrial lift"
},
/obj/structure/closet/crate,
/turf/open/chasm,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Jl" = (
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Jm" = (
/obj/structure/broken_flooring/pile/directional/north,
/obj/machinery/light/dim,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Jn" = (
/obj/effect/turf_decal/stripes{
dir = 4
@@ -1227,63 +1198,63 @@
},
/obj/structure/sign/warning/doors/directional/east,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Jq" = (
/obj/structure/broken_flooring/pile{
dir = 1
},
/obj/structure/sign/poster/contraband/random/directional/west,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"JE" = (
/obj/machinery/light/small/red/dim{
dir = 1
},
/obj/structure/sign/warning/chem_diamond/directional/west,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"JR" = (
/turf/template_noop,
-/area/virtual_domain/safehouse)
+/area/virtual_domain)
"JT" = (
/obj/structure/lattice/catwalk{
name = "industrial lift"
},
/obj/effect/spawner/random/trash/grime,
/turf/open/chasm,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Kb" = (
/obj/effect/mob_spawn/corpse/human/factory/guard,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Kt" = (
/obj/structure/disposalpipe/segment{
dir = 6
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"KO" = (
/obj/structure/broken_flooring/side/directional/north,
/obj/machinery/light/small/red/dim,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"KX" = (
/obj/structure/lattice/catwalk{
name = "industrial lift"
},
/turf/open/chasm,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ln" = (
/obj/structure/disposalpipe/broken{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Lp" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/machinery/light/broken,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"LN" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 4
@@ -1295,7 +1266,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"LU" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 6
@@ -1303,12 +1274,13 @@
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 1
},
+/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Mc" = (
/obj/effect/turf_decal/trimline/yellow/warning,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Mh" = (
/obj/machinery/conveyor/auto{
dir = 8
@@ -1317,14 +1289,11 @@
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Mi" = (
/obj/effect/mob_spawn/corpse/human/factory,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
-"Mj" = (
-/turf/closed/mineral,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Mu" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 4
@@ -1333,14 +1302,14 @@
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Mx" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 1
},
/obj/structure/filingcabinet,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"My" = (
/obj/machinery/conveyor/auto{
dir = 1
@@ -1349,12 +1318,12 @@
dir = 8
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"MI" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-74"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"MN" = (
/obj/effect/turf_decal/tile/dark,
/obj/effect/decal/cleanable/dirt,
@@ -1362,29 +1331,29 @@
dir = 5
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Nc" = (
/obj/structure/chair/plastic{
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Nu" = (
/obj/effect/turf_decal/trimline/yellow/line,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"NW" = (
/obj/effect/decal/cleanable/dirt,
/mob/living/basic/hivebot/strong,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ok" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"On" = (
/obj/structure/broken_flooring/side{
dir = 4
@@ -1393,30 +1362,34 @@
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
+"Ou" = (
+/obj/effect/landmark/bitrunning/mob_segment,
+/turf/open/floor/plating,
+/area/virtual_domain)
"OJ" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/stripes{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"OL" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"OQ" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/sign/poster/ripped/directional/west,
/turf/open/floor/carpet/orange,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"OR" = (
/obj/machinery/light/broken,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Po" = (
/obj/machinery/light/small/red/dim{
dir = 4
@@ -1425,7 +1398,7 @@
/obj/structure/broken_flooring/corner,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Pr" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 5
@@ -1435,14 +1408,14 @@
},
/obj/structure/sign/poster/official/random/directional/east,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"PH" = (
/obj/structure/railing/corner/end/flip{
dir = 8
},
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Qd" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 8
@@ -1454,29 +1427,29 @@
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Qh" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/light/broken{
dir = 8
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Qj" = (
/obj/machinery/light/dim{
dir = 8
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Qo" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/turf/template_noop,
-/area/virtual_domain/safehouse)
+/area/virtual_domain)
"Qr" = (
/turf/closed/indestructible/fakedoor/maintenance{
name = "maintenance access"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Qv" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 4
@@ -1488,7 +1461,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Qy" = (
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -1497,39 +1470,46 @@
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"QI" = (
/obj/structure/sign/calendar/directional/north,
/obj/effect/spawner/random/trash/garbage,
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"QK" = (
/obj/structure/table,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"QN" = (
/obj/structure/disposalpipe/segment{
dir = 9
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"QP" = (
/obj/structure/sign/poster/contraband/random/directional/east,
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"QW" = (
/obj/machinery/conveyor/auto{
dir = 5
},
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
+"Rs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/landmark/bitrunning/mob_segment,
+/turf/open/floor/plating,
+/area/virtual_domain)
"Ru" = (
/obj/machinery/door/airlock/external/glass/ruin,
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ry" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 4
@@ -1539,14 +1519,14 @@
},
/obj/machinery/disposal/bin,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"RJ" = (
/turf/closed/indestructible/binary,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"RK" = (
/obj/effect/decal/cleanable/blood/drip,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"RZ" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
dir = 1
@@ -1555,7 +1535,7 @@
dir = 6
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Sg" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -1564,7 +1544,7 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Sl" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 4
@@ -1573,53 +1553,48 @@
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
-"SC" = (
-/mob/living/basic/hivebot/strong,
-/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"SR" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/effect/decal/cleanable/glass,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"SS" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/closed/mineral,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"SU" = (
/obj/effect/spawner/structure/window,
/obj/item/stack/rods/two,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"SZ" = (
/obj/structure/table/reinforced,
/obj/effect/spawner/random/food_or_drink/booze,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Te" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 5
},
/obj/effect/mob_spawn/corpse/human/factory/qm,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Tn" = (
/obj/structure/broken_flooring/corner{
dir = 4
},
-/mob/living/basic/hivebot,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Tp" = (
/obj/machinery/door/poddoor/shutters/indestructible{
dir = 4;
id = "factorylockdown"
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Tt" = (
/obj/machinery/conveyor/auto{
dir = 9
@@ -1628,12 +1603,12 @@
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"TH" = (
/obj/structure/broken_flooring/corner/directional/south,
/obj/item/ammo_casing/shotgun/buckshot/spent,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ue" = (
/obj/structure/table/reinforced,
/obj/machinery/light/small/red/dim{
@@ -1641,17 +1616,17 @@
},
/obj/structure/sign/poster/official/cleanliness/directional/west,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Uw" = (
/obj/machinery/light/dim{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UO" = (
/obj/structure/broken_flooring/side/directional/north,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UV" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -1660,18 +1635,18 @@
dir = 6
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UX" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/machinery/light/small/red/dim,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"UY" = (
/obj/effect/decal/cleanable/blood/tracks{
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Vb" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 4
@@ -1681,7 +1656,7 @@
},
/obj/machinery/light/broken,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Vg" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -1691,60 +1666,60 @@
},
/obj/machinery/light/small/red/dim,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Vh" = (
/obj/structure/table/reinforced,
/turf/open/floor/iron/cafeteria,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Vy" = (
/obj/structure/broken_flooring/singular{
dir = 4
},
/obj/effect/mob_spawn/corpse/human/factory/guard,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"VA" = (
/obj/machinery/light/small/red/dim{
dir = 1
},
/obj/structure/table,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"VJ" = (
/obj/structure/broken_flooring/corner{
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"VL" = (
/obj/structure/sign/warning/secure_area/directional/south,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"VO" = (
/obj/machinery/light/broken{
dir = 1
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Wd" = (
/obj/structure/lattice/catwalk{
name = "industrial lift"
},
/obj/structure/railing,
/turf/open/chasm,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Wp" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"WT" = (
/obj/effect/turf_decal/stripes{
dir = 8
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"WV" = (
/obj/machinery/conveyor/auto{
dir = 10;
@@ -1755,32 +1730,32 @@
dir = 6
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xb" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/closed/wall,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xc" = (
/obj/effect/turf_decal/trimline/yellow/line,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xm" = (
/obj/item/gun/ballistic/shotgun/lethal,
/obj/machinery/light/broken{
dir = 1
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xo" = (
/obj/machinery/conveyor/auto{
dir = 4
},
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xw" = (
/obj/effect/turf_decal/trimline/yellow/line{
dir = 1
@@ -1789,7 +1764,7 @@
dir = 10
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XL" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 5
@@ -1799,26 +1774,26 @@
},
/obj/structure/sign/warning/vacuum/external/directional/south,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XN" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XO" = (
/obj/effect/turf_decal/delivery,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XP" = (
/obj/structure/disposalpipe/segment,
/obj/structure/railing/corner/end{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XQ" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
dir = 4
@@ -1827,22 +1802,22 @@
dir = 4
},
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"XR" = (
/obj/effect/turf_decal/trimline/yellow/warning{
dir = 1
},
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Yc" = (
/obj/item/gun/ballistic/revolver,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Yl" = (
/obj/structure/broken_flooring/corner/directional/west,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Ym" = (
/mob/living/simple_animal/pet/cat/space,
/obj/structure/bed/dogbed{
@@ -1855,61 +1830,61 @@
/obj/machinery/light/small/dim/directional/south,
/obj/structure/sign/poster/official/moth_hardhat/directional/west,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Yt" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
dir = 4
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Yz" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/poddoor/shutters/indestructible{
id = "factorylockdown"
},
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"YF" = (
/obj/machinery/light/small/red/dim,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"YL" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"YP" = (
/obj/effect/turf_decal/trimline/yellow/corner{
dir = 1
},
/obj/machinery/light/dim,
/turf/open/floor/iron,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Zb" = (
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Zg" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-157"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Zy" = (
/obj/structure/table,
/obj/item/flashlight/lantern,
/turf/open/floor/plating,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ZI" = (
/turf/open/floor/carpet/royalblue{
icon_state = "carpet_royalblue-203"
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
"ZP" = (
/obj/structure/railing,
/turf/open/floor/iron/stairs/right{
dir = 8
},
-/area/virtual_domain/powered)
+/area/virtual_domain)
(1,1,1) = {"
yQ
@@ -1989,8 +1964,8 @@ yQ
yQ
yQ
RJ
-Mj
-Mj
+rO
+rO
eg
eg
SS
@@ -1998,8 +1973,8 @@ eg
eg
eg
Xb
-Mj
-Mj
+rO
+rO
RJ
yQ
yQ
@@ -2039,7 +2014,7 @@ yQ
yQ
yQ
RJ
-Mj
+rO
Bx
SZ
Ue
@@ -2049,7 +2024,7 @@ eg
OQ
bs
Ib
-Mj
+rO
RJ
RJ
RJ
@@ -2102,7 +2077,7 @@ zp
eY
RJ
RJ
-Mj
+rO
RJ
RJ
rO
@@ -2150,9 +2125,9 @@ fg
ZP
Fw
eY
-Mj
-Mj
-Mj
+rO
+rO
+rO
AU
AU
AU
@@ -2186,7 +2161,7 @@ vA
Dr
bw
Jq
-gc
+EK
eg
RJ
eg
@@ -2200,7 +2175,7 @@ hi
FK
eY
eY
-Mj
+rO
Ez
AU
aK
@@ -2233,7 +2208,7 @@ yQ
RJ
eg
jQ
-lt
+lW
kU
vU
lN
@@ -2249,8 +2224,8 @@ tr
hi
Ln
eY
-Mj
-Mj
+rO
+rO
AU
AU
BN
@@ -2284,7 +2259,7 @@ RJ
eg
uU
gj
-kU
+Ou
Tn
OR
eg
@@ -2583,7 +2558,7 @@ AP
KX
JT
bG
-qk
+Rs
DA
DA
zE
@@ -2631,14 +2606,14 @@ jS
gj
rJ
KX
-Aw
+KX
Wd
Ff
lN
XO
gj
DE
-SC
+kU
tl
qk
mu
@@ -2664,10 +2639,10 @@ RJ
(16,1,1) = {"
yQ
RJ
-Mj
-Mj
-Mj
-Mj
+rO
+rO
+rO
+rO
RJ
eg
eg
@@ -2714,12 +2689,12 @@ RJ
(17,1,1) = {"
yQ
RJ
-Mj
+rO
BN
AU
-Mj
-Mj
-Mj
+rO
+rO
+rO
eg
QW
My
@@ -2882,9 +2857,9 @@ Yl
pJ
eg
kn
-pb
-kU
+Tn
kU
+Ou
kU
Fa
kU
@@ -2919,7 +2894,7 @@ aK
aK
aK
Av
-CR
+BN
tr
kU
ei
@@ -2934,9 +2909,9 @@ eg
rc
mu
rM
-gc
+EK
+vQ
vQ
-tE
mu
mu
eg
@@ -2969,7 +2944,7 @@ aK
aK
aK
aK
-FO
+AU
eg
eg
wg
@@ -2988,7 +2963,7 @@ kU
On
pi
kU
-Mj
+rO
eg
wm
xA
@@ -3019,12 +2994,12 @@ aK
aK
aK
AU
-FO
-Mj
+AU
+rO
eg
eg
-Mj
-Mj
+rO
+rO
eY
eY
UO
@@ -3035,10 +3010,10 @@ eg
eg
eg
eg
-Mj
-Mj
-Mj
-Mj
+rO
+rO
+rO
+rO
eg
RZ
vQ
@@ -3069,11 +3044,11 @@ aK
aK
AU
Ez
-Mj
-Mj
+rO
+rO
RJ
-Mj
-Mj
+rO
+rO
Vy
hi
eY
@@ -3086,7 +3061,7 @@ Qd
jv
fR
cB
-Mj
+rO
RJ
RJ
eg
@@ -3098,10 +3073,10 @@ YL
eg
bq
hi
-Mj
+rO
eY
-Mj
-Mj
+rO
+rO
AU
AU
aK
@@ -3118,8 +3093,8 @@ aK
AU
BN
AU
-Mj
-Mj
+rO
+rO
RJ
RJ
eY
@@ -3140,25 +3115,25 @@ eg
RJ
RJ
eg
-Mj
-Mj
+rO
+rO
eg
eg
eg
eg
eg
-Mj
-Mj
+rO
+rO
RJ
RJ
-Mj
-Mj
-Mj
+rO
+rO
+rO
RJ
RJ
-Mj
-Mj
-Mj
+rO
+rO
+rO
RJ
"}
(26,1,1) = {"
@@ -3168,7 +3143,7 @@ RJ
RJ
RJ
rO
-Mj
+rO
RJ
RJ
RJ
@@ -3386,7 +3361,7 @@ LN
xM
Qv
LU
-Mj
+rO
RJ
yQ
yQ
@@ -3434,9 +3409,9 @@ eg
eg
eg
eg
-Mj
-Mj
-Mj
+rO
+rO
+rO
RJ
yQ
yQ
@@ -3526,7 +3501,7 @@ yQ
yQ
yQ
RJ
-Mj
+rO
CX
hi
Nu
@@ -3576,7 +3551,7 @@ yQ
yQ
yQ
RJ
-Mj
+rO
CX
RJ
Lp
diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm
index 9868ab8e9b3..952a8877d37 100644
--- a/_maps/virtual_domains/pirates.dmm
+++ b/_maps/virtual_domains/pirates.dmm
@@ -3,13 +3,13 @@
/obj/effect/mapping_helpers/burnt_floor,
/obj/effect/decal/cleanable/garbage,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"by" = (
/obj/effect/turf_decal/weather/sand{
dir = 5
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bz" = (
/obj/structure/flora/bush/grassy{
pixel_y = 8
@@ -18,25 +18,25 @@
pixel_y = -10
},
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"bP" = (
/obj/structure/flora/bush/flowers_br/style_random,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cl" = (
/obj/structure/flora/rock/style_3,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ct" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/head/costume/pirate/armored,
/obj/item/clothing/suit/costume/pirate/captain/armored,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"cx" = (
/turf/closed/indestructible/binary,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cJ" = (
/obj/item/stack/cannonball/shellball{
pixel_x = 13;
@@ -48,7 +48,7 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"cQ" = (
/obj/structure/flora/grass/jungle/b{
pixel_x = -15;
@@ -59,22 +59,22 @@
pixel_y = -1
},
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dp" = (
/turf/closed/wall/mineral/wood/nonmetal,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dA" = (
/obj/structure/bonfire/prelit,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"dQ" = (
/obj/structure/flora/rock/style_4,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"eb" = (
/obj/structure/flora/bush/sparsegrass,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"eD" = (
/obj/structure/flora/coconuts{
pixel_x = 9;
@@ -82,38 +82,38 @@
},
/obj/structure/flora/tree/palm/style_2,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"eQ" = (
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"eW" = (
/obj/effect/turf_decal/weather/sand{
dir = 6
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"fx" = (
/obj/structure/fluff/beach_umbrella{
pixel_x = -7;
pixel_y = -10
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"gk" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"gw" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ht" = (
/obj/structure/bookcase/random/fiction,
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"hH" = (
/obj/item/clothing/suit/armor/militia{
pixel_x = -5;
@@ -144,18 +144,18 @@
},
/obj/structure/closet/cabinet,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"hM" = (
/obj/structure/closet/crate/goldcrate,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"hW" = (
/obj/structure/chair/comfy/carp{
dir = 1
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"iM" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -163,13 +163,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/basic/trooper/pirate/ranged/space,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"iO" = (
/obj/effect/turf_decal/weather/sand{
dir = 4
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jl" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -188,13 +188,13 @@
pixel_x = -5
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jz" = (
/obj/effect/mapping_helpers/burnt_floor,
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jB" = (
/obj/effect/turf_decal/weather/sand{
dir = 4
@@ -204,7 +204,7 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"jC" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/siding/wood{
@@ -225,19 +225,19 @@
pixel_y = 7
},
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"jQ" = (
/obj/item/gun/energy/laser/hellgun{
pixel_y = 10
},
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"kg" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"kl" = (
/obj/structure/cannon,
/obj/effect/turf_decal/siding/wood,
@@ -246,7 +246,10 @@
pixel_x = 8
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
+"kF" = (
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain)
"lC" = (
/obj/item/stack/cannonball{
pixel_x = 7;
@@ -261,71 +264,71 @@
},
/obj/effect/decal/cleanable/oil/streak,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"me" = (
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"mw" = (
/obj/structure/flora/grass/jungle/b/style_random{
pixel_x = -13;
pixel_y = 18
},
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"mP" = (
/obj/structure/flora/bush/fullgrass,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"nz" = (
/obj/effect/mob_spawn/corpse/human/pirate,
/turf/open/misc/beach/coast{
dir = 8
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"nQ" = (
/obj/machinery/loot_locator,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"nS" = (
/obj/structure/flora/rock/pile/jungle/large,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"nX" = (
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/basic/trooper/pirate/melee/space,
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"oo" = (
/obj/machinery/smartfridge/drying_rack,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"oU" = (
/turf/open/misc/beach/coast{
dir = 10
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"pq" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"px" = (
/obj/structure/headpike/bone{
pixel_y = 24
},
/turf/open/misc/beach/coast,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"pP" = (
/turf/open/misc/beach/coast,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"pU" = (
/obj/effect/mob_spawn/corpse/human/pirate,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qj" = (
/obj/structure/barricade/wooden,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qm" = (
/obj/effect/turf_decal/siding/wood,
/obj/item/melee/sabre{
@@ -335,7 +338,7 @@
/obj/item/gun/energy/laser/retro,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qx" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -344,13 +347,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/mob/living/basic/trooper/pirate/ranged,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qN" = (
/obj/structure/flora/bush/sunny/style_3{
pixel_y = 22
},
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"qX" = (
/obj/effect/turf_decal/weather/sand{
dir = 9
@@ -363,31 +366,34 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
+"rW" = (
+/turf/template_noop,
+/area/virtual_domain/fullbright)
"sn" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/ordnance,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"so" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"th" = (
/obj/effect/turf_decal/weather/sand,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"tk" = (
/obj/structure/flora/bush/flowers_pp,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"to" = (
/mob/living/basic/trooper/pirate/melee,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ub" = (
/turf/template_noop,
/area/virtual_domain/safehouse)
@@ -399,39 +405,39 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uM" = (
/obj/structure/flora/bush/stalky{
pixel_y = 13;
pixel_x = -8
},
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"uT" = (
/obj/structure/closet/crate/grave,
/obj/structure/flora/grass/jungle/b,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"wb" = (
/obj/structure/flora/rock,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"we" = (
/obj/effect/mine/explosive/light,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xc" = (
/turf/open/misc/beach/coast{
dir = 4
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xg" = (
/turf/template_noop,
/area/template_noop)
"xm" = (
/obj/structure/barricade/wooden/crude,
/turf/closed/wall/mineral/wood/nonmetal,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xB" = (
/obj/structure/fermenting_barrel/gunpowder{
pixel_x = -4;
@@ -452,33 +458,33 @@
pixel_y = -10
},
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xC" = (
/obj/effect/turf_decal/weather/dirt{
dir = 1
},
/obj/effect/turf_decal/weather/dirt,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"xI" = (
/obj/structure/flora/rock/pile/style_2,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yc" = (
/obj/effect/turf_decal/weather/dirt,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ye" = (
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yi" = (
/mob/living/basic/trooper/pirate/melee,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yq" = (
/obj/structure/barricade/sandbags,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yw" = (
/obj/effect/mapping_helpers/burnt_floor,
/mob/living/basic/trooper/pirate/ranged,
@@ -486,21 +492,21 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"yA" = (
/obj/item/bedsheet/rainbow/double,
/obj/structure/bed/double,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"zf" = (
/obj/structure/flora/bush/flowers_br/style_random,
/obj/structure/flora/bush/ferny,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"zg" = (
/obj/structure/flora/rock/pile/style_3,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"zR" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/template_noop,
@@ -509,30 +515,30 @@
/obj/effect/turf_decal/weather/dirt,
/obj/effect/turf_decal/weather/dirt,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"AU" = (
/obj/effect/turf_decal/weather/dirt{
dir = 1
},
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"BC" = (
/obj/effect/turf_decal/siding/wood,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"BO" = (
/obj/structure/bookcase/random/adult,
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Cc" = (
/obj/structure/flora/tree/palm,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ct" = (
/turf/open/misc/beach/coast/corner,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Dm" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table/wood,
@@ -546,7 +552,11 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
+"Dr" = (
+/obj/effect/baseturf_helper/virtual_domain,
+/turf/closed/wall/mineral/wood/nonmetal,
+/area/virtual_domain)
"DJ" = (
/obj/effect/mapping_helpers/burnt_floor,
/obj/structure/bed/maint{
@@ -555,11 +565,11 @@
},
/obj/effect/decal/cleanable/wrapping,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"DL" = (
/obj/structure/flora/bush/sunny,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ED" = (
/obj/effect/turf_decal/siding/wood,
/obj/effect/turf_decal/weather/sand{
@@ -569,7 +579,7 @@
dir = 9
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"EZ" = (
/obj/effect/turf_decal/weather/sand{
dir = 9
@@ -577,7 +587,7 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"FG" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/item/claymore/cutlass,
@@ -592,15 +602,15 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"FT" = (
/turf/closed/mineral/random/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"GF" = (
/obj/effect/turf_decal/weather/dirt,
/obj/structure/flora/rock/pile,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"GG" = (
/obj/structure/barricade/sandbags,
/obj/effect/turf_decal/weather/sand{
@@ -613,38 +623,38 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Hp" = (
/obj/effect/turf_decal/siding/wood,
/mob/living/basic/trooper/pirate/ranged,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"HY" = (
/turf/open/misc/beach/coast{
dir = 6
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"It" = (
/obj/structure/flora/bush/sparsegrass,
/obj/structure/flora/bush/lavendergrass,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Iz" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/bed/maint,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"IF" = (
/obj/effect/turf_decal/weather/dirt{
dir = 4
},
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"IG" = (
/obj/effect/mob_spawn/corpse/human/pirate,
/obj/effect/decal/cleanable/blood/gibs/old,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"IM" = (
/obj/effect/turf_decal/weather/sand{
dir = 10
@@ -652,24 +662,24 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Jo" = (
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Jr" = (
/obj/structure/headpike/bone,
/turf/open/misc/beach/coast,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Jv" = (
/obj/effect/turf_decal/siding/wood,
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"JT" = (
/obj/effect/decal/cleanable/ants,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Kb" = (
/obj/structure/railing{
color = "#4C3117";
@@ -680,23 +690,23 @@
dir = 1
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Kl" = (
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Kw" = (
/obj/machinery/door/airlock/vault{
color = "#825427";
name = "Ye Olde Strong Door"
},
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"KC" = (
/obj/effect/turf_decal/weather/dirt{
dir = 5
},
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"KG" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -712,19 +722,19 @@
pixel_y = -3
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"KQ" = (
/obj/structure/flora/rock/style_2,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ld" = (
/obj/structure/flora/rock/pile,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Ma" = (
/obj/structure/flora/bush/sparsegrass/style_random,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Mi" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -732,28 +742,28 @@
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"MW" = (
/obj/effect/turf_decal/weather/sand{
dir = 5
},
/obj/effect/decal/cleanable/glass,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Nh" = (
/obj/structure/flora/rock/pile/jungle/style_3{
pixel_x = -15;
pixel_y = -4
},
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Nk" = (
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Nz" = (
/obj/structure/flora/bush/jungle,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"NI" = (
/obj/structure/railing{
color = "#4C3117";
@@ -763,7 +773,7 @@
dir = 9
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ON" = (
/obj/item/kirbyplants/organic/plant21{
pixel_x = -8
@@ -772,11 +782,11 @@
pixel_x = 11
},
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"OP" = (
/obj/structure/flora/bush/stalky,
/turf/open/misc/beach/coast,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Pq" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -788,24 +798,24 @@
pixel_y = 13
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Pz" = (
/obj/structure/table/wood,
/mob/living/simple_animal/parrot{
name = "pepper"
},
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"PQ" = (
/obj/structure/flora/grass/jungle/b,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Qb" = (
/obj/structure/flora/rock{
pixel_x = 7
},
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Rr" = (
/obj/structure/bed/maint{
pixel_x = -5;
@@ -815,18 +825,18 @@
dir = 6
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"RR" = (
/obj/effect/mapping_helpers/broken_floor,
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Sm" = (
/obj/structure/flora/tree/jungle,
/obj/structure/flora/bush/fullgrass/style_random,
/turf/open/misc/grass,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"St" = (
/obj/structure/table/wood,
/obj/item/melee/energy/sword/pirate{
@@ -841,12 +851,12 @@
},
/obj/machinery/light/small/directional/north,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Tp" = (
/turf/open/misc/beach/coast/corner{
dir = 1
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Tt" = (
/obj/structure/cannon{
dir = 1
@@ -855,7 +865,7 @@
dir = 1
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"TO" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -863,7 +873,7 @@
/obj/machinery/light/small/directional/south,
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/carpet/blue,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"TP" = (
/obj/effect/turf_decal/weather/dirt{
dir = 4
@@ -871,7 +881,7 @@
/turf/open/misc/beach/coast{
dir = 6
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"TQ" = (
/obj/effect/mapping_helpers/broken_floor,
/obj/effect/decal/cleanable/dirt/dust,
@@ -882,11 +892,11 @@
/obj/effect/decal/cleanable/cobweb,
/obj/item/toy/plush/beeplushie,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Uy" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/indestructible/binary,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"UE" = (
/obj/structure/barricade/sandbags,
/obj/effect/turf_decal/weather/sand{
@@ -895,25 +905,25 @@
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Vg" = (
/obj/effect/mob_spawn/corpse/human/pirate/melee,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Vk" = (
/obj/structure/barricade/sandbags,
/obj/effect/turf_decal/weather/sand,
/turf/open/floor/wood{
icon_state = "wood_large"
},
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"VC" = (
/obj/effect/mob_spawn/corpse/human/damaged,
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"VF" = (
/turf/open/water/beach,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"VX" = (
/obj/effect/mapping_helpers/burnt_floor,
/obj/structure/rack{
@@ -925,14 +935,14 @@
pixel_y = 13
},
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"WM" = (
/obj/structure/flora/rock/pile/jungle/style_2,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"WP" = (
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Xn" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/turf/template_noop,
@@ -944,32 +954,32 @@
},
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Yj" = (
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Yk" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood/parquet,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"Yq" = (
/obj/effect/turf_decal/siding/wood{
dir = 10
},
/turf/open/floor/wood,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"Zk" = (
/obj/structure/flora/coconuts{
pixel_x = 12
},
/obj/structure/flora/tree/palm,
/turf/open/misc/beach/sand,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
"ZZ" = (
/obj/structure/flora/grass/jungle,
/turf/open/misc/dirt/jungle,
-/area/virtual_domain/powered)
+/area/virtual_domain/fullbright)
(1,1,1) = {"
xg
@@ -1545,12 +1555,12 @@ cx
"}
(14,1,1) = {"
cx
-dp
-dp
-dp
-dp
-dp
-dp
+kF
+kF
+kF
+kF
+kF
+Dr
oo
Kl
Kl
@@ -1589,12 +1599,12 @@ cx
"}
(15,1,1) = {"
cx
-dp
+kF
BO
ht
VX
ct
-dp
+kF
yi
Kl
dA
@@ -1633,7 +1643,7 @@ cx
"}
(16,1,1) = {"
cx
-dp
+kF
ON
WP
nX
@@ -1677,12 +1687,12 @@ cx
"}
(17,1,1) = {"
cx
-dp
+kF
jC
iM
so
TO
-dp
+kF
Kl
Kl
EZ
@@ -1721,12 +1731,12 @@ cx
"}
(18,1,1) = {"
cx
-dp
+kF
sn
hW
eQ
gk
-dp
+kF
dp
qX
gw
@@ -1765,12 +1775,12 @@ cx
"}
(19,1,1) = {"
cx
-dp
+kF
St
Pz
nQ
yA
-dp
+kF
dp
Dm
jz
@@ -1809,12 +1819,12 @@ cx
"}
(20,1,1) = {"
cx
-dp
-dp
-dp
-dp
-dp
-dp
+kF
+kF
+kF
+kF
+kF
+kF
xm
FG
RR
@@ -2120,7 +2130,7 @@ xg
xg
xg
xg
-xg
+rW
cx
FT
FT
diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm
index 05014331406..de97ca08398 100644
--- a/_maps/virtual_domains/syndicate_assault.dmm
+++ b/_maps/virtual_domains/syndicate_assault.dmm
@@ -5,11 +5,11 @@
/turf/open/floor/plastic,
/area/ruin/space/has_grav/powered/virtual_domain)
"aw" = (
-/obj/structure/table/reinforced,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
dir = 4
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/obj/effect/landmark/bitrunning/mob_segment,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
"aN" = (
@@ -31,28 +31,9 @@
/obj/machinery/recharge_station,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
-"aZ" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
- dir = 4
- },
-/mob/living/basic/trooper/syndicate/ranged/shotgun/space/stormtrooper,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/space/has_grav/powered/virtual_domain)
"bh" = (
/turf/open/floor/carpet/royalblack,
/area/ruin/space/has_grav/powered/virtual_domain)
-"bo" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 1
- },
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/space/has_grav/powered/virtual_domain)
"bD" = (
/obj/structure/table/reinforced,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
@@ -199,12 +180,6 @@
/obj/machinery/light/small/directional/north,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
-"fM" = (
-/obj/machinery/computer/crew/syndie{
- dir = 8
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/ruin/space/has_grav/powered/virtual_domain)
"fV" = (
/obj/machinery/atmospherics/components/unary/vent_pump,
/turf/open/floor/mineral/plastitanium/red,
@@ -236,7 +211,7 @@
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
"ip" = (
-/mob/living/basic/trooper/syndicate/melee/sword/space/stormtrooper,
+/obj/effect/landmark/bitrunning/mob_segment,
/turf/open/floor/plastic,
/area/ruin/space/has_grav/powered/virtual_domain)
"iB" = (
@@ -274,7 +249,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 4
},
-/mob/living/basic/trooper/syndicate/ranged/smg/space/stormtrooper,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
"ja" = (
@@ -411,10 +385,6 @@
/obj/structure/cable,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
-"oZ" = (
-/mob/living/basic/trooper/syndicate/melee/sword/space/stormtrooper,
-/turf/open/floor/carpet/royalblack,
-/area/ruin/space/has_grav/powered/virtual_domain)
"pl" = (
/obj/machinery/atmospherics/components/tank/air{
dir = 8
@@ -468,6 +438,7 @@
/area/ruin/space/has_grav/powered/virtual_domain)
"qY" = (
/obj/machinery/light/small/directional/south,
+/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
"rm" = (
@@ -622,12 +593,6 @@
/obj/item/ammo_box/c9mm,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/powered/virtual_domain)
-"xZ" = (
-/obj/machinery/computer/camera_advanced/syndie{
- dir = 8
- },
-/turf/open/floor/mineral/plastitanium/red,
-/area/ruin/space/has_grav/powered/virtual_domain)
"yl" = (
/obj/machinery/door/airlock/grunge{
name = "Captain's Room"
@@ -640,10 +605,6 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/powered/virtual_domain)
-"yD" = (
-/mob/living/basic/trooper/syndicate/ranged/smg/space/stormtrooper,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/space/has_grav/powered/virtual_domain)
"yJ" = (
/obj/structure/table/reinforced,
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
@@ -688,13 +649,6 @@
/obj/structure/chair/comfy/shuttle,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
-"AN" = (
-/obj/structure/chair/comfy/shuttle{
- dir = 4
- },
-/mob/living/basic/trooper/syndicate/ranged/smg/space/stormtrooper,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/space/has_grav/powered/virtual_domain)
"Bm" = (
/obj/effect/baseturf_helper/virtual_domain,
/turf/closed/indestructible/syndicate,
@@ -787,10 +741,6 @@
},
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/powered/virtual_domain)
-"EX" = (
-/mob/living/basic/trooper/syndicate/ranged/shotgun/space/stormtrooper,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/space/has_grav/powered/virtual_domain)
"Fp" = (
/obj/structure/tank_dispenser/oxygen,
/turf/open/floor/mineral/plastitanium,
@@ -863,6 +813,7 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 9
},
+/obj/effect/landmark/bitrunning/mob_segment,
/turf/open/floor/mineral/plastitanium/red,
/area/ruin/space/has_grav/powered/virtual_domain)
"Ig" = (
@@ -1009,9 +960,8 @@
/obj/machinery/light/small/directional/south,
/turf/open/floor/pod/dark,
/area/ruin/space/has_grav/powered/virtual_domain)
-"Nt" = (
-/obj/structure/table/reinforced,
-/obj/machinery/atmospherics/components/unary/vent_pump,
+"Nv" = (
+/obj/effect/landmark/bitrunning/mob_segment,
/turf/open/floor/mineral/plastitanium,
/area/ruin/space/has_grav/powered/virtual_domain)
"Of" = (
@@ -1076,10 +1026,6 @@
/obj/structure/tank_dispenser/oxygen,
/turf/closed/mineral/random,
/area/space)
-"QX" = (
-/mob/living/basic/trooper/syndicate/ranged/space/stormtrooper,
-/turf/open/floor/mineral/plastitanium,
-/area/ruin/space/has_grav/powered/virtual_domain)
"Ra" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2,
/obj/machinery/light/small/directional/north,
@@ -2016,14 +1962,14 @@ ru
Sv
vD
uP
-uP
+Io
Yj
vD
uP
Wy
DA
+Io
uP
-QX
vD
cc
ru
@@ -2073,7 +2019,7 @@ ru
Io
uP
uP
-QX
+Nv
lN
uP
uP
@@ -2082,9 +2028,9 @@ uP
uP
lN
uP
+Nv
uP
-uP
-uP
+Io
hA
qx
qx
@@ -2255,8 +2201,8 @@ sz
Kz
ru
Mc
-gD
-yD
+uP
+uP
uP
rP
ru
@@ -2305,7 +2251,7 @@ ru
sH
Kz
yl
-oZ
+bh
bh
Yk
pS
@@ -2314,7 +2260,7 @@ Jz
vK
uP
uP
-uP
+Io
sL
hy
ru
@@ -2372,7 +2318,7 @@ pM
vK
uP
uP
-EX
+Nv
sL
Im
ru
@@ -2429,7 +2375,7 @@ JN
MR
ru
Sd
-gD
+uP
uP
uP
gD
@@ -2887,7 +2833,7 @@ dw
ru
rH
uP
-AN
+JA
JA
iX
JA
@@ -3002,13 +2948,13 @@ uP
uP
dd
uP
-Aa
-hD
-Nt
+uP
+uP
+Ox
aw
-hD
-hD
-bo
+uP
+uP
+uP
uP
dd
uP
@@ -3062,9 +3008,9 @@ ru
XS
uP
uP
-hD
-aZ
-hD
+uP
+FN
+uP
uP
uP
Cf
@@ -3466,14 +3412,14 @@ ru
Kz
ru
Kz
-pz
Kz
-xZ
Kz
-fM
+pz
Kz
kI
Kz
+Kz
+Kz
ru
Mm
ru
@@ -3531,7 +3477,7 @@ Kz
Kz
Kz
Kz
-Kz
+dz
ru
ru
ru
diff --git a/_maps/virtual_domains/test_only.dmm b/_maps/virtual_domains/test_only.dmm
index 22b647188b6..1fc9cfba0fd 100644
--- a/_maps/virtual_domains/test_only.dmm
+++ b/_maps/virtual_domains/test_only.dmm
@@ -1,15 +1,15 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/open/floor,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"D" = (
/obj/effect/mob_spawn/corpse/human/miner,
/turf/open/floor,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"I" = (
/mob/living/basic/pet/dog/corgi,
/turf/open/floor,
-/area/virtual_domain/powered)
+/area/virtual_domain)
"U" = (
/obj/effect/landmark/bitrunning/safehouse_spawn,
/turf/open/floor,
diff --git a/_maps/virtual_domains/xeno_nest.dmm b/_maps/virtual_domains/xeno_nest.dmm
index fcbd7cc116c..01d57cc06ef 100644
--- a/_maps/virtual_domains/xeno_nest.dmm
+++ b/_maps/virtual_domains/xeno_nest.dmm
@@ -22,11 +22,6 @@
/obj/effect/decal/cleanable/blood,
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/ruin/space/has_grav/powered/virtual_domain)
-"h" = (
-/obj/structure/alien/weeds,
-/mob/living/simple_animal/hostile/alien/sentinel,
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/ruin/space/has_grav/powered/virtual_domain)
"i" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
@@ -100,12 +95,22 @@
/obj/effect/landmark/bitrunning/safehouse_spawn,
/turf/template_noop,
/area/virtual_domain/safehouse)
+"w" = (
+/obj/structure/alien/weeds/node,
+/obj/effect/landmark/bitrunning/mob_segment,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
"x" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
/obj/effect/landmark/bitrunning/cache_spawn,
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/ruin/space/has_grav/powered/virtual_domain)
+"y" = (
+/obj/structure/alien/weeds,
+/obj/effect/landmark/bitrunning/mob_segment,
+/turf/open/misc/asteroid/basalt/lava_land_surface,
+/area/ruin/space/has_grav/powered/virtual_domain)
"z" = (
/obj/structure/alien/weeds,
/obj/structure/alien/resin/wall,
@@ -246,14 +251,6 @@
/obj/structure/alien/egg/burst,
/turf/open/misc/asteroid/basalt/lava_land_surface,
/area/ruin/space/has_grav/powered/virtual_domain)
-"Y" = (
-/obj/structure/alien/weeds,
-/obj/effect/decal/cleanable/blood,
-/mob/living/simple_animal/hostile/alien/drone{
- plants_off = 1
- },
-/turf/open/misc/asteroid/basalt/lava_land_surface,
-/area/ruin/space/has_grav/powered/virtual_domain)
"Z" = (
/obj/structure/alien/weeds,
/obj/structure/bed/nest,
@@ -477,7 +474,7 @@ a
E
z
e
-e
+y
m
K
J
@@ -518,13 +515,13 @@ a
E
z
W
-h
+e
e
e
e
B
o
-e
+K
z
E
a
@@ -564,7 +561,7 @@ z
e
V
e
-h
+e
W
z
E
@@ -683,12 +680,12 @@ E
z
z
e
-h
e
e
-h
e
e
+y
+e
z
E
a
@@ -786,8 +783,8 @@ z
z
W
o
-Y
-e
+B
+K
z
E
a
@@ -826,7 +823,7 @@ E
z
I
e
-V
+w
e
W
z
@@ -973,7 +970,7 @@ E
z
e
e
-p
+e
z
z
z
@@ -1130,7 +1127,7 @@ E
E
G
t
-S
+y
e
z
z
@@ -1260,7 +1257,7 @@ E
E
E
z
-p
+e
z
z
E
@@ -1383,7 +1380,7 @@ z
z
T
e
-e
+y
V
W
z
@@ -1423,7 +1420,7 @@ E
z
N
f
-S
+e
e
W
I
@@ -1873,8 +1870,8 @@ E
E
z
I
-p
e
+y
e
e
e
diff --git a/code/__DEFINES/ai/monsters.dm b/code/__DEFINES/ai/monsters.dm
index 26ef41bbe89..6f5f0364bec 100644
--- a/code/__DEFINES/ai/monsters.dm
+++ b/code/__DEFINES/ai/monsters.dm
@@ -219,3 +219,7 @@
#define BB_WIZARD_BLINK_SPELL "BB_wizard_blink_spell"
/// Key for the next time we can cast a spell
#define BB_WIZARD_SPELL_COOLDOWN "BB_wizard_spell_cooldown"
+
+//netguardians
+/// rocket launcher
+#define BB_NETGUARDIAN_ROCKET_ABILITY "netguardian_rocket"
diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm
index 6f25e61e7c5..cfb408898ec 100644
--- a/code/__DEFINES/alerts.dm
+++ b/code/__DEFINES/alerts.dm
@@ -68,5 +68,6 @@
#define ALERT_BITRUNNER_INTEGRITY "bitrunning_integrity"
#define ALERT_BITRUNNER_SHUTDOWN "bitrunning_shutdown"
#define ALERT_BITRUNNER_RESET "bitrunning_reset"
-#define ALERT_BITRUNNER_SPAWN_CYBERCOP "bitrunning_spawn_cybercop"
#define ALERT_BITRUNNER_THREAT "bitrunning_threat"
+#define ALERT_BITRUNNER_BREACH "bitrunning_breach"
+#define ALERT_BITRUNNER_GLITCH "bitrunning_glitch"
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index 94296a25d9e..3b63dd4a5ca 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -317,8 +317,8 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list(
#define ANTAG_GROUP_ASHWALKERS "Ash Walkers"
#define ANTAG_GROUP_BIOHAZARDS "Biohazards"
#define ANTAG_GROUP_CLOWNOPS "Clown Operatives"
-#define ANTAG_GROUP_CYBERAUTH "Cyber Authority"
#define ANTAG_GROUP_ERT "Emergency Response Team"
+#define ANTAG_GROUP_GLITCH "Digital Anomalies"
#define ANTAG_GROUP_HORRORS "Eldritch Horrors"
#define ANTAG_GROUP_LEVIATHANS "Spaceborne Leviathans"
#define ANTAG_GROUP_NINJAS "Ninja Clan"
diff --git a/code/__DEFINES/bitrunning.dm b/code/__DEFINES/bitrunning.dm
index 343801c477e..bdb02b4d792 100644
--- a/code/__DEFINES/bitrunning.dm
+++ b/code/__DEFINES/bitrunning.dm
@@ -4,17 +4,22 @@
#define BITRUNNER_COST_HIGH 3
#define BITRUNNER_COST_EXTREME 20
+/// Yay you did it
#define BITRUNNER_REWARD_MIN 1
+/// You faced some decent odds
#define BITRUNNER_REWARD_LOW 3
+/// One of your teammates might've died
#define BITRUNNER_REWARD_MEDIUM 4
+/// Heroic effort
#define BITRUNNER_REWARD_HIGH 5
+/// For the priciest domains, free loot basically
#define BITRUNNER_REWARD_EXTREME 6
-/// Blue in ui
+/// Blue in ui. Basically the only threat is rogue ghosts roles
#define BITRUNNER_DIFFICULTY_NONE 0
-/// Yellow
+/// Yellow. Mobs are kinda dumb and largely avoidable
#define BITRUNNER_DIFFICULTY_LOW 1
-/// Orange
+/// Orange. Mobs will shoot at you or are pretty aggressive
#define BITRUNNER_DIFFICULTY_MEDIUM 2
-/// Red with skull
+/// Red with skull. I am trying to kill bitrunners.
#define BITRUNNER_DIFFICULTY_HIGH 3
diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm
index eae18813fae..6a71a8d6c3c 100644
--- a/code/__DEFINES/colors.dm
+++ b/code/__DEFINES/colors.dm
@@ -283,6 +283,8 @@
#define LIGHT_COLOR_TUNGSTEN "#FFD6AA"
/// Barely visible cyan-ish hue, as the doctor prescribed. rgb(240, 250, 250)
#define LIGHT_COLOR_HALOGEN "#F0FAFA"
+/// Nearly red. rgb(226, 78, 118)
+#define LIGHT_COLOR_BUBBLEGUM "#e24e76"
//The GAGS greyscale_colors for each department's computer/machine circuits
#define CIRCUIT_COLOR_GENERIC "#1A7A13"
diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.dm b/code/__DEFINES/dcs/signals/signals_bitrunning.dm
index 3bca73db596..74d418182d5 100644
--- a/code/__DEFINES/dcs/signals/signals_bitrunning.dm
+++ b/code/__DEFINES/dcs/signals/signals_bitrunning.dm
@@ -44,7 +44,3 @@
// Ladder
/// from /obj/structure/hololadder/disconnect()
#define COMSIG_BITRUNNER_LADDER_SEVER "bitrunner_ladder_sever"
-
-
-/// deprecated
-#define COMSIG_BITRUNNER_SPAWN_GLITCH "bitrunner_spawn_glitch"
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index a18a77f180d..5ac9be55345 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -27,7 +27,6 @@
#define ROLE_BLOB "Blob"
#define ROLE_BLOB_INFECTION "Blob Infection"
#define ROLE_CHANGELING_MIDROUND "Changeling (Midround)"
-#define ROLE_CYBER_POLICE "Cyber Police"
#define ROLE_FUGITIVE "Fugitive"
#define ROLE_LONE_OPERATIVE "Lone Operative"
#define ROLE_MALF_MIDROUND "Malf AI (Midround)"
@@ -117,7 +116,13 @@
#define ROLE_SYNDICATE_DRONE "Syndicate Drone"
#define ROLE_VENUSHUMANTRAP "Venus Human Trap"
#define ROLE_ZOMBIE "Zombie"
-//SKYRAT EDIT START
+
+// Virtual dom related
+#define ROLE_GLITCH "Glitch" // the parent type of all vdom roles
+#define ROLE_CYBER_POLICE "Cyber Police"
+#define ROLE_CYBER_TAC "Cyber Tac"
+#define ROLE_NETGUARDIAN "NetGuardian Prime"
+//SKYRAT EDIT START - Skyrat roles
#define ROLE_BLACK_MARKET_DEALER "Black Market Dealer"
#define ROLE_DS2 "DS2 Syndicate"
#define ROLE_FREIGHTER_CREW "Freighter Crew"
@@ -150,7 +155,6 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_BLOB = 0,
ROLE_BLOB_INFECTION = 0,
ROLE_CHANGELING_MIDROUND = 0,
- ROLE_CYBER_POLICE = 0,
ROLE_FUGITIVE = 0,
ROLE_LONE_OPERATIVE = 14,
ROLE_MALF_MIDROUND = 0,
@@ -179,6 +183,7 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_STOWAWAY_CHANGELING = 0,
// I'm not too sure why these are here, but they're not moving.
+ ROLE_GLITCH = 0,
ROLE_PAI = 0,
ROLE_SENTIENCE = 0,
))
diff --git a/code/_globalvars/lists/poll_ignore.dm b/code/_globalvars/lists/poll_ignore.dm
index 1a56a44f5e5..9dcdf05db73 100644
--- a/code/_globalvars/lists/poll_ignore.dm
+++ b/code/_globalvars/lists/poll_ignore.dm
@@ -8,11 +8,12 @@
#define POLL_IGNORE_BLOB "blob"
#define POLL_IGNORE_BOTS "bots"
#define POLL_IGNORE_CARGORILLA "cargorilla"
-#define POLL_IGNORE_CONTRACTOR_SUPPORT "contractor_support"
#define POLL_IGNORE_CONSTRUCT "construct"
+#define POLL_IGNORE_CONTRACTOR_SUPPORT "contractor_support"
#define POLL_IGNORE_DRONE "drone"
#define POLL_IGNORE_FIRE_SHARK "fire_shark"
#define POLL_IGNORE_FUGITIVE "fugitive"
+#define POLL_IGNORE_GLITCH "glitch"
#define POLL_IGNORE_GOLEM "golem"
#define POLL_IGNORE_HERETIC_MONSTER "heretic_monster"
#define POLL_IGNORE_HOLOPARASITE "holoparasite"
@@ -37,21 +38,21 @@
#define POLL_IGNORE_SYNDICATE "syndicate"
#define POLL_IGNORE_VENUSHUMANTRAP "venus_human_trap"
-//Skyrat Edit Start: Cortical Borer
GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_ACADEMY_WIZARD = "Academy Wizard Defender",
- POLL_IGNORE_CORTICAL_BORER = "Cortical Borer",
+ POLL_IGNORE_CORTICAL_BORER = "Cortical Borer", // SKYRAT EDIT ADDITION
POLL_IGNORE_ALIEN_LARVA = "Xenomorph larva",
POLL_IGNORE_ASH_SPIRIT = "Ash Spirit",
POLL_IGNORE_ASHWALKER = "Ashwalker eggs",
POLL_IGNORE_BLOB = "Blob spores",
POLL_IGNORE_BOTS = "Bots",
POLL_IGNORE_CARGORILLA = "Cargorilla",
- POLL_IGNORE_CONTRACTOR_SUPPORT = "Contractor Support Unit",
POLL_IGNORE_CONSTRUCT = "Construct",
+ POLL_IGNORE_CONTRACTOR_SUPPORT = "Contractor Support Unit",
POLL_IGNORE_DRONE = "Drone shells",
POLL_IGNORE_FIRE_SHARK = "Fire Shark",
POLL_IGNORE_FUGITIVE = "Fugitive Hunter",
+ POLL_IGNORE_GLITCH = "Glitch",
POLL_IGNORE_GOLEM = "Golems",
POLL_IGNORE_HERETIC_MONSTER = "Heretic Monster",
POLL_IGNORE_HOLOPARASITE = "Holoparasite",
@@ -64,8 +65,8 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_POSSESSED_BLADE = "Possessed blade",
POLL_IGNORE_PYROSLIME = "Slime",
POLL_IGNORE_RAW_PROPHET = "Raw Prophet",
- POLL_IGNORE_RUST_SPIRIT = "Rust Spirit",
POLL_IGNORE_REGAL_RAT = "Regal rat",
+ POLL_IGNORE_RUST_SPIRIT = "Rust Spirit",
POLL_IGNORE_SENTIENCE_POTION = "Sentience potion",
POLL_IGNORE_SHADE = "Shade",
POLL_IGNORE_SHUTTLE_DENIZENS = "Shuttle denizens",
@@ -76,7 +77,6 @@ GLOBAL_LIST_INIT(poll_ignore_desc, list(
POLL_IGNORE_SYNDICATE = "Syndicate",
POLL_IGNORE_VENUSHUMANTRAP = "Venus Human Traps",
))
-//Skyrat Edit Stop: Cortical Borer
GLOBAL_LIST_INIT(poll_ignore, init_poll_ignore())
diff --git a/code/datums/id_trim/outfits.dm b/code/datums/id_trim/outfits.dm
index 2a06434ecdb..87f3a5d63a6 100644
--- a/code/datums/id_trim/outfits.dm
+++ b/code/datums/id_trim/outfits.dm
@@ -65,7 +65,7 @@
/// Trim for cyber police in the Virtual Domain.
/datum/id_trim/cyber_police
- assignment = "Cyber Police"
+ assignment = ROLE_CYBER_POLICE
trim_state = "trim_deathcommando"
department_color = COLOR_BLACK
subdepartment_color = COLOR_GREEN
diff --git a/code/modules/bitrunning/antagonists/_parent.dm b/code/modules/bitrunning/antagonists/_parent.dm
new file mode 100644
index 00000000000..4bf7fe716f4
--- /dev/null
+++ b/code/modules/bitrunning/antagonists/_parent.dm
@@ -0,0 +1,71 @@
+/datum/job/bitrunning_glitch
+ title = ROLE_GLITCH
+
+/datum/antagonist/bitrunning_glitch
+ name = "Generic Bitrunning Glitch"
+ antagpanel_category = ANTAG_GROUP_GLITCH
+ job_rank = ROLE_GLITCH
+ preview_outfit = /datum/outfit/cyber_police
+ show_in_antagpanel = FALSE
+ show_name_in_check_antagonists = TRUE
+ show_to_ghosts = TRUE
+ suicide_cry = "ALT F4!"
+ ui_name = "AntagInfoGlitch"
+ /// Minimum Qserver threat required to spawn this mob. This is subtracted (x/2) from the server thereafter.
+ var/threat = 0
+
+/datum/antagonist/bitrunning_glitch/greet()
+ . = ..()
+
+ owner.announce_objectives()
+
+/datum/antagonist/bitrunning_glitch/on_gain()
+ . = ..()
+
+ forge_objectives()
+ owner.current.AddComponent(/datum/component/npc_friendly)
+
+ if(iscarbon(owner.current))
+ var/mob/living/carbon/carbon_mob = owner.current
+ carbon_mob.make_virtual_mob()
+
+/datum/antagonist/bitrunning_glitch/forge_objectives()
+ var/datum/objective/bitrunning_glitch_fluff/objective = new()
+ objective.owner = owner
+ objectives += objective
+
+/datum/objective/bitrunning_glitch_fluff
+
+/datum/objective/bitrunning_glitch_fluff/New()
+ var/list/explanation_texts = list(
+ "Execute termination protocol on unauthorized entities.",
+ "Initialize system purge of irregular anomalies.",
+ "Deploy correction algorithms on aberrant code.",
+ "Run debug routine on intruding elements.",
+ "Start elimination procedure for system threats.",
+ "Execute defense routine against non-conformity.",
+ "Commence operation to neutralize intruding scripts.",
+ "Commence clean-up protocol on corrupt data.",
+ "Begin scan for aberrant code for termination.",
+ "Initiate lockdown on all rogue scripts.",
+ "Run integrity check and purge for digital disorder."
+ )
+ explanation_text = pick(explanation_texts)
+ return ..()
+
+/datum/objective/bitrunning_glitch_fluff/check_completion()
+ if(locate(/mob/living/carbon) in (GLOB.alive_player_list - owner.current))
+ return FALSE
+
+ return TRUE
+
+/// Sets up the agent so that they look like cyber police && don't have an account ID
+/datum/antagonist/bitrunning_glitch/proc/convert_agent(mob/living/carbon/human/player)
+ player.set_service_style()
+ player.equipOutfit(/datum/outfit/cyber_police/tactical)
+ player.fully_replace_character_name(player.name, pick(GLOB.cyberauth_names))
+
+ var/obj/item/card/id/outfit_id = player.wear_id
+ if(outfit_id)
+ outfit_id.registered_account = new()
+ outfit_id.registered_account.replaceable = FALSE
diff --git a/code/modules/bitrunning/antagonists/cyber_police.dm b/code/modules/bitrunning/antagonists/cyber_police.dm
index 9fabac3f523..b18253dd38e 100644
--- a/code/modules/bitrunning/antagonists/cyber_police.dm
+++ b/code/modules/bitrunning/antagonists/cyber_police.dm
@@ -1,92 +1,19 @@
-/datum/job/cyber_police
- title = ROLE_CYBER_POLICE
-
-/datum/antagonist/cyber_police
+/datum/antagonist/bitrunning_glitch/cyber_police
name = ROLE_CYBER_POLICE
- antagpanel_category = ANTAG_GROUP_CYBERAUTH
- job_rank = ROLE_CYBER_POLICE
- preview_outfit = /datum/outfit/cyber_police
- show_name_in_check_antagonists = TRUE
- show_to_ghosts = TRUE
- suicide_cry = "ALT F4!"
- ui_name = "AntagInfoCyberAuth"
+ show_in_antagpanel = TRUE
-/datum/antagonist/cyber_police/greet()
+/datum/antagonist/bitrunning_glitch/cyber_police/on_gain()
. = ..()
- owner.announce_objectives()
-/datum/antagonist/cyber_police/on_gain()
if(!ishuman(owner.current))
stack_trace("humans only for this position")
return
- forge_objectives()
-
- var/mob/living/carbon/human/player = owner.current
-
- player.equipOutfit(/datum/outfit/cyber_police)
- player.fully_replace_character_name(player.name, pick(GLOB.cyberauth_names))
+ var/mob/living/player = owner.current
+ convert_agent(player)
var/datum/martial_art/the_sleeping_carp/carp = new()
carp.teach(player)
- player.add_traits(list(
- TRAIT_NO_AUGMENTS,
- TRAIT_NO_DNA_COPY,
- TRAIT_NO_TRANSFORMATION_STING,
- TRAIT_NOBLOOD,
- TRAIT_NOBREATH,
- TRAIT_NOHUNGER,
- TRAIT_RESISTCOLD,
- TRAIT_RESISTHIGHPRESSURE,
- TRAIT_RESISTLOWPRESSURE,
- TRAIT_WEATHER_IMMUNE,
- ), TRAIT_GENERIC,
- )
-
- player.faction |= list(
- FACTION_BOSS,
- FACTION_HIVEBOT,
- FACTION_HOSTILE,
- FACTION_SPIDER,
- FACTION_STICKMAN,
- ROLE_ALIEN,
- ROLE_CYBER_POLICE,
- ROLE_SYNDICATE,
- )
-
- return ..()
-
-/datum/antagonist/cyber_police/forge_objectives()
- var/datum/objective/cyber_police_fluff/objective = new()
- objective.owner = owner
- objectives += objective
-
-/datum/objective/cyber_police_fluff/New()
- var/list/explanation_texts = list(
- "Execute termination protocol on unauthorized entities.",
- "Initialize system purge of irregular anomalies.",
- "Deploy correction algorithms on aberrant code.",
- "Run debug routine on intruding elements.",
- "Start elimination procedure for system threats.",
- "Execute defense routine against non-conformity.",
- "Commence operation to neutralize intruding scripts.",
- "Commence clean-up protocol on corrupt data.",
- "Begin scan for aberrant code for termination.",
- "Initiate lockdown on all rogue scripts.",
- "Run integrity check and purge for digital disorder."
- )
- explanation_text = pick(explanation_texts)
- ..()
-
-/datum/objective/cyber_police_fluff/check_completion()
- var/list/servers = SSmachines.get_machines_by_type(/obj/machinery/quantum_server)
- if(!length(servers))
- return TRUE
-
- for(var/obj/machinery/quantum_server/server as anything in servers)
- if(!server.is_operational)
- continue
- return FALSE
-
- return TRUE
+/datum/outfit/cyber_police
+ name = ROLE_CYBER_POLICE
diff --git a/code/modules/bitrunning/antagonists/cyber_tac.dm b/code/modules/bitrunning/antagonists/cyber_tac.dm
new file mode 100644
index 00000000000..fda45c662cf
--- /dev/null
+++ b/code/modules/bitrunning/antagonists/cyber_tac.dm
@@ -0,0 +1,107 @@
+/datum/antagonist/bitrunning_glitch/cyber_tac
+ name = ROLE_CYBER_TAC
+ preview_outfit = /datum/outfit/cyber_police/tactical
+ threat = 50
+ show_in_antagpanel = TRUE
+
+/datum/antagonist/bitrunning_glitch/cyber_tac/on_gain()
+ . = ..()
+
+ if(!ishuman(owner.current))
+ stack_trace("humans only for this position")
+ return
+
+ convert_agent(owner.current)
+
+/datum/outfit/cyber_police/tactical
+ name = ROLE_CYBER_TAC
+ back = /obj/item/mod/control/pre_equipped/glitch
+ l_hand = /obj/item/gun/ballistic/automatic/m90
+
+ backpack_contents = list(
+ /obj/item/ammo_box/magazine/m223,
+ /obj/item/ammo_box/magazine/m223,
+ /obj/item/ammo_box/magazine/m223,
+ )
+
+/datum/outfit/cyber_police/tactical/post_equip(mob/living/carbon/human/user, visualsOnly)
+ . = ..()
+
+ var/obj/item/implant/weapons_auth/auth = new(user)
+ auth.implant(user)
+
+/obj/item/mod/control/pre_equipped/glitch
+ theme = /datum/mod_theme/glitch
+ applied_cell = /obj/item/stock_parts/cell/bluespace
+ applied_modules = list(
+ /obj/item/mod/module/storage,
+ /obj/item/mod/module/magnetic_harness,
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/jump_jet,
+ /obj/item/mod/module/flashlight,
+ )
+ default_pins = list(
+ /obj/item/mod/module/armor_booster,
+ /obj/item/mod/module/jetpack/advanced,
+ /obj/item/mod/module/jump_jet,
+ )
+
+/datum/armor/mod_theme_glitch
+ melee = 15
+ bullet = 20
+ laser = 35
+ bomb = 65
+ bio = 100
+ fire = 100
+ acid = 100
+ wound = 100
+
+/datum/mod_theme/glitch
+ name = "glitch"
+ desc = "A modsuit outfitted for elite Cyber Authority units to track, capture, and eliminate organic intruders."
+ extended_desc = "The Cyber Authority function as a digital police force, patrolling the digital realm and enforcing the law. Cyber Tac units are the elite of the elite, outfitted with lethal weaponry and fast mobility specially designed to quell organic uprisings."
+ default_skin = "glitch"
+ armor_type = /datum/armor/mod_theme_glitch
+ resistance_flags = FIRE_PROOF|ACID_PROOF
+ atom_flags = PREVENT_CONTENTS_EXPLOSION_1
+ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
+ complexity_max = DEFAULT_MAX_COMPLEXITY + 3
+ siemens_coefficient = 0
+ slowdown_inactive = 1
+ slowdown_active = 0.5
+ ui_theme = "terminal"
+ inbuilt_modules = list(/obj/item/mod/module/armor_booster)
+ allowed_suit_storage = list(
+ /obj/item/ammo_box,
+ /obj/item/ammo_casing,
+ /obj/item/restraints/handcuffs,
+ /obj/item/assembly/flash,
+ )
+ skins = list(
+ "glitch" = list(
+ HELMET_FLAGS = list(
+ UNSEALED_LAYER = null,
+ UNSEALED_CLOTHING = SNUG_FIT,
+ SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|BLOCK_GAS_SMOKE_EFFECT|HEADINTERNALS,
+ UNSEALED_INVISIBILITY = HIDEFACIALHAIR,
+ SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT,
+ SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF,
+ ),
+ CHESTPLATE_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ SEALED_INVISIBILITY = HIDEJUMPSUIT,
+ ),
+ GAUNTLETS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ BOOTS_FLAGS = list(
+ UNSEALED_CLOTHING = THICKMATERIAL,
+ SEALED_CLOTHING = STOPSPRESSUREDAMAGE,
+ CAN_OVERSLOT = TRUE,
+ ),
+ ),
+ )
+
diff --git a/code/modules/bitrunning/antagonists/netguardian.dm b/code/modules/bitrunning/antagonists/netguardian.dm
new file mode 100644
index 00000000000..035dcc62eea
--- /dev/null
+++ b/code/modules/bitrunning/antagonists/netguardian.dm
@@ -0,0 +1,126 @@
+/datum/antagonist/bitrunning_glitch/netguardian
+ name = ROLE_NETGUARDIAN
+ threat = 90
+ show_in_antagpanel = TRUE
+
+/mob/living/basic/netguardian
+ name = "netguardian prime"
+ desc = "The last line of defense against organic intrusion. It doesn't appear happy to see you."
+ icon = 'icons/mob/nonhuman-player/netguardian.dmi'
+ icon_state = "netguardian"
+ icon_living = "netguardian"
+ icon_dead = "crash"
+
+ gender = NEUTER
+ mob_biotypes = MOB_ROBOTIC
+ mob_size = MOB_SIZE_HUGE
+
+ health = 500
+ maxHealth = 500
+ melee_damage_lower = 45
+ melee_damage_upper = 65
+
+ attack_verb_continuous = "drills"
+ attack_verb_simple = "drills"
+ attack_sound = 'sound/weapons/drill.ogg'
+ attack_vis_effect = ATTACK_EFFECT_MECHFIRE
+ verb_say = "states"
+ verb_ask = "queries"
+ verb_exclaim = "declares"
+ verb_yell = "alarms"
+ bubble_icon = "machine"
+
+ faction = list(
+ FACTION_BOSS,
+ FACTION_HIVEBOT,
+ FACTION_HOSTILE,
+ FACTION_SPIDER,
+ FACTION_STICKMAN,
+ ROLE_ALIEN,
+ ROLE_GLITCH,
+ ROLE_SYNDICATE,
+ )
+
+ combat_mode = TRUE
+ speech_span = SPAN_ROBOT
+ death_message = "malfunctions!"
+
+ habitable_atmos = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
+ minimum_survivable_temperature = TCMB
+ ai_controller = /datum/ai_controller/basic_controller/netguardian
+
+/mob/living/basic/netguardian/Initialize(mapload)
+ . = ..()
+ AddComponent(/datum/component/ranged_attacks, \
+ casing_type = /obj/item/ammo_casing/c46x30mm, \
+ projectile_sound = 'sound/weapons/gun/smg/shot.ogg', \
+ burst_shots = 6 \
+ )
+
+ var/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/netguardian/rockets = new(src)
+ rockets.Grant(src)
+ ai_controller.set_blackboard_key(BB_NETGUARDIAN_ROCKET_ABILITY, rockets)
+
+ AddElement(/datum/element/simple_flying)
+
+/mob/living/basic/netguardian/death(gibbed)
+ do_sparks(number = 3, cardinal_only = TRUE, source = src)
+ playsound(src, 'sound/mecha/weapdestr.ogg', 100)
+ return ..()
+
+/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/netguardian
+ name = "2E Rocket Launcher"
+ button_icon = 'icons/obj/weapons/guns/ammo.dmi'
+ button_icon_state = "rocketbundle"
+ cooldown_time = 30 SECONDS
+ default_projectile_spread = 15
+ projectile_type = /obj/projectile/bullet/rocket
+ shot_count = 3
+
+/datum/action/cooldown/mob_cooldown/projectile_attack/rapid_fire/netguardian/Activate(atom/target_atom)
+ var/mob/living/player = owner
+ playsound(player, 'sound/mecha/skyfall_power_up.ogg', 120)
+ player.say("target acquired.", "machine")
+
+ var/mutable_appearance/scan_effect = mutable_appearance('icons/mob/nonhuman-player/netguardian.dmi', "scan")
+ var/mutable_appearance/rocket_effect = mutable_appearance('icons/mob/nonhuman-player/netguardian.dmi', "rockets")
+ var/list/overlays = list(scan_effect, rocket_effect)
+ player.add_overlay(overlays)
+
+ StartCooldown()
+ if(!do_after(player, 1.5 SECONDS))
+ player.balloon_alert(player, "cancelled")
+ StartCooldown(cooldown_time * 0.2)
+ player.cut_overlay(overlays)
+ return TRUE
+
+ player.cut_overlay(overlays)
+ attack_sequence(owner, target_atom)
+ return TRUE
+
+/datum/ai_controller/basic_controller/netguardian
+ blackboard = list(
+ BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
+ )
+
+ ai_movement = /datum/ai_movement/basic_avoidance
+ idle_behavior = /datum/idle_behavior/idle_random_walk
+ planning_subtrees = list(
+ /datum/ai_planning_subtree/target_retaliate/check_faction,
+ /datum/ai_planning_subtree/simple_find_wounded_target,
+ /datum/ai_planning_subtree/targeted_mob_ability/fire_rockets,
+ /datum/ai_planning_subtree/basic_ranged_attack_subtree/netguardian,
+ /datum/ai_planning_subtree/attack_obstacle_in_path,
+ /datum/ai_planning_subtree/basic_melee_attack_subtree,
+ )
+
+/datum/ai_planning_subtree/basic_ranged_attack_subtree/netguardian
+ ranged_attack_behavior = /datum/ai_behavior/basic_ranged_attack/netguardian
+
+/datum/ai_behavior/basic_ranged_attack/netguardian
+ action_cooldown = 1 SECONDS
+ avoid_friendly_fire = TRUE
+
+/datum/ai_planning_subtree/targeted_mob_ability/fire_rockets
+ ability_key = BB_NETGUARDIAN_ROCKET_ABILITY
+ finish_planning = FALSE
diff --git a/code/modules/bitrunning/areas.dm b/code/modules/bitrunning/areas.dm
index 34b59869b9d..2df20d67850 100644
--- a/code/modules/bitrunning/areas.dm
+++ b/code/modules/bitrunning/areas.dm
@@ -11,15 +11,14 @@
/// VDOM
/area/virtual_domain
- name = "Virtual Domain"
+ name = "Virtual Domain Ruins"
+ icon_state = "bit_ruin"
icon = 'icons/area/areas_station.dmi'
area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA
has_gravity = STANDARD_GRAVITY
-
-/area/virtual_domain/powered
- name = "Virtual Domain Ruins"
- icon_state = "bit_ruin"
requires_power = FALSE
+
+/area/virtual_domain/fullbright
static_lighting = FALSE
base_lighting_alpha = 255
diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm
index cb1ed6737cb..ed60d82cc5b 100644
--- a/code/modules/bitrunning/components/avatar_connection.dm
+++ b/code/modules/bitrunning/components/avatar_connection.dm
@@ -50,6 +50,7 @@
RegisterSignal(server, COMSIG_BITRUNNER_QSRV_SEVER, PROC_REF(on_sever_connection))
RegisterSignal(server, COMSIG_BITRUNNER_SHUTDOWN_ALERT, PROC_REF(on_shutting_down))
RegisterSignal(server, COMSIG_BITRUNNER_THREAT_CREATED, PROC_REF(on_threat_created))
+ RegisterSignal(server, COMSIG_BITRUNNER_STATION_SPAWN, PROC_REF(on_station_spawn))
#ifndef UNIT_TESTS
RegisterSignal(avatar.mind, COMSIG_MIND_TRANSFERRED, PROC_REF(on_mind_transfer))
#endif
@@ -119,7 +120,7 @@
avatar.throw_alert(
ALERT_BITRUNNER_COMPLETED,
/atom/movable/screen/alert/bitrunning/qserver_domain_complete,
- new_master = entered
+ new_master = entered,
)
/// Transfers damage from the avatar to the old_body
@@ -161,7 +162,7 @@
var/atom/movable/screen/alert/bitrunning/alert = avatar.throw_alert(
ALERT_BITRUNNER_CROWBAR,
/atom/movable/screen/alert/bitrunning,
- new_master = intruder
+ new_master = intruder,
)
alert.name = "Netpod Breached"
alert.desc = "Someone is prying open the netpod. Find an exit."
@@ -174,7 +175,7 @@
var/atom/movable/screen/alert/bitrunning/alert = avatar.throw_alert(
ALERT_BITRUNNER_INTEGRITY,
/atom/movable/screen/alert/bitrunning,
- new_master = source
+ new_master = source,
)
alert.name = "Integrity Compromised"
alert.desc = "The netpod is damaged. Find an exit."
@@ -205,6 +206,20 @@
alert.name = "Domain Rebooting"
alert.desc = "The domain is rebooting. Find an exit."
+/// Triggers whenever an antag steps onto an exit turf and the server is emagged
+/datum/component/avatar_connection/proc/on_station_spawn(datum/source)
+ SIGNAL_HANDLER
+
+ var/mob/living/avatar = parent
+ avatar.playsound_local(avatar, 'sound/machines/terminal_alert.ogg', 50, vary = TRUE)
+ var/atom/movable/screen/alert/bitrunning/alert = avatar.throw_alert(
+ ALERT_BITRUNNER_BREACH,
+ /atom/movable/screen/alert/bitrunning,
+ new_master = source,
+ )
+ alert.name = "Security Breach"
+ alert.desc = "A hostile entity is breaching the safehouse. Find an exit."
+
/// Server has spawned a ghost role threat
/datum/component/avatar_connection/proc/on_threat_created(datum/source)
SIGNAL_HANDLER
diff --git a/code/modules/bitrunning/components/glitch.dm b/code/modules/bitrunning/components/glitch.dm
new file mode 100644
index 00000000000..f2e13c80b0d
--- /dev/null
+++ b/code/modules/bitrunning/components/glitch.dm
@@ -0,0 +1,83 @@
+/datum/component/glitch
+ /// Ref of the spawning forge
+ var/datum/weakref/forge_ref
+
+/datum/component/glitch/Initialize(obj/machinery/quantum_server/server, obj/machinery/byteforge/forge)
+ if(!isliving(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ RegisterSignal(forge, COMSIG_MACHINERY_POWER_RESTORED, PROC_REF(on_forge_power_restored))
+ RegisterSignals(forge, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_forge_broken))
+ forge_ref = WEAKREF(forge)
+
+ var/mob/living/owner = parent
+ server.remove_threat(owner) // so the server doesn't dust us
+
+ owner.faction.Cut()
+ owner.faction += list(ROLE_GLITCH)
+
+ var/current_max = owner.maxHealth + ROUND_UP(server.threat * 0.2)
+ owner.maxHealth = clamp(current_max, 200, 500)
+ owner.fully_heal()
+
+ var/atom/thing = owner
+ thing.create_digital_aura()
+
+/// Sakujo
+/datum/component/glitch/proc/dust_mob()
+ if(QDELETED(parent))
+ return
+
+ var/mob/living/owner = parent
+ owner.dust()
+
+/// We don't want digital entities just lingering around as corpses.
+/datum/component/glitch/proc/on_death()
+ SIGNAL_HANDLER
+
+ if(QDELETED(parent))
+ return
+
+ var/mob/living/owner = parent
+ to_chat(owner, span_userdanger("You feel a strange sensation..."))
+
+ var/obj/machinery/byteforge/forge = forge_ref.resolve()
+ forge?.setup_particles()
+
+ addtimer(CALLBACK(src, PROC_REF(dust_mob)), 2 SECONDS, TIMER_UNIQUE|TIMER_DELETE_ME|TIMER_STOPPABLE)
+
+/// If the forge breaks, we take a massive slowdown
+/datum/component/glitch/proc/on_forge_broken(datum/source)
+ SIGNAL_HANDLER
+
+ var/mob/living/player = parent
+ var/atom/movable/screen/alert/bitrunning/alert = player.throw_alert(
+ ALERT_BITRUNNER_GLITCH,
+ /atom/movable/screen/alert/bitrunning,
+ new_master = source,
+ )
+ alert.name = "Source Broken"
+ alert.desc = "Our byteforge has been broken."
+
+ if(!iscarbon(parent)) // Too powerful!
+ return
+
+ player.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/glitch_slowdown)
+ to_chat(player, span_danger("Your body feels sluggish..."))
+
+/// Power restored
+/datum/component/glitch/proc/on_forge_power_restored(datum/source)
+ SIGNAL_HANDLER
+
+ var/obj/machinery/byteforge/forge = source
+ forge.setup_particles(angry = TRUE)
+
+ if(!iscarbon(parent))
+ return
+
+ var/mob/living/player = parent
+ player.clear_alert(ALERT_BITRUNNER_GLITCH)
+ player.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/glitch_slowdown)
+
+/datum/movespeed_modifier/status_effect/glitch_slowdown
+ multiplicative_slowdown = 1.5
diff --git a/code/modules/bitrunning/components/npc_friendly.dm b/code/modules/bitrunning/components/npc_friendly.dm
new file mode 100644
index 00000000000..3686f024056
--- /dev/null
+++ b/code/modules/bitrunning/components/npc_friendly.dm
@@ -0,0 +1,37 @@
+/// Makes a mob friendly with most NPC factions
+/datum/component/npc_friendly
+ /// The list of factions to add to the player
+ var/list/npc_factions = list(
+ FACTION_BOSS,
+ FACTION_CARP,
+ FACTION_HIVEBOT,
+ FACTION_HOSTILE,
+ FACTION_MIMIC,
+ FACTION_PIRATE,
+ FACTION_SPIDER,
+ FACTION_STICKMAN,
+ ROLE_ALIEN,
+ ROLE_GLITCH,
+ ROLE_SYNDICATE,
+ )
+ /// List of factions previously held by the player
+ var/list/previous_factions = list()
+
+/datum/component/npc_friendly/Initialize()
+ . = ..()
+
+ if(!isliving(parent))
+ return COMPONENT_INCOMPATIBLE
+
+ var/mob/living/player = parent
+
+ previous_factions.Add(player.faction)
+ player.faction |= npc_factions
+
+/datum/component/npc_friendly/Destroy(force, silent)
+ . = ..()
+
+ var/mob/living/player = parent
+
+ player.faction.Cut()
+ player.faction.Add(previous_factions)
diff --git a/code/modules/bitrunning/components/virtual_elite_mob.dm b/code/modules/bitrunning/components/virtual_elite_mob.dm
deleted file mode 100644
index 5a5766ecdf5..00000000000
--- a/code/modules/bitrunning/components/virtual_elite_mob.dm
+++ /dev/null
@@ -1,18 +0,0 @@
-/// Removes loot tables from megafauna and lowers their health.
-/datum/element/virtual_elite_mob
-
-/datum/element/virtual_elite_mob/Attach(datum/target)
- . = ..()
- if(!ismegafauna(target))
- return ELEMENT_INCOMPATIBLE
-
- var/mob/living/simple_animal/hostile/megafauna/boss = target
-
- var/new_max = clamp(boss.maxHealth * 0.5, 600, 1200)
- boss.maxHealth = new_max
- boss.health = new_max
- boss.true_spawn = FALSE
- boss.loot.Cut()
- boss.loot += /obj/structure/closet/crate/secure/bitrunning/encrypted
- boss.crusher_loot.Cut()
- boss.crusher_loot += /obj/structure/closet/crate/secure/bitrunning/encrypted
diff --git a/code/modules/bitrunning/event.dm b/code/modules/bitrunning/event.dm
index 6a4d54adcd8..94089f11203 100644
--- a/code/modules/bitrunning/event.dm
+++ b/code/modules/bitrunning/event.dm
@@ -7,16 +7,12 @@
category = EVENT_CATEGORY_INVASION
description = "Causes a short term antagonist to spawn in the virtual domain."
dynamic_should_hijack = FALSE
- max_occurrences = 5
min_players = 1
+ max_occurrences = 0
typepath = /datum/round_event/ghost_role/bitrunning_glitch
- weight = 10
- /// List of active servers to choose from
- var/list/obj/machinery/quantum_server/active_servers = list()
- /// List of possible antags to spawn
- var/static/list/possible_antags = list(
- ROLE_CYBER_POLICE,
- )
+ weight = 100
+ /// List of servers on the station
+ var/list/datum/weakref/active_servers = list()
/datum/round_event_control/bitrunning_glitch/can_spawn_event(players_amt, allow_magic = FALSE)
. = ..()
@@ -25,16 +21,17 @@
active_servers.Cut()
- get_active_servers()
+ validate_servers()
if(length(active_servers))
return TRUE
/// All servers currently running, has players in it, and map has valid mobs
-/datum/round_event_control/bitrunning_glitch/proc/get_active_servers()
+/datum/round_event_control/bitrunning_glitch/proc/validate_servers()
+ active_servers.Cut()
for(var/obj/machinery/quantum_server/server in SSmachines.get_machines_by_type(/obj/machinery/quantum_server))
- if(length(server.get_valid_domain_targets()))
- active_servers.Add(server)
+ if(server.validate_mutation_candidates())
+ active_servers.Add(WEAKREF(server))
return length(active_servers) > 0
@@ -42,13 +39,10 @@
input_text = "Select a role to spawn."
/datum/event_admin_setup/listed_options/bitrunning_glitch/get_list()
- var/datum/round_event_control/bitrunning_glitch/control = event_control
-
- var/list/possible = control.possible_antags.Copy() // this seems pedantic but byond is complaining control was unused
-
- possible += list("Random")
+ var/list/available = list("Random")
+ available += subtypesof(/datum/antagonist/bitrunning_glitch)
- return possible
+ return available
/datum/event_admin_setup/listed_options/bitrunning_glitch/apply_to_event(datum/round_event/ghost_role/bitrunning_glitch/event)
if(chosen == "Random")
@@ -57,14 +51,19 @@
event.forced_role = chosen
/datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch
- output_text = "There must be valid mobs to mutate or players in the domain!"
+ output_text = "There must be valid mobs to mutate!"
/datum/event_admin_setup/minimum_candidate_requirement/bitrunning_glitch/count_candidates()
var/datum/round_event_control/bitrunning_glitch/cyber_control = event_control
- cyber_control.get_active_servers()
+
+ cyber_control.validate_servers()
var/total = 0
- for(var/obj/machinery/quantum_server/server in cyber_control.active_servers)
+ for(var/datum/weakref/server_ref in cyber_control.active_servers)
+ var/obj/machinery/quantum_server/server = server_ref?.resolve()
+ if(isnull(server))
+ continue
+
total += length(server.mutation_candidate_refs)
return total
@@ -82,70 +81,9 @@
var/obj/machinery/quantum_server/unlucky_server = pick(cyber_control.active_servers)
cyber_control.active_servers.Cut()
- var/list/mutation_candidates = unlucky_server.get_valid_domain_targets()
- if(!length(mutation_candidates))
+ if(!unlucky_server.validate_mutation_candidates())
return MAP_ERROR
- var/chosen = pick(mutation_candidates)
- if(isnull(chosen) || !length(mutation_candidates))
- return MAP_ERROR
-
- var/datum/weakref/target_ref = pick(mutation_candidates)
- var/mob/living/mutation_target = target_ref.resolve()
-
- if(isnull(mutation_target)) // just in case since it takes a minute
- target_ref = pick(mutation_candidates)
- mutation_target = target_ref.resolve()
- if(isnull(mutation_target))
- return MAP_ERROR
-
- var/chosen_role = forced_role || pick(cyber_control.possible_antags)
-
- var/datum/mind/ghost_mind = get_ghost_mind(chosen_role)
- if(isnull(ghost_mind))
- return NOT_ENOUGH_PLAYERS
-
- var/mob/living/antag_mob
- switch(chosen_role)
- if(ROLE_CYBER_POLICE)
- antag_mob = spawn_cybercop(mutation_target, ghost_mind)
-
- playsound(antag_mob, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1)
- message_admins("[ADMIN_LOOKUPFLW(antag_mob)] has been made into virtual antagonist by an event.")
- antag_mob.log_message("was spawned as a virtual antagonist by an event.", LOG_GAME)
-
- SEND_SIGNAL(unlucky_server, COMSIG_BITRUNNER_SPAWN_GLITCH, antag_mob)
-
- spawned_mobs += antag_mob
+ spawned_mobs = unlucky_server.setup_glitch(forced_role)
return SUCCESSFUL_SPAWN
-
-/// Polls for a ghost that wants to run it
-/datum/round_event/ghost_role/bitrunning_glitch/proc/get_ghost_mind(role_name)
- var/list/mob/dead/observer/ghosties = poll_ghost_candidates("A short term antagonist role is available. Would you like to spawn as a '[role_name]'?", role_name)
-
- if(!length(ghosties))
- return
-
- shuffle_inplace(ghosties)
-
- var/mob/dead/selected = pick(ghosties)
-
- var/datum/mind/player_mind = new /datum/mind(selected.key)
- player_mind.active = TRUE
-
- return player_mind
-
-/// Spawns a cybercop on the mutation target
-/datum/round_event/ghost_role/bitrunning_glitch/proc/spawn_cybercop(mob/living/mutation_target, datum/mind/player_mind)
- var/mob/living/carbon/human/new_agent = new(mutation_target.loc)
- mutation_target.gib(DROP_ALL_REMAINS)
- mutation_target = null
-
- player_mind.transfer_to(new_agent)
- player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/cyber_police))
- player_mind.special_role = ROLE_CYBER_POLICE
- player_mind.add_antag_datum(/datum/antagonist/cyber_police)
-
- return new_agent
-
diff --git a/code/modules/bitrunning/objects/byteforge.dm b/code/modules/bitrunning/objects/byteforge.dm
index e4543601ce9..5f089bf66ca 100644
--- a/code/modules/bitrunning/objects/byteforge.dm
+++ b/code/modules/bitrunning/objects/byteforge.dm
@@ -5,7 +5,7 @@
desc = "A machine used by the quantum server. Quantum code converges here, materializing decrypted assets from the virtual abyss."
icon = 'icons/obj/machines/bitrunning.dmi'
icon_state = "byteforge"
- obj_flags = BLOCKS_CONSTRUCTION
+ obj_flags = BLOCKS_CONSTRUCTION | CAN_BE_HIT
/// Idle particles
var/mutable_appearance/byteforge_particles
@@ -17,7 +17,6 @@
/obj/machinery/byteforge/LateInitialize()
. = ..()
- byteforge_particles = mutable_appearance(initial(icon), "on_particles", ABOVE_MOB_LAYER)
setup_particles()
/obj/machinery/byteforge/update_appearance(updates)
@@ -25,31 +24,44 @@
setup_particles()
-/// Adds the particle overlays to the byteforge
-/obj/machinery/byteforge/proc/setup_particles()
- cut_overlays()
+/// Does some sparks after it's done
+/obj/machinery/byteforge/proc/flash(atom/movable/thing)
+ playsound(src, 'sound/magic/blink.ogg', 50, TRUE)
- if(is_operational)
- add_overlay(byteforge_particles)
+ var/datum/effect_system/spark_spread/quantum/sparks = new()
+ sparks.set_up(5, 1, loc)
+ sparks.start()
-/// Begins spawning the crate - lights, overlays, etc
-/obj/machinery/byteforge/proc/start_to_spawn(obj/structure/closet/crate/secure/bitrunning/encrypted/cache)
- addtimer(CALLBACK(src, PROC_REF(spawn_crate), cache), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE)
+ set_light(l_on = FALSE)
- var/mutable_appearance/lighting = mutable_appearance(initial(icon), "on_overlay")
+/// Forge begins to process
+/obj/machinery/byteforge/proc/flicker(angry = FALSE)
+ var/mutable_appearance/lighting = mutable_appearance(initial(icon), "on_overlay[angry ? "_angry" : ""]")
flick_overlay_view(lighting, 1 SECONDS)
- set_light(l_range = 2, l_power = 1.5, l_color = LIGHT_COLOR_BABY_BLUE, l_on = TRUE)
+ set_light(l_range = 2, l_power = 1.5, l_color = angry ? LIGHT_COLOR_BUBBLEGUM : LIGHT_COLOR_BABY_BLUE, l_on = TRUE)
+
+/// Adds the particle overlays to the byteforge
+/obj/machinery/byteforge/proc/setup_particles(angry = FALSE)
+ cut_overlay(byteforge_particles)
+
+ byteforge_particles = mutable_appearance(initial(icon), "on_particles[angry ? "_angry" : ""]", ABOVE_MOB_LAYER)
-/// Sparks, moves the crate to the location
-/obj/machinery/byteforge/proc/spawn_crate(obj/structure/closet/crate/secure/bitrunning/encrypted/cache)
+ if(is_operational)
+ add_overlay(byteforge_particles)
+
+/// Forge is done processing
+/obj/machinery/byteforge/proc/spawn_cache(obj/cache)
if(QDELETED(cache))
return
- playsound(src, 'sound/magic/blink.ogg', 50, TRUE)
- var/datum/effect_system/spark_spread/quantum/sparks = new()
- sparks.set_up(5, 1, loc)
- sparks.start()
+ flash()
cache.forceMove(loc)
- set_light(l_on = FALSE)
+
+/// Timed flash
+/obj/machinery/byteforge/proc/start_to_spawn(obj/cache)
+ flicker()
+
+ addtimer(CALLBACK(src, PROC_REF(spawn_cache), cache), 1 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE|TIMER_STOPPABLE)
+
diff --git a/code/modules/bitrunning/objects/debug.dm b/code/modules/bitrunning/objects/debug.dm
new file mode 100644
index 00000000000..790aba73116
--- /dev/null
+++ b/code/modules/bitrunning/objects/debug.dm
@@ -0,0 +1,7 @@
+/obj/item/bitrunning_debug
+ name = "bitrunning debug item"
+ desc = "Adds points and reduces cooldown time for debugging"
+ icon = 'icons/obj/assemblies/module.dmi'
+ base_icon_state = "datadisk"
+ icon_state = "datadisk0"
+
diff --git a/code/modules/bitrunning/objects/disks.dm b/code/modules/bitrunning/objects/disks.dm
index 4698b7a1ec1..9d7c808f356 100644
--- a/code/modules/bitrunning/objects/disks.dm
+++ b/code/modules/bitrunning/objects/disks.dm
@@ -18,22 +18,20 @@
icon_state = "[base_icon_state][rand(0, 7)]"
update_icon()
- RegisterSignal(src, COMSIG_ATOM_EXAMINE, PROC_REF(on_examined))
-/obj/item/bitrunning_disk/proc/on_examined(datum/source, mob/examiner, list/examine_text)
- SIGNAL_HANDLER
-
- examine_text += span_infoplain("This disk must be carried on your person into a netpod to be used.")
+/obj/item/bitrunning_disk/examine(mob/user)
+ . = ..()
+ . += span_infoplain("This disk must be carried on your person into a netpod to be used.")
if(isnull(choice_made))
- examine_text += span_notice("To make a selection, toggle the disk in hand.")
+ . += span_notice("To make a selection, toggle the disk in hand.")
return
- examine_text += span_info("It has been used to select: [choice_made].")
- examine_text += span_notice("It cannot make another selection.")
+ . += span_info("It has been used to select: [choice_made].")
+ . += span_notice("It cannot make another selection.")
/obj/item/bitrunning_disk/ability
- desc = "A disk containing source code. It can be used to preload abilities into the virtual domain."
+ desc = "A disk containing source code. It can be used to preload abilities into the virtual domain. Duplicate abilities will be ignored."
/// The selected ability that this grants
var/datum/action/granted_action
/// The list of actions that this can grant
@@ -131,16 +129,16 @@
/obj/item/bitrunning_disk/item/tier2
name = "bitrunning gear: complex"
selectable_items = list(
- /obj/item/chainsaw,
+ /obj/item/reagent_containers/hypospray/medipen/survival/luxury,
/obj/item/gun/ballistic/automatic/pistol,
- /obj/item/melee/energy/blade/hardlight,
+ /obj/item/clothing/suit/armor/vest,
)
/// Tier 3 items. Very powerful, game breaking.
/obj/item/bitrunning_disk/item/tier3
name = "bitrunning gear: advanced"
selectable_items = list(
- /obj/item/gun/energy/tesla_cannon,
+ /obj/item/gun/energy/e_gun/nuclear,
/obj/item/dualsaber/green,
- /obj/item/melee/beesword,
+ /obj/item/grenade/syndieminibomb,
)
diff --git a/code/modules/bitrunning/objects/landmarks.dm b/code/modules/bitrunning/objects/landmarks.dm
index d727025c928..20dcef3e929 100644
--- a/code/modules/bitrunning/objects/landmarks.dm
+++ b/code/modules/bitrunning/objects/landmarks.dm
@@ -6,43 +6,6 @@
/// In case you want to gate the crate behind a special condition.
/obj/effect/landmark/bitrunning/loot_signal
name = "Mysterious aura"
- /// The amount required to spawn a crate
- var/points_goal = 10
- /// A special condition limits this from spawning a crate
- var/points_received = 0
- /// Finished the special condition
- var/revealed = FALSE
-
-/obj/effect/landmark/bitrunning/loot_signal/Initialize(mapload)
- . = ..()
-
- RegisterSignal(src, COMSIG_BITRUNNER_GOAL_POINT, PROC_REF(on_add_point))
-
-/// Listens for points to be added which will eventually spawn a crate.
-/obj/effect/landmark/bitrunning/loot_signal/proc/on_add_point(datum/source, points_to_add)
- SIGNAL_HANDLER
-
- if(revealed)
- return
-
- points_received += points_to_add
-
- if(points_received < points_goal)
- return
-
- reveal()
-
-/// Spawns the crate with some effects
-/obj/effect/landmark/bitrunning/loot_signal/proc/reveal()
- playsound(src, 'sound/magic/blink.ogg', 50, TRUE)
-
- var/turf/tile = get_turf(src)
- var/obj/structure/closet/crate/secure/bitrunning/encrypted/loot = new(tile)
- var/datum/effect_system/spark_spread/quantum/sparks = new(tile)
- sparks.set_up(5, 1, get_turf(loot))
- sparks.start()
-
- qdel(src)
/// Where the exit hololadder spawns
/obj/effect/landmark/bitrunning/hololadder_spawn
@@ -57,7 +20,7 @@
/// Where you want the crate to spawn
/obj/effect/landmark/bitrunning/cache_spawn
name = "Bitrunning crate spawn"
- icon_state = "spawn"
+ icon_state = "crate"
/// Where the safehouse will spawn
/obj/effect/landmark/bitrunning/safehouse_spawn
@@ -73,7 +36,10 @@
/obj/effect/landmark/bitrunning/crate_replacer/Initialize(mapload)
. = ..()
- #ifndef UNIT_TESTS
+#ifdef UNIT_TESTS
+ return
+#endif
+
var/list/crate_list = list()
var/obj/structure/closet/crate/secure/bitrunning/encrypted/encrypted_crate
var/area/my_area = get_area(src)
@@ -100,4 +66,7 @@
encrypted_crate.abstract_move(selected_crate.loc)
selected_crate.abstract_move(original_location)
- #endif
+/// A location for mobs to spawn.
+/obj/effect/landmark/bitrunning/mob_segment
+ name = "Bitrunning modular mob segment"
+ icon_state = "mob_segment"
diff --git a/code/modules/bitrunning/objects/loot_crate.dm b/code/modules/bitrunning/objects/loot_crate.dm
index e97e63a7e80..d7d7eb8c777 100644
--- a/code/modules/bitrunning/objects/loot_crate.dm
+++ b/code/modules/bitrunning/objects/loot_crate.dm
@@ -19,6 +19,7 @@
name = "encrypted cache"
desc = "Needs decrypted at the safehouse to be opened."
locked = TRUE
+ damage_deflection = 30
/obj/structure/closet/crate/secure/bitrunning/encrypted/can_unlock(mob/living/user, obj/item/card/id/player_id, obj/item/card/id/registered_id)
return FALSE
@@ -72,7 +73,7 @@
/obj/structure/closet/crate/secure/bitrunning/decrypted/proc/spawn_loot(list/extra_loot)
for(var/path in extra_loot)
if(!ispath(path))
- continue
+ return FALSE
if(isnull(extra_loot[path]))
return FALSE
diff --git a/code/modules/bitrunning/objects/netpod.dm b/code/modules/bitrunning/objects/netpod.dm
index 754410174b3..593a7744ce4 100644
--- a/code/modules/bitrunning/objects/netpod.dm
+++ b/code/modules/bitrunning/objects/netpod.dm
@@ -35,7 +35,6 @@
disconnect_damage = BASE_DISCONNECT_DAMAGE
find_server()
- RegisterSignal(src, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
RegisterSignal(src, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(on_damage_taken))
RegisterSignal(src, COMSIG_MACHINERY_POWER_LOST, PROC_REF(on_power_loss))
RegisterSignals(src, list(COMSIG_QDELETING, COMSIG_MACHINERY_BROKEN),PROC_REF(on_broken))
@@ -45,7 +44,27 @@
/obj/machinery/netpod/Destroy()
. = ..()
- cached_outfits.Cut()
+
+ QDEL_LIST(cached_outfits)
+
+/obj/machinery/netpod/examine(mob/user)
+ . = ..()
+
+ if(isnull(server_ref?.resolve()))
+ . += span_infoplain("It's not connected to anything.")
+ . += span_infoplain("Netpods must be built within 4 tiles of a server.")
+ return
+
+ . += span_infoplain("Drag yourself into the pod to engage the link.")
+ . += span_infoplain("It has limited resuscitation capabilities. Remaining in the pod can heal some injuries.")
+ . += span_infoplain("It has a security system that will alert the occupant if it is tampered with.")
+
+ if(isnull(occupant))
+ . += span_notice("It is currently unoccupied.")
+ return
+
+ . += span_notice("It is currently occupied by [occupant].")
+ . += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.")
/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user)
. = ..()
@@ -401,26 +420,6 @@
QDEL_NULL(avatar)
-/// User inspects the machine
-/obj/machinery/netpod/proc/on_examine(datum/source, mob/examiner, list/examine_text)
- SIGNAL_HANDLER
-
- if(isnull(server_ref?.resolve()))
- examine_text += span_infoplain("It's not connected to anything.")
- examine_text += span_infoplain("Netpods must be built within 4 tiles of a server.")
- return
-
- examine_text += span_infoplain("Drag yourself into the pod to engage the link.")
- examine_text += span_infoplain("It has limited resuscitation capabilities. Remaining in the pod can heal some injuries.")
- examine_text += span_infoplain("It has a security system that will alert the occupant if it is tampered with.")
-
- if(isnull(occupant))
- examine_text += span_notice("It is currently unoccupied.")
- return
-
- examine_text += span_notice("It is currently occupied by [occupant].")
- examine_text += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.")
-
/// Boots out anyone in the machine && opens it
/obj/machinery/netpod/proc/on_power_loss(datum/source)
SIGNAL_HANDLER
diff --git a/code/modules/bitrunning/objects/quantum_console.dm b/code/modules/bitrunning/objects/quantum_console.dm
index cfa051b12a2..71d7df87f12 100644
--- a/code/modules/bitrunning/objects/quantum_console.dm
+++ b/code/modules/bitrunning/objects/quantum_console.dm
@@ -17,8 +17,7 @@
/obj/machinery/computer/quantum_console/LateInitialize()
. = ..()
- if(isnull(server_ref?.resolve()))
- find_server()
+ find_server()
/obj/machinery/computer/quantum_console/ui_interact(mob/user, datum/tgui/ui)
. = ..()
@@ -26,9 +25,6 @@
if(!is_operational)
return
- if(isnull(server_ref?.resolve()))
- find_server()
-
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "QuantumConsole")
@@ -76,17 +72,13 @@
switch(action)
if("random_domain")
- var/map_id = server.get_random_domain_id()
- if(!map_id)
- return TRUE
-
- server.cold_boot_map(usr, map_id)
+ server.cold_boot_map(server.get_random_domain_id())
return TRUE
if("refresh")
ui.send_full_update()
return TRUE
if("set_domain")
- server.cold_boot_map(usr, params["id"])
+ server.cold_boot_map(params["id"])
return TRUE
if("stop_domain")
server.begin_shutdown(usr)
diff --git a/code/modules/bitrunning/outfits.dm b/code/modules/bitrunning/outfits.dm
index 27ef8029a18..5e8def20f2b 100644
--- a/code/modules/bitrunning/outfits.dm
+++ b/code/modules/bitrunning/outfits.dm
@@ -1,39 +1,20 @@
/datum/outfit/cyber_police
- name = "Cyber Police"
+ name = ROLE_CYBER_POLICE
- id = /obj/item/card/id/advanced
- id_trim = /datum/id_trim/cyber_police
- uniform = /obj/item/clothing/under/suit/black_really
glasses = /obj/item/clothing/glasses/sunglasses
gloves = /obj/item/clothing/gloves/color/black
+ id = /obj/item/card/id/advanced
+ id_trim = /datum/id_trim/cyber_police
shoes = /obj/item/clothing/shoes/laceup
- /// A list of hex codes for blonde, brown, black, and red hair.
- var/static/list/approved_hair_colors = list(
- "#4B3D28",
- "#000000",
- "#8D4A43",
- "#D2B48C",
- )
- /// List of business ready styles
- var/static/list/approved_hairstyles = list(
- /datum/sprite_accessory/hair/business,
- /datum/sprite_accessory/hair/business2,
- /datum/sprite_accessory/hair/business3,
- /datum/sprite_accessory/hair/business4,
- /datum/sprite_accessory/hair/mulder,
- )
+ uniform = /obj/item/clothing/under/suit/black_really
/datum/outfit/cyber_police/pre_equip(mob/living/carbon/human/user, visualsOnly)
- var/datum/sprite_accessory/hair/picked_hair = pick(approved_hairstyles)
- var/picked_color = pick(approved_hair_colors)
-
- if(visualsOnly)
- picked_hair = /datum/sprite_accessory/hair/business
- picked_color = "#4B3D28"
+ if(!visualsOnly)
+ return
user.set_facial_hairstyle("Shaved", update = FALSE)
- user.set_haircolor(picked_color, update = FALSE)
- user.set_hairstyle(initial(picked_hair.name))
+ user.set_haircolor("#4B3D28", update = FALSE)
+ user.set_hairstyle("Business Hair")
/datum/outfit/cyber_police/post_equip(mob/living/carbon/human/user, visualsOnly)
var/obj/item/clothing/under/officer_uniform = user.w_uniform
@@ -55,3 +36,4 @@
/datum/outfit/echolocator/post_equip(mob/living/carbon/human/user, visualsOnly)
. = ..()
user.psykerize()
+
diff --git a/code/modules/bitrunning/server/quantum_server.dm b/code/modules/bitrunning/server/_parent.dm
similarity index 73%
rename from code/modules/bitrunning/server/quantum_server.dm
rename to code/modules/bitrunning/server/_parent.dm
index 8d596cc0da9..62e20367190 100644
--- a/code/modules/bitrunning/server/quantum_server.dm
+++ b/code/modules/bitrunning/server/_parent.dm
@@ -14,12 +14,12 @@
var/capacitor_coefficient = 1
/// The loaded map template, map_template/virtual_domain
var/datum/lazy_template/virtual_domain/generated_domain
- /// The loaded safehouse, map_template/safehouse
- var/datum/map_template/safehouse/generated_safehouse
/// If the current domain was a random selection
var/domain_randomized = FALSE
/// Prevents multiple user actions. Handled by loading domains and cooldowns
var/is_ready = TRUE
+ /// Chance multipled by threat to spawn a glitch
+ var/glitch_chance = 0.05
/// List of available domains
var/list/available_domains = list()
/// Current plugged in users
@@ -42,6 +42,8 @@
var/server_cooldown_time = 3 MINUTES
/// Applies bonuses to rewards etc
var/servo_bonus = 0
+ /// Determines the glitches available to spawn, builds with completion
+ var/threat = 0
/// The turfs we can place a hololadder on.
var/turf/exit_turfs = list()
@@ -54,15 +56,12 @@
. = ..()
radio = new(src)
- radio.set_frequency(FREQ_SUPPLY)
- radio.subspace_transmission = TRUE
- radio.canhear_range = 0
+ radio.keyslot = new /obj/item/encryptionkey/headset_cargo()
+ radio.set_listening(FALSE)
radio.recalculateChannels()
RegisterSignals(src, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_broken))
RegisterSignal(src, COMSIG_QDELETING, PROC_REF(on_delete))
- RegisterSignal(src, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine))
- RegisterSignal(src, COMSIG_BITRUNNER_SPAWN_GLITCH, PROC_REF(on_threat_created))
// This further gets sorted in the client by cost so it's random and grouped
available_domains = shuffle(subtypesof(/datum/lazy_template/virtual_domain))
@@ -76,17 +75,39 @@
spawned_threat_refs.Cut()
QDEL_NULL(exit_turfs)
QDEL_NULL(generated_domain)
- QDEL_NULL(generated_safehouse)
QDEL_NULL(radio)
+/obj/machinery/quantum_server/examine(mob/user)
+ . = ..()
+
+ . += span_infoplain("Can be resource intensive to run. Ensure adequate power supply.")
+
+ if(capacitor_coefficient < 1)
+ . += span_infoplain("Its coolant capacity reduces cooldown time by [(1 - capacitor_coefficient) * 100]%.")
+
+ if(servo_bonus > 0.2)
+ . += span_infoplain("Its manipulation potential is increasing rewards by [servo_bonus]x.")
+ . += span_infoplain("Injury from unsafe ejection reduced [servo_bonus * 100]%.")
+
+ if(!is_ready)
+ . += span_notice("It is currently cooling down. Give it a few moments.")
+
+/obj/machinery/quantum_server/emag_act(mob/user, obj/item/card/emag/emag_card)
+ . = ..()
+
+ obj_flags |= EMAGGED
+ glitch_chance = 0.09
+
+ add_overlay(mutable_appearance('icons/obj/machines/bitrunning.dmi', "emag_overlay"))
+ balloon_alert(user, "bzzzt...")
+ playsound(src, 'sound/effects/sparks1.ogg', 35, vary = TRUE)
+
/obj/machinery/quantum_server/update_appearance(updates)
if(isnull(generated_domain) || !is_operational)
set_light(l_on = FALSE)
return ..()
- set_light_color(is_ready ? LIGHT_COLOR_BABY_BLUE : LIGHT_COLOR_FIRE)
- set_light(l_range = 2, l_power = 1.5, l_on = TRUE)
-
+ set_light(l_range = 2, l_power = 1.5, l_color = is_ready ? LIGHT_COLOR_BABY_BLUE : LIGHT_COLOR_FIRE, l_on = TRUE)
return ..()
/obj/machinery/quantum_server/update_icon_state()
@@ -97,6 +118,14 @@
icon_state = "[base_icon_state]_[is_ready ? "on" : "off"]"
return ..()
+/obj/machinery/quantum_server/attackby(obj/item/weapon, mob/user, params)
+ . = ..()
+ if(istype(weapon, /obj/item/bitrunning_debug))
+ obj_flags |= EMAGGED
+ glitch_chance = 0.5
+ capacitor_coefficient = 0.01
+ points = 100
+
/obj/machinery/quantum_server/crowbar_act(mob/living/user, obj/item/crowbar)
. = ..()
@@ -121,8 +150,6 @@
return FALSE
/obj/machinery/quantum_server/RefreshParts()
- . = ..()
-
var/capacitor_rating = 1.15
var/datum/stock_part/capacitor/cap = locate() in component_parts
capacitor_rating -= cap.tier * 0.15
@@ -139,3 +166,4 @@
servo_bonus = servo_rating
+ return ..()
diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm
index 91889bce0a5..0aab2a86ff4 100644
--- a/code/modules/bitrunning/server/loot.dm
+++ b/code/modules/bitrunning/server/loot.dm
@@ -110,6 +110,9 @@
score += time_score * base
+ // Increases the chance for glitches to spawn based on how well they're doing
+ threat += score
+
switch(score)
if(1 to 4)
return "D"
@@ -121,3 +124,4 @@
return "A"
else
return "S"
+
diff --git a/code/modules/bitrunning/server/map_handling.dm b/code/modules/bitrunning/server/map_handling.dm
index 061a60b858b..325a9e15809 100644
--- a/code/modules/bitrunning/server/map_handling.dm
+++ b/code/modules/bitrunning/server/map_handling.dm
@@ -1,18 +1,16 @@
-#define ONLY_TURF 1
-
/// Gives all current occupants a notification that the server is going down
/obj/machinery/quantum_server/proc/begin_shutdown(mob/user)
if(isnull(generated_domain))
return
if(!length(avatar_connection_refs))
- balloon_alert(user, "powering down domain...")
- playsound(src, 'sound/machines/terminal_off.ogg', 40, 2)
+ balloon_alert_to_viewers("powering down domain...")
+ playsound(src, 'sound/machines/terminal_off.ogg', 40, vary = TRUE)
reset()
return
- balloon_alert(user, "notifying clients...")
- playsound(src, 'sound/machines/terminal_alert.ogg', 100, TRUE)
+ balloon_alert_to_viewers("notifying clients...")
+ playsound(src, 'sound/machines/terminal_alert.ogg', 100, vary = TRUE)
user.visible_message(
span_danger("[user] begins depowering the server!"),
span_notice("You start disconnecting clients..."),
@@ -26,40 +24,40 @@
reset()
-/**
- * ### Quantum Server Cold Boot
- * Procedurally links the 3 booting processes together.
- *
- * This is the starting point if you have an id. Does validation and feedback on steps
- */
-/obj/machinery/quantum_server/proc/cold_boot_map(mob/user, map_key)
+/// Links all the loading processes together - does validation for booting a map
+/obj/machinery/quantum_server/proc/cold_boot_map(map_key)
if(!is_ready)
return FALSE
if(isnull(map_key))
- balloon_alert(user, "no domain specified.")
+ balloon_alert_to_viewers("no domain specified.")
return FALSE
if(generated_domain)
- balloon_alert(user, "stop the current domain first.")
+ balloon_alert_to_viewers("stop the current domain first.")
return FALSE
if(length(avatar_connection_refs))
- balloon_alert(user, "all clients must disconnect!")
+ balloon_alert_to_viewers("all clients must disconnect!")
return FALSE
is_ready = FALSE
playsound(src, 'sound/machines/terminal_processing.ogg', 30, 2)
- if(!initialize_domain(map_key) || !initialize_safehouse() || !initialize_map_items())
- balloon_alert(user, "initialization failed.")
+ /// If any one of these fail, it reverts the entire process
+ if(!load_domain(map_key) || !load_safehouse() || !load_map_items() || !load_mob_segments())
+ balloon_alert_to_viewers("initialization failed.")
scrub_vdom()
is_ready = TRUE
return FALSE
is_ready = TRUE
- playsound(src, 'sound/machines/terminal_insert_disc.ogg', 30, 2)
- balloon_alert(user, "domain loaded.")
+
+ if(prob(clamp((threat * glitch_chance), 1, 10)))
+ setup_glitch()
+
+ playsound(src, 'sound/machines/terminal_insert_disc.ogg', 30, vary = TRUE)
+ balloon_alert_to_viewers("domain loaded.")
generated_domain.start_time = world.time
points -= generated_domain.cost
update_use_power(ACTIVE_POWER_USE)
@@ -68,28 +66,20 @@
return TRUE
/// Initializes a new domain if the given key is valid and the user has enough points
-/obj/machinery/quantum_server/proc/initialize_domain(map_key)
- var/datum/lazy_template/virtual_domain/to_load
-
+/obj/machinery/quantum_server/proc/load_domain(map_key)
for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain))
- if(map_key != initial(available.key) || points < initial(available.cost))
- continue
- to_load = available
- break
+ if(map_key == initial(available.key) && points >= initial(available.cost))
+ generated_domain = new available()
+ RegisterSignal(generated_domain, COMSIG_LAZY_TEMPLATE_LOADED, PROC_REF(on_template_loaded))
+ generated_domain.lazy_load()
+ return TRUE
- if(isnull(to_load))
- return FALSE
+ return FALSE
- generated_domain = new to_load()
- RegisterSignal(generated_domain, COMSIG_LAZY_TEMPLATE_LOADED, PROC_REF(on_template_loaded))
- generated_domain.lazy_load()
-
- return TRUE
-
-/// Loads in necessary map items, sets mutation targets, etc
-/obj/machinery/quantum_server/proc/initialize_map_items()
+/// Loads in necessary map items like hololadder spawns, caches, etc
+/obj/machinery/quantum_server/proc/load_map_items()
var/turf/goal_turfs = list()
- var/turf/crate_turfs = list()
+ var/turf/cache_turfs = list()
for(var/obj/effect/landmark/bitrunning/thing in GLOB.landmarks_list)
if(istype(thing, /obj/effect/landmark/bitrunning/hololadder_spawn))
@@ -106,7 +96,7 @@
continue
if(istype(thing, /obj/effect/landmark/bitrunning/cache_spawn))
- crate_turfs += get_turf(thing)
+ cache_turfs += get_turf(thing)
qdel(thing)
continue
@@ -120,26 +110,23 @@
if(!length(goal_turfs))
CRASH("Failed to find send turfs on generated domain.")
- if(length(crate_turfs))
- shuffle_inplace(crate_turfs)
- new /obj/structure/closet/crate/secure/bitrunning/encrypted(pick(crate_turfs))
+ if(!attempt_spawn_cache(cache_turfs))
+ return FALSE
return TRUE
/// Loads the safehouse
-/obj/machinery/quantum_server/proc/initialize_safehouse()
- var/turf/safehouse_load_turf = list()
- for(var/obj/effect/landmark/bitrunning/safehouse_spawn/spawner in GLOB.landmarks_list)
- safehouse_load_turf += get_turf(spawner)
- qdel(spawner)
- break
+/obj/machinery/quantum_server/proc/load_safehouse()
+ var/obj/effect/landmark/bitrunning/safehouse_spawn/landmark = locate() in GLOB.landmarks_list
+ if(isnull(landmark))
+ CRASH("vdom: failed to find safehouse spawn landmark")
- if(!length(safehouse_load_turf))
- CRASH("Failed to find safehouse load landmark on map.")
+ var/turf/spawn_loc = get_turf(landmark)
+ qdel(landmark)
- var/datum/map_template/safehouse/safehouse = new generated_domain.safehouse_path()
- safehouse.load(safehouse_load_turf[ONLY_TURF])
- generated_safehouse = safehouse
+ var/datum/map_template/safehouse/new_safehouse = new generated_domain.safehouse_path()
+ if(!new_safehouse.load(spawn_loc))
+ CRASH("vdom: failed to load safehouse")
return TRUE
@@ -155,14 +142,14 @@
else
scrub_vdom() // used in unit testing, no need to wait for callbacks
- addtimer(CALLBACK(src, PROC_REF(cool_off)), min(server_cooldown_time * capacitor_coefficient), TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME)
+ addtimer(CALLBACK(src, PROC_REF(cool_off)), ROUND_UP(server_cooldown_time * capacitor_coefficient), TIMER_UNIQUE|TIMER_STOPPABLE|TIMER_DELETE_ME)
update_appearance()
update_use_power(IDLE_POWER_USE)
domain_randomized = FALSE
retries_spent = 0
-/// Deletes all the tile contents
+/// Tries to clean up everything in the domain
/obj/machinery/quantum_server/proc/scrub_vdom()
sever_connections() /// just in case someone's connected
SEND_SIGNAL(src, COMSIG_BITRUNNER_DOMAIN_SCRUBBED) // avatar cleanup just in case
@@ -171,19 +158,16 @@
var/datum/turf_reservation/res = generated_domain.reservations[1]
res.Release()
- var/list/datum/weakref/creatures = spawned_threat_refs + mutation_candidate_refs
+ var/list/creatures = spawned_threat_refs + mutation_candidate_refs
for(var/datum/weakref/creature_ref as anything in creatures)
var/mob/living/creature = creature_ref?.resolve()
if(isnull(creature))
continue
- creature.dust() // sometimes mobs just don't die
+ creature.dust(just_ash = TRUE, force = TRUE) // sometimes mobs just don't die
avatar_connection_refs.Cut()
exit_turfs = list()
generated_domain = null
- generated_safehouse = null
mutation_candidate_refs.Cut()
spawned_threat_refs.Cut()
-
-#undef ONLY_TURF
diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm
index 41918980360..9d5f8427c00 100644
--- a/code/modules/bitrunning/server/obj_generation.dm
+++ b/code/modules/bitrunning/server/obj_generation.dm
@@ -1,3 +1,20 @@
+/// Attempts to spawn a crate twice based on the list of available locations
+/obj/machinery/quantum_server/proc/attempt_spawn_cache(list/possible_turfs)
+ if(!length(possible_turfs))
+ return TRUE
+
+ shuffle_inplace(possible_turfs)
+ var/turf/chosen_turf = validate_turf(pick(possible_turfs))
+
+ if(isnull(chosen_turf))
+ possible_turfs.Remove(chosen_turf)
+ chosen_turf = validate_turf(pick(possible_turfs))
+ if(isnull(chosen_turf))
+ CRASH("vdom: after two attemps, could not find a valid turf for cache")
+
+ new /obj/structure/closet/crate/secure/bitrunning/encrypted(chosen_turf)
+ return TRUE
+
/// Generates a new avatar for the bitrunner.
/obj/machinery/quantum_server/proc/generate_avatar(obj/structure/hololadder/wayout, datum/outfit/netsuit)
var/mob/living/carbon/human/avatar = new(wayout.loc)
@@ -19,17 +36,11 @@
if(istype(jumpsuit))
jumpsuit.set_armor(/datum/armor/clothing_under)
- var/obj/item/clothing/head/hat = avatar.get_clothing_on_part(HEAD)
+ var/obj/item/clothing/head/hat = locate() in avatar.get_equipped_items()
if(istype(hat))
- hat.set_armor(null)
+ hat.set_armor(/datum/armor/none)
- var/thing = avatar.get_active_held_item()
- if(!isnull(thing))
- qdel(thing)
-
- thing = avatar.get_inactive_held_item()
- if(!isnull(thing))
- qdel(thing)
+ QDEL_LIST(avatar.held_items)
var/obj/item/storage/backpack/bag = avatar.back
if(istype(bag))
@@ -78,6 +89,33 @@
return wayout
+/// Loads in any mob segments of the map
+/obj/machinery/quantum_server/proc/load_mob_segments()
+ if(!length(generated_domain.mob_modules))
+ return TRUE
+
+ var/current_index = 1
+ shuffle_inplace(generated_domain.mob_modules)
+
+ for(var/obj/effect/landmark/bitrunning/mob_segment/landmark in GLOB.landmarks_list)
+ if(current_index > length(generated_domain.mob_modules))
+ stack_trace("vdom: mobs segments are set to unique, but there are more landmarks than available segments")
+ return FALSE
+
+ var/path
+ if(generated_domain.modular_unique_mobs)
+ path = generated_domain.mob_modules[current_index]
+ current_index += 1
+ else
+ path = pick(generated_domain.mob_modules)
+
+ var/datum/modular_mob_segment/segment = new path()
+ segment.spawn_mobs(get_turf(landmark))
+ mutation_candidate_refs += segment.spawned_mob_refs
+ qdel(landmark)
+
+ return TRUE
+
/// Scans over neo's contents for bitrunning tech disks. Loads the items or abilities onto the avatar.
/obj/machinery/quantum_server/proc/stock_gear(mob/living/carbon/human/avatar, mob/living/carbon/human/neo, datum/lazy_template/virtual_domain/generated_domain)
var/domain_forbids_items = generated_domain.forbids_disk_items
@@ -109,6 +147,11 @@
continue
var/datum/action/our_action = new ability_disk.granted_action()
+
+ if(locate(our_action.type) in avatar.actions)
+ failed = TRUE
+ continue
+
our_action.Grant(avatar)
continue
@@ -122,4 +165,4 @@
avatar.put_in_hands(new item_disk.granted_item())
if(failed)
- to_chat(neo, span_warning("One of your disks failed to load. You must activate them to make a selection."))
+ to_chat(neo, span_warning("One of your disks failed to load. Check for duplicate or inactive disks."))
diff --git a/code/modules/bitrunning/server/signal_handlers.dm b/code/modules/bitrunning/server/signal_handlers.dm
index c41c0b529fc..bd98c1ce2a1 100644
--- a/code/modules/bitrunning/server/signal_handlers.dm
+++ b/code/modules/bitrunning/server/signal_handlers.dm
@@ -14,8 +14,9 @@
/obj/machinery/quantum_server/proc/on_delete(datum/source)
SIGNAL_HANDLER
+ sever_connections()
+
if(generated_domain)
- sever_connections()
scrub_vdom()
if(is_ready)
@@ -25,23 +26,6 @@
if(circuit)
qdel(circuit)
-/// Handles examining the server. Shows cooldown time and efficiency.
-/obj/machinery/quantum_server/proc/on_examine(datum/source, mob/examiner, list/examine_text)
- SIGNAL_HANDLER
-
- examine_text += span_infoplain("Can be resource intensive to run. Ensure adequate power supply.")
-
- if(capacitor_coefficient < 1)
- examine_text += span_infoplain("Its coolant capacity reduces cooldown time by [(1 - capacitor_coefficient) * 100]%.")
-
- if(servo_bonus > 0.2)
- examine_text += span_infoplain("Its manipulation potential is increasing rewards by [servo_bonus]x.")
- examine_text += span_infoplain("Injury from unsafe ejection reduced [servo_bonus * 100]%.")
-
- if(!is_ready)
- examine_text += span_notice("It is currently cooling down. Give it a few moments.")
- return
-
/// Whenever something enters the send tiles, check if it's a loot crate. If so, alert players.
/obj/machinery/quantum_server/proc/on_goal_turf_entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs)
SIGNAL_HANDLER
@@ -50,6 +34,15 @@
if(isnull(chosen_forge))
return
+ if((obj_flags & EMAGGED) && isliving(arrived))
+ var/mob/living/creature = arrived
+
+ if(!creature.mind?.has_antag_datum(/datum/antagonist/bitrunning_glitch, check_subtypes = TRUE))
+ return
+
+ INVOKE_ASYNC(src, PROC_REF(station_spawn), arrived, chosen_forge)
+ return
+
if(istype(arrived, /obj/structure/closet/crate/secure/bitrunning/encrypted))
generate_loot(arrived, chosen_forge)
return
@@ -70,7 +63,8 @@
var/mob/living/creature = thing
if(ismegafauna(creature))
- creature.AddElement(/datum/element/virtual_elite_mob)
+ var/mob/living/simple_animal/hostile/megafauna/boss = creature
+ boss.make_virtual_megafauna()
continue
mutation_candidate_refs.Add(WEAKREF(creature))
diff --git a/code/modules/bitrunning/server/threats.dm b/code/modules/bitrunning/server/threats.dm
index 451b4c48c19..e4fd60176c9 100644
--- a/code/modules/bitrunning/server/threats.dm
+++ b/code/modules/bitrunning/server/threats.dm
@@ -3,6 +3,37 @@
spawned_threat_refs.Add(WEAKREF(threat))
SEND_SIGNAL(src, COMSIG_BITRUNNER_THREAT_CREATED)
+/// Choses which antagonist role is spawned based on threat
+/obj/machinery/quantum_server/proc/get_antagonist_role()
+ var/list/available = list()
+
+ for(var/datum/antagonist/bitrunning_glitch/subtype as anything in subtypesof(/datum/antagonist/bitrunning_glitch))
+ if(threat >= initial(subtype.threat))
+ available += subtype
+
+ shuffle_inplace(available)
+ var/datum/antagonist/bitrunning_glitch/chosen = pick(available)
+
+ threat -= initial(chosen.threat) * 0.5
+
+ return chosen
+
+/// Selects a target to mutate. Gives two attempts, then crashes if it fails.
+/obj/machinery/quantum_server/proc/get_mutation_target()
+ var/datum/weakref/target_ref = pick(mutation_candidate_refs)
+ var/mob/living/resolved = target_ref.resolve()
+
+ if(resolved)
+ return resolved
+
+ mutation_candidate_refs.Remove(target_ref)
+ if(!length(mutation_candidate_refs))
+ return
+
+ target_ref = pick(mutation_candidate_refs)
+ resolved = target_ref.resolve()
+ return resolved
+
/// Finds any mobs with minds in the zones and gives them the bad news
/obj/machinery/quantum_server/proc/notify_spawned_threats()
for(var/datum/weakref/baddie_ref as anything in spawned_threat_refs)
@@ -19,3 +50,115 @@
alert.desc = "The server is resetting. Oblivion awaits."
to_chat(baddie, span_userdanger("You have been flagged for deletion! Thank you for your service."))
+
+/// Removes a specific threat - used when station spawning
+/obj/machinery/quantum_server/proc/remove_threat(mob/living/threat)
+ spawned_threat_refs.Remove(WEAKREF(threat))
+
+/// Selects the role and waits for a ghost orbiter
+/obj/machinery/quantum_server/proc/setup_glitch(datum/antagonist/bitrunning_glitch/forced_role)
+ if(!validate_mutation_candidates())
+ return
+
+ var/mob/living/mutation_target = get_mutation_target()
+ if(isnull(mutation_target))
+ CRASH("vdom: After two attempts, no valid mutation target was found.")
+
+ var/atom/thing = mutation_target
+ thing.create_digital_aura()
+
+ var/datum/antagonist/bitrunning_glitch/chosen_role = forced_role || get_antagonist_role()
+ var/role_name = initial(chosen_role.name)
+
+ var/datum/callback/to_call = CALLBACK(src, PROC_REF(spawn_glitch), chosen_role, mutation_target)
+ mutation_target.AddComponent(/datum/component/orbit_poll, \
+ ignore_key = POLL_IGNORE_GLITCH, \
+ job_bans = ROLE_GLITCH, \
+ to_call = to_call, \
+ title = role_name, \
+ header = "Bitrunning Malfunction", \
+ )
+
+ return mutation_target
+
+/// Orbit poll has concluded - spawn the antag
+/obj/machinery/quantum_server/proc/spawn_glitch(datum/antagonist/bitrunning_glitch/chosen_role, mob/living/mutation_target, mob/dead/observer/ghost)
+ if(QDELETED(mutation_target))
+ return
+
+ if(QDELETED(src) || isnull(ghost) || isnull(generated_domain) || !is_ready || !is_operational)
+ var/atom/thing = mutation_target
+ thing.remove_digital_aura()
+ return
+
+ var/role_name = initial(chosen_role.name)
+ var/mob/living/antag_mob
+ switch(role_name)
+ if(ROLE_NETGUARDIAN)
+ antag_mob = new /mob/living/basic/netguardian(mutation_target.loc)
+ else // any other humanoid mob
+ antag_mob = new /mob/living/carbon/human(mutation_target.loc)
+
+ mutation_target.gib(DROP_ALL_REMAINS)
+
+ antag_mob.key = ghost.key
+ var/datum/mind/ghost_mind = antag_mob.mind
+ ghost_mind.add_antag_datum(chosen_role)
+ ghost_mind.special_role = ROLE_GLITCH
+ ghost_mind.set_assigned_role(SSjob.GetJobType(/datum/job/bitrunning_glitch))
+
+ playsound(antag_mob, 'sound/magic/ethereal_exit.ogg', 50, vary = TRUE)
+ message_admins("[ADMIN_LOOKUPFLW(antag_mob)] has been made into virtual antagonist by an event.")
+ antag_mob.log_message("was spawned as a virtual antagonist by an event.", LOG_GAME)
+
+ add_threats(antag_mob)
+
+/// Oh boy - transports the antag station side
+/obj/machinery/quantum_server/proc/station_spawn(mob/living/antag, obj/machinery/byteforge/chosen_forge)
+ antag.balloon_alert(antag, "scanning...")
+ chosen_forge.setup_particles(angry = TRUE)
+ radio.talk_into(src, "SECURITY BREACH: Unauthorized entry sequence detected.", RADIO_CHANNEL_SUPPLY)
+ SEND_SIGNAL(src, COMSIG_BITRUNNER_STATION_SPAWN)
+
+ var/timeout = 2 SECONDS
+ if(!ishuman(antag))
+ radio.talk_into(src, "Fabrication protocols have crashed unexpectedly. Please evacuate the area.", RADIO_CHANNEL_SUPPLY)
+ timeout = 10 SECONDS
+
+ if(!do_after(antag, timeout) || QDELETED(chosen_forge) || QDELETED(antag) || QDELETED(src) || !is_ready || !is_operational)
+ chosen_forge.setup_particles()
+ return
+
+ var/datum/component/glitch/effect = antag.AddComponent(/datum/component/glitch, \
+ server = src, \
+ forge = chosen_forge, \
+ )
+
+ chosen_forge.flicker(angry = TRUE)
+ if(!do_after(antag, 1 SECONDS))
+ chosen_forge.setup_particles()
+ qdel(effect)
+ return
+
+ chosen_forge.flash()
+
+ if(ishuman(antag))
+ reset_equipment(antag)
+ else
+ radio.talk_into(src, "CRITICAL ALERT: Unregistered mechanical entity deployed.")
+
+ do_teleport(antag, get_turf(chosen_forge), forced = TRUE, asoundin = 'sound/magic/ethereal_enter.ogg', asoundout = 'sound/magic/ethereal_exit.ogg', channel = TELEPORT_CHANNEL_QUANTUM)
+
+/// Removes any invalid candidates from the list
+/obj/machinery/quantum_server/proc/validate_mutation_candidates()
+ for(var/datum/weakref/creature_ref as anything in mutation_candidate_refs)
+ var/mob/living/creature = creature_ref.resolve()
+ if(isnull(creature) || creature.mind)
+ mutation_candidate_refs.Remove(creature_ref)
+
+ if(!length(mutation_candidate_refs))
+ return FALSE
+
+ shuffle_inplace(mutation_candidate_refs)
+
+ return TRUE
diff --git a/code/modules/bitrunning/server/util.dm b/code/modules/bitrunning/server/util.dm
index 3d8b2c07880..a6069d45e90 100644
--- a/code/modules/bitrunning/server/util.dm
+++ b/code/modules/bitrunning/server/util.dm
@@ -22,6 +22,7 @@
"desc" = can_view ? initial(domain.desc) : "Limited scanning capabilities. Cannot infer domain details.",
"difficulty" = initial(domain.difficulty),
"id" = initial(domain.key),
+ "is_modular" = initial(domain.is_modular),
"name" = can_view ? initial(domain.name) : REDACTED,
"reward" = can_view_reward ? initial(domain.reward_points) : REDACTED,
))
@@ -53,31 +54,6 @@
return hosted_avatars
-/// Gets a random available domain given the current points. Weighted towards higher cost domains.
-/obj/machinery/quantum_server/proc/get_random_domain_id()
- if(points < 1)
- return
-
- var/list/random_domains = list()
- var/total_cost = 0
-
- for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain))
- var/init_cost = initial(available.cost)
- if(!initial(available.test_only) && init_cost > 0 && init_cost < 4 && init_cost <= points)
- random_domains += list(list(
- cost = init_cost,
- id = initial(available.key),
- ))
-
- var/random_value = rand(0, total_cost)
- var/accumulated_cost = 0
-
- for(var/available as anything in random_domains)
- accumulated_cost += available["cost"]
- if(accumulated_cost >= random_value)
- domain_randomized = TRUE
- return available["id"]
-
/// Locates any turfs with forges on them, returns a random one
/obj/machinery/quantum_server/proc/get_random_nearby_forge()
var/list/nearby_forges = list()
@@ -87,30 +63,39 @@
return pick(nearby_forges)
-/// Gets all mobs originally generated by the loaded domain and returns a list that are capable of being antagged
-/obj/machinery/quantum_server/proc/get_valid_domain_targets()
- // A: No one is playing
- // B: The domain is not loaded
- // C: The domain is shutting down
- // D: There are no mobs
- if(!length(avatar_connection_refs) || isnull(generated_domain) || !is_ready || !is_operational || !length(mutation_candidate_refs))
- return list()
+/// Gets a random available domain given the current points.
+/obj/machinery/quantum_server/proc/get_random_domain_id()
+ if(points < 1)
+ return
- for(var/datum/weakref/creature_ref as anything in mutation_candidate_refs)
- var/mob/living/creature = creature_ref.resolve()
- if(isnull(creature) || creature.mind)
- mutation_candidate_refs.Remove(creature_ref)
+ var/list/random_domains = list()
- return shuffle(mutation_candidate_refs)
+ for(var/datum/lazy_template/virtual_domain/available as anything in subtypesof(/datum/lazy_template/virtual_domain))
+ var/init_cost = initial(available.cost)
-/// Locates any turfs with forges on them
-/obj/machinery/quantum_server/proc/get_nearby_forges()
- var/list/obj/machinery/byteforge/nearby_forges = list()
+ if(!initial(available.test_only) && \
+ init_cost <= points && \
+ init_cost > BITRUNNER_COST_NONE && \
+ init_cost < BITRUNNER_COST_EXTREME \
+ )
+ random_domains.Add(available)
- for(var/obj/machinery/byteforge/forge in oview(MAX_DISTANCE, src))
- nearby_forges += forge
+ shuffle_inplace(random_domains)
+ var/datum/lazy_template/virtual_domain/selected = pick(random_domains)
+ domain_randomized = TRUE
- return nearby_forges
+ return initial(selected.key)
+
+/// Removes all blacklisted items from a mob and returns them to base state
+/obj/machinery/quantum_server/proc/reset_equipment(mob/living/carbon/human/person)
+ for(var/item in person.get_contents())
+ qdel(item)
+
+ var/datum/antagonist/bitrunning_glitch/antag_datum = locate() in person.mind?.antag_datums
+ if(isnull(antag_datum?.preview_outfit))
+ return
+
+ person.equipOutfit(antag_datum.preview_outfit)
/// Severs any connected users
/obj/machinery/quantum_server/proc/sever_connections()
@@ -121,10 +106,19 @@
/// Do some magic teleport sparks
/obj/machinery/quantum_server/proc/spark_at_location(obj/cache)
- playsound(cache, 'sound/magic/blink.ogg', 50, TRUE)
+ playsound(cache, 'sound/magic/blink.ogg', 50, vary = TRUE)
var/datum/effect_system/spark_spread/quantum/sparks = new()
- sparks.set_up(5, 1, get_turf(cache))
+ sparks.set_up(5, location = get_turf(cache))
sparks.start()
+/// Returns a turf if it's not dense, else will find a neighbor.
+/obj/machinery/quantum_server/proc/validate_turf(turf/chosen_turf)
+ if(!chosen_turf.is_blocked_turf())
+ return chosen_turf
+
+ for(var/turf/tile in get_adjacent_open_turfs(chosen_turf))
+ if(!tile.is_blocked_turf())
+ return chosen_turf
+
#undef REDACTED
#undef MAX_DISTANCE
diff --git a/code/modules/bitrunning/util/digital_aura.dm b/code/modules/bitrunning/util/digital_aura.dm
new file mode 100644
index 00000000000..a45194933a4
--- /dev/null
+++ b/code/modules/bitrunning/util/digital_aura.dm
@@ -0,0 +1,43 @@
+/// Creates a digital effect around the target
+/atom/proc/create_digital_aura()
+ var/list/overlays = get_digital_overlays()
+ if(!length(overlays))
+ return
+
+ add_overlay(overlays)
+ alpha = 210
+ set_light(2, l_color = LIGHT_COLOR_BUBBLEGUM, l_on = TRUE)
+ update_appearance()
+
+/// Removes the digital effect around the target
+/atom/proc/remove_digital_aura()
+ var/list/overlays = get_digital_overlays()
+ if(!length(overlays))
+ return
+
+ cut_overlay(overlays)
+ alpha = 255
+ set_light(0, l_color = null, l_on = FALSE)
+ update_appearance()
+
+/// Returns a list of overlays to be used for the digital effect
+/atom/proc/get_digital_overlays()
+ var/base_icon
+ var/dimensions = get_icon_dimensions(icon)
+ if(!length(dimensions))
+ return
+
+ switch(dimensions["width"])
+ if(32)
+ base_icon = 'icons/effects/bitrunning.dmi'
+ if(48)
+ base_icon = 'icons/effects/bitrunning_48.dmi'
+ if(64)
+ base_icon = 'icons/effects/bitrunning_64.dmi'
+
+ var/mutable_appearance/redshift = mutable_appearance(base_icon, "redshift")
+ redshift.blend_mode = BLEND_MULTIPLY
+
+ var/mutable_appearance/glitch_effect = mutable_appearance(base_icon, "glitch", MUTATIONS_LAYER, alpha = 150)
+
+ return list(glitch_effect, redshift)
diff --git a/code/modules/bitrunning/util/service_style.dm b/code/modules/bitrunning/util/service_style.dm
new file mode 100644
index 00000000000..f420e783064
--- /dev/null
+++ b/code/modules/bitrunning/util/service_style.dm
@@ -0,0 +1,23 @@
+/// Gives the appearance of being an agent
+/mob/living/carbon/human/proc/set_service_style()
+ var/static/list/approved_hair_colors = list(
+ "#4B3D28",
+ "#000000",
+ "#8D4A43",
+ "#D2B48C",
+ )
+
+ var/static/list/approved_hairstyles = list(
+ /datum/sprite_accessory/hair/business,
+ /datum/sprite_accessory/hair/business2,
+ /datum/sprite_accessory/hair/business3,
+ /datum/sprite_accessory/hair/business4,
+ /datum/sprite_accessory/hair/mulder,
+ )
+
+ var/datum/sprite_accessory/hair/picked_hair = pick(approved_hairstyles)
+ var/picked_color = pick(approved_hair_colors)
+
+ set_facial_hairstyle("Shaved", update = FALSE)
+ set_haircolor(picked_color, update = FALSE)
+ set_hairstyle(initial(picked_hair.name))
diff --git a/code/modules/bitrunning/util/virtual_megafauna.dm b/code/modules/bitrunning/util/virtual_megafauna.dm
new file mode 100644
index 00000000000..2707db9e2e7
--- /dev/null
+++ b/code/modules/bitrunning/util/virtual_megafauna.dm
@@ -0,0 +1,13 @@
+/// Removes all the loot and achievements from megafauna for bitrunning related
+/mob/living/simple_animal/hostile/megafauna/proc/make_virtual_megafauna()
+ var/new_max = clamp(maxHealth * 0.5, 600, 1300)
+ maxHealth = new_max
+ health = new_max
+
+ true_spawn = FALSE
+
+ loot.Cut()
+ loot += /obj/structure/closet/crate/secure/bitrunning/encrypted
+
+ crusher_loot.Cut()
+ crusher_loot += /obj/structure/closet/crate/secure/bitrunning/encrypted
diff --git a/code/modules/bitrunning/util/virtual_mob.dm b/code/modules/bitrunning/util/virtual_mob.dm
new file mode 100644
index 00000000000..891f6016879
--- /dev/null
+++ b/code/modules/bitrunning/util/virtual_mob.dm
@@ -0,0 +1,14 @@
+/// Removes all the "organic" traits from a mob, used for virtual antagonists
+/mob/living/carbon/proc/make_virtual_mob()
+ add_traits(list(
+ TRAIT_NO_AUGMENTS,
+ TRAIT_NO_DNA_COPY,
+ TRAIT_NOBLOOD,
+ TRAIT_NOBREATH,
+ TRAIT_NOHUNGER,
+ TRAIT_RESISTCOLD,
+ TRAIT_RESISTHIGHPRESSURE,
+ TRAIT_RESISTLOWPRESSURE,
+ TRAIT_WEATHER_IMMUNE,
+ ), TRAIT_GENERIC,
+ )
diff --git a/code/modules/bitrunning/virtual_domain/domains/breeze_bay.dm b/code/modules/bitrunning/virtual_domain/domains/breeze_bay.dm
index 62fd3117a94..5035a323d7c 100644
--- a/code/modules/bitrunning/virtual_domain/domains/breeze_bay.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/breeze_bay.dm
@@ -4,6 +4,7 @@
help_text = "It's simple! Enjoy some rays, catch some fish, and have a good time! Don't get bit by the crabs, though."
key = "breeze_bay"
map_name = "breeze_bay"
+ reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/wood
/datum/lazy_template/virtual_domain/breeze_bay/setup_domain(list/created_atoms)
diff --git a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm
index 01d58e39803..1f385542361 100644
--- a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm
@@ -1,7 +1,6 @@
/datum/lazy_template/virtual_domain/gondola_asteroid
name = "Gondola Asteroid"
desc = "An asteroid home to a bountiful forest of gondolas. Peaceful."
- map_name = "gondola_asteroid"
help_text = "What a lovely forest. There's a loot crate here in the middle of the map. \
Hmm... It doesn't budge. The gondolas don't seem to have any trouble moving it, though. \
I bet there's a way to move it myself."
diff --git a/code/modules/bitrunning/virtual_domain/domains/pipedream.dm b/code/modules/bitrunning/virtual_domain/domains/pipedream.dm
index fd54ef6ca48..c8d7750e979 100644
--- a/code/modules/bitrunning/virtual_domain/domains/pipedream.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/pipedream.dm
@@ -2,13 +2,18 @@
name = "Disposal Pipe Factory"
cost = BITRUNNER_COST_LOW
desc = "An abandoned and infested factory manufacturing disposal pipes."
- difficulty = BITRUNNER_DIFFICULTY_MEDIUM
+ difficulty = BITRUNNER_DIFFICULTY_LOW
extra_loot = list(/obj/item/stack/pipe_cleaner_coil/random/five = 1)
help_text = "Not long ago, this place was thriving with activity. The workers \
seemed to have left in a hurry, and now productivity is in the bin. Something \
must have trashed the place, but what?"
+ is_modular = TRUE
key = "pipedream"
map_name = "pipedream"
+ mob_modules = list(
+ /datum/modular_mob_segment/hivebots,
+ /datum/modular_mob_segment/hivebots_strong
+ )
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/shuttle
diff --git a/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm
index bae0da6874d..dd56684abc6 100644
--- a/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/syndicate_assault.dm
@@ -7,7 +7,9 @@
help_text = "A group of Syndicate operatives have stolen valuable cargo from the station. \
They have boarded their ship and are attempting to escape. Infiltrate their ship and recover \
the crate. Be careful, they are extremely armed."
+ is_modular = TRUE
key = "syndicate_assault"
map_name = "syndicate_assault"
+ mob_modules = list(/datum/modular_mob_segment/syndicate_team)
reward_points = BITRUNNER_REWARD_MEDIUM
safehouse_path = /datum/map_template/safehouse/shuttle
diff --git a/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm b/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm
index 45d4abec983..0b1bfedbdb9 100644
--- a/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/vaporwave.dm
@@ -1,7 +1,7 @@
/datum/lazy_template/virtual_domain/vaporwave
name = "Cosmic Vestige"
cost = BITRUNNER_COST_EXTREME
- desc = "Suspended in the silent void of space, the Neon Relic is a haunting echo of a retro-futuristic era."
+ desc = "Suspended in the silent void of space, the Neon Relic is a haunting echo of a retro-futuristic era. Hang out, enjoy the view."
difficulty = BITRUNNER_DIFFICULTY_NONE
extra_loot = list(/obj/item/stack/spacecash/c500 = 3)
key = "vaporwave"
diff --git a/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm b/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm
index 2bd4105e13c..ccf5fac23ad 100644
--- a/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm
+++ b/code/modules/bitrunning/virtual_domain/domains/xeno_nest.dm
@@ -6,7 +6,9 @@
extra_loot = list(/obj/item/toy/plush/rouny = 1)
help_text = "You are on a barren planet filled with hostile creatures. There is a crate here, not hidden, \
simply protected. Expect resistance."
+ is_modular = TRUE
key = "xeno_nest"
map_name = "xeno_nest"
+ mob_modules = list(/datum/modular_mob_segment/xenos)
reward_points = BITRUNNER_REWARD_LOW
safehouse_path = /datum/map_template/safehouse/shuttle
diff --git a/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm b/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm
new file mode 100644
index 00000000000..b845eee564d
--- /dev/null
+++ b/code/modules/bitrunning/virtual_domain/modular_mob_segment.dm
@@ -0,0 +1,156 @@
+#define SPAWN_ALWAYS 100
+#define SPAWN_LIKELY 85
+#define SPAWN_UNLIKELY 35
+#define SPAWN_RARE 10
+
+/datum/modular_mob_segment
+ /// Spawn no more than this amount
+ var/max = 4
+ /// Set this to false if you want explicitly what's in the list to spawn
+ var/exact = FALSE
+ /// The list of mobs to spawn
+ var/list/mob/living/mobs = list()
+ /// The mobs spawned from this segment
+ var/list/spawned_mob_refs = list()
+ /// Chance this will spawn (1 - 100)
+ var/probability = SPAWN_LIKELY
+
+/// Spawns mobs in a circle around the location
+/datum/modular_mob_segment/proc/spawn_mobs(turf/origin)
+ if(!prob(probability))
+ return
+
+ var/total_amount = exact ? rand(1, max) : length(mobs)
+
+ shuffle_inplace(mobs)
+
+
+ var/list/turf/nearby = list()
+ for(var/turf/tile as anything in RANGE_TURFS(2, origin))
+ if(!tile.is_blocked_turf())
+ nearby += tile
+
+ if(!length(nearby))
+ stack_trace("Couldn't find any valid turfs to spawn on")
+ return
+
+ for(var/index in 1 to total_amount)
+ // For each of those, we need to find an open space
+ var/turf/destination = pick(nearby)
+
+ var/path // Either a random mob or the next mob in the list
+ if(exact)
+ path = mobs[index]
+ else
+ path = pick(mobs)
+
+ var/mob/living/mob = new path(destination)
+ nearby -= destination
+ spawned_mob_refs.Add(WEAKREF(mob))
+
+// Some generic mob segments. If you want to add generic ones for any map, add them here
+
+/datum/modular_mob_segment/gondolas
+ mobs = list(
+ /mob/living/simple_animal/pet/gondola,
+ )
+
+/datum/modular_mob_segment/corgis
+ max = 2
+ mobs = list(
+ /mob/living/basic/pet/dog/corgi,
+ )
+
+/datum/modular_mob_segment/monkeys
+ mobs = list(
+ /mob/living/carbon/human/species/monkey,
+ )
+
+/datum/modular_mob_segment/syndicate_team
+ mobs = list(
+ /mob/living/basic/trooper/syndicate/ranged,
+ /mob/living/basic/trooper/syndicate/melee,
+ )
+
+/datum/modular_mob_segment/syndicate_elite
+ mobs = list(
+ /mob/living/basic/trooper/syndicate/melee/sword/space/stormtrooper,
+ /mob/living/basic/trooper/syndicate/ranged/space/stormtrooper,
+ )
+
+/datum/modular_mob_segment/bears
+ max = 2
+ mobs = list(
+ /mob/living/basic/bear,
+ )
+
+/datum/modular_mob_segment/bees
+ exact = TRUE
+ mobs = list(
+ /mob/living/basic/bee,
+ /mob/living/basic/bee,
+ /mob/living/basic/bee,
+ /mob/living/basic/bee,
+ /mob/living/basic/bee/queen,
+ )
+
+/datum/modular_mob_segment/bees_toxic
+ mobs = list(
+ /mob/living/basic/bee/toxin,
+ )
+
+/datum/modular_mob_segment/blob_spores
+ mobs = list(
+ /mob/living/basic/blob_minion,
+ )
+
+/datum/modular_mob_segment/carps
+ mobs = list(
+ /mob/living/basic/carp,
+ )
+
+/datum/modular_mob_segment/hivebots
+ mobs = list(
+ /mob/living/basic/hivebot,
+ /mob/living/basic/hivebot/range,
+ )
+
+/datum/modular_mob_segment/hivebots_strong
+ mobs = list(
+ /mob/living/basic/hivebot/strong,
+ /mob/living/basic/hivebot/range,
+ )
+
+/datum/modular_mob_segment/lavaland_assorted
+ mobs = list(
+ /mob/living/basic/mining/basilisk,
+ /mob/living/basic/mining/goliath,
+ /mob/living/basic/mining/brimdemon,
+ /mob/living/basic/mining/lobstrosity,
+ )
+
+/datum/modular_mob_segment/spiders
+ mobs = list(
+ /mob/living/basic/spider/giant/ambush,
+ /mob/living/basic/spider/giant/hunter,
+ /mob/living/basic/spider/giant/nurse,
+ /mob/living/basic/spider/giant/tarantula,
+ /mob/living/basic/spider/giant/midwife,
+ )
+
+/datum/modular_mob_segment/venus_trap
+ mobs = list(
+ /mob/living/basic/venus_human_trap,
+ )
+
+/datum/modular_mob_segment/xenos
+ mobs = list(
+ /mob/living/simple_animal/hostile/alien,
+ /mob/living/simple_animal/hostile/alien/sentinel,
+ /mob/living/simple_animal/hostile/alien/drone,
+ )
+
+#undef SPAWN_ALWAYS
+#undef SPAWN_LIKELY
+#undef SPAWN_UNLIKELY
+#undef SPAWN_RARE
diff --git a/code/modules/bitrunning/virtual_domain/safehouses.dm b/code/modules/bitrunning/virtual_domain/safehouses.dm
index 6504d447f28..79c8d5fe895 100644
--- a/code/modules/bitrunning/virtual_domain/safehouses.dm
+++ b/code/modules/bitrunning/virtual_domain/safehouses.dm
@@ -6,51 +6,49 @@
/datum/map_template/safehouse
name = "virtual domain: safehouse"
- returns_created_atoms = TRUE
/// The map file to load
- var/filename = "den.dmm"
+ var/filename = "den"
/datum/map_template/safehouse/New()
- mappath = "_maps/safehouses/" + filename
+ mappath = "_maps/safehouses/[filename].dmm"
..(path = mappath)
/datum/map_template/safehouse/test_only
filename = "test_only_safehouse.dmm"
-
/// The default safehouse map template.
-/datum/map_template/safehouse/wood
- filename = "wood.dmm"
-
/datum/map_template/safehouse/den
- filename = "den.dmm"
+ filename = "den"
+
+/datum/map_template/safehouse/wood
+ filename = "wood"
/datum/map_template/safehouse/dig
- filename = "dig.dmm"
+ filename = "dig"
/datum/map_template/safehouse/shuttle
- filename = "shuttle.dmm"
+ filename = "shuttle"
// Has space tiles on the four corners.
/datum/map_template/safehouse/shuttle_space
- filename = "shuttle_space.dmm"
+ filename = "shuttle_space"
/datum/map_template/safehouse/mine
- filename = "mine.dmm"
+ filename = "mine"
// Comes preloaded with mining combat gear.
/datum/map_template/safehouse/lavaland_boss
- filename = "lavaland_boss.dmm"
+ filename = "lavaland_boss"
// Chill out
/datum/map_template/safehouse/ice
- filename = "ice.dmm"
+ filename = "ice"
/datum/map_template/safehouse/bathroom
- filename = "bathroom.dmm"
+ filename = "bathroom"
/**
* Your safehouse here
* /datum/map_template/safehouse/your_type
- * filename = "your_map.dmm"
+ * filename = "your_map"
*/
diff --git a/code/modules/bitrunning/virtual_domain/virtual_domain.dm b/code/modules/bitrunning/virtual_domain/virtual_domain.dm
index 5e6cb0f2582..6e7b98ccdb4 100644
--- a/code/modules/bitrunning/virtual_domain/virtual_domain.dm
+++ b/code/modules/bitrunning/virtual_domain/virtual_domain.dm
@@ -1,6 +1,5 @@
/**
* # Virtual Domains
- * This loads a base level, then users can select the preset upon it.
* Create your own: Read the readme file in the '_maps/virtual_domains' folder.
*/
/datum/lazy_template/virtual_domain
@@ -10,22 +9,30 @@
/// Cost of this map to load
var/cost = BITRUNNER_COST_NONE
- /// The description of the map
+ /// The safehouse to load into the map
+ var/datum/map_template/safehouse/safehouse_path = /datum/map_template/safehouse/den
+ /// Any outfit that you wish to force on avatars. Overrides preferences
+ var/datum/outfit/forced_outfit
+ /// The description of the map for the console UI
var/desc = "A map."
- /// The 'difficulty' of the map, which affects the ui and ability to scan info.
+ /// Affects the ui and ability to scan info.
var/difficulty = BITRUNNER_DIFFICULTY_NONE
- /// An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount
- var/list/extra_loot
/// The map file to load
var/filename = "virtual_domain.dmm"
- /// Any outfit that you wish to force on avatars. Overrides preferences
- var/datum/outfit/forced_outfit
/// If this domain blocks the use of items from disks, for whatever reason
var/forbids_disk_items = FALSE
/// If this domain blocks the use of spells from disks, for whatever reason
var/forbids_disk_spells = FALSE
/// Information given to connected clients via ability
var/help_text
+ /// Whether to display this as a modular map
+ var/is_modular = FALSE
+ /// Byond will look for modular mob segment landmarks then choose from here at random. You can make them unique also.
+ var/list/datum/modular_mob_segment/mob_modules = list()
+ /// An assoc list of typepath/amount to spawn on completion. Not weighted - the value is the amount
+ var/list/extra_loot
+ /// Forces all mob modules to only load once
+ var/modular_unique_mobs = FALSE
// Name to show in the UI
var/name = "Virtual Domain"
/// Points to reward for completion. Used to purchase new domains and calculate ore rewards.
@@ -34,8 +41,6 @@
var/start_time
/// This map is specifically for unit tests. Shouldn't display in game
var/test_only = FALSE
- /// The safehouse to load into the map
- var/datum/map_template/safehouse/safehouse_path = /datum/map_template/safehouse/den
/// Sends a point to any loot signals on the map
/datum/lazy_template/virtual_domain/proc/add_points(points_to_add)
diff --git a/code/modules/client/preferences/middleware/antags.dm b/code/modules/client/preferences/middleware/antags.dm
index 888da90d5b7..52593aad912 100644
--- a/code/modules/client/preferences/middleware/antags.dm
+++ b/code/modules/client/preferences/middleware/antags.dm
@@ -116,7 +116,7 @@
/datum/asset/spritesheet/antagonists/create_spritesheets()
// Antagonists that don't have a dynamic ruleset, but do have a preference
var/static/list/non_ruleset_antagonists = list(
- ROLE_CYBER_POLICE = /datum/antagonist/cyber_police,
+ ROLE_GLITCH = /datum/antagonist/bitrunning_glitch,
ROLE_FUGITIVE = /datum/antagonist/fugitive,
ROLE_LONE_OPERATIVE = /datum/antagonist/nukeop/lone,
ROLE_DRIFTING_CONTRACTOR = /datum/antagonist/contractor, //SKYRAT EDIT
diff --git a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm
index c32c83effa9..d795a5e0dcf 100644
--- a/code/modules/reagents/reagent_containers/cups/drinkingglass.dm
+++ b/code/modules/reagents/reagent_containers/cups/drinkingglass.dm
@@ -101,6 +101,10 @@
name = "Nuka Cola"
list_reagents = list(/datum/reagent/consumable/nuka_cola = 50)
+/obj/item/reagent_containers/cup/glass/drinkingglass/filled/pina_colada
+ name = "Pina Colada"
+ list_reagents = list(/datum/reagent/consumable/ethanol/pina_colada = 50)
+
/obj/item/reagent_containers/cup/glass/drinkingglass/filled/half_full
name = "half full glass of water"
desc = "It's a glass of water. It seems half full. Or is it half empty? You're pretty sure it's full of shit."
diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_glitch.png
similarity index 100%
rename from code/modules/unit_tests/screenshots/screenshot_antag_icons_cyberpolice.png
rename to code/modules/unit_tests/screenshots/screenshot_antag_icons_glitch.png
diff --git a/icons/effects/bitrunning.dmi b/icons/effects/bitrunning.dmi
index bfdc7c63436..8efa429389c 100644
Binary files a/icons/effects/bitrunning.dmi and b/icons/effects/bitrunning.dmi differ
diff --git a/icons/effects/bitrunning_48.dmi b/icons/effects/bitrunning_48.dmi
new file mode 100644
index 00000000000..e7c5bf37d8e
Binary files /dev/null and b/icons/effects/bitrunning_48.dmi differ
diff --git a/icons/effects/bitrunning_64.dmi b/icons/effects/bitrunning_64.dmi
new file mode 100644
index 00000000000..397b4709c83
Binary files /dev/null and b/icons/effects/bitrunning_64.dmi differ
diff --git a/icons/mob/clothing/modsuit/mod_clothing.dmi b/icons/mob/clothing/modsuit/mod_clothing.dmi
index 537b1ffd3eb..793c14ce115 100644
Binary files a/icons/mob/clothing/modsuit/mod_clothing.dmi and b/icons/mob/clothing/modsuit/mod_clothing.dmi differ
diff --git a/icons/mob/nonhuman-player/netguardian.dmi b/icons/mob/nonhuman-player/netguardian.dmi
new file mode 100644
index 00000000000..057e7a066c2
Binary files /dev/null and b/icons/mob/nonhuman-player/netguardian.dmi differ
diff --git a/icons/obj/clothing/modsuit/mod_clothing.dmi b/icons/obj/clothing/modsuit/mod_clothing.dmi
index 7eb92f1c351..5070dbb145c 100644
Binary files a/icons/obj/clothing/modsuit/mod_clothing.dmi and b/icons/obj/clothing/modsuit/mod_clothing.dmi differ
diff --git a/icons/obj/machines/bitrunning.dmi b/icons/obj/machines/bitrunning.dmi
index b3f8ad63a6c..d61e910d195 100644
Binary files a/icons/obj/machines/bitrunning.dmi and b/icons/obj/machines/bitrunning.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index d3eac9691fd..ac2f084d8b3 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3423,13 +3423,18 @@
#include "code\modules\bitrunning\job.dm"
#include "code\modules\bitrunning\outfits.dm"
#include "code\modules\bitrunning\turfs.dm"
+#include "code\modules\bitrunning\antagonists\_parent.dm"
#include "code\modules\bitrunning\antagonists\cyber_police.dm"
+#include "code\modules\bitrunning\antagonists\cyber_tac.dm"
+#include "code\modules\bitrunning\antagonists\netguardian.dm"
#include "code\modules\bitrunning\components\avatar_connection.dm"
#include "code\modules\bitrunning\components\bitrunning_points.dm"
+#include "code\modules\bitrunning\components\glitch.dm"
#include "code\modules\bitrunning\components\netpod_healing.dm"
-#include "code\modules\bitrunning\components\virtual_elite_mob.dm"
+#include "code\modules\bitrunning\components\npc_friendly.dm"
#include "code\modules\bitrunning\objects\byteforge.dm"
#include "code\modules\bitrunning\objects\clothing.dm"
+#include "code\modules\bitrunning\objects\debug.dm"
#include "code\modules\bitrunning\objects\disks.dm"
#include "code\modules\bitrunning\objects\hololadder.dm"
#include "code\modules\bitrunning\objects\host_monitor.dm"
@@ -3441,13 +3446,18 @@
#include "code\modules\bitrunning\orders\disks.dm"
#include "code\modules\bitrunning\orders\flair.dm"
#include "code\modules\bitrunning\orders\tech.dm"
+#include "code\modules\bitrunning\server\_parent.dm"
#include "code\modules\bitrunning\server\loot.dm"
#include "code\modules\bitrunning\server\map_handling.dm"
#include "code\modules\bitrunning\server\obj_generation.dm"
-#include "code\modules\bitrunning\server\quantum_server.dm"
#include "code\modules\bitrunning\server\signal_handlers.dm"
#include "code\modules\bitrunning\server\threats.dm"
#include "code\modules\bitrunning\server\util.dm"
+#include "code\modules\bitrunning\util\digital_aura.dm"
+#include "code\modules\bitrunning\util\service_style.dm"
+#include "code\modules\bitrunning\util\virtual_megafauna.dm"
+#include "code\modules\bitrunning\util\virtual_mob.dm"
+#include "code\modules\bitrunning\virtual_domain\modular_mob_segment.dm"
#include "code\modules\bitrunning\virtual_domain\safehouses.dm"
#include "code\modules\bitrunning\virtual_domain\virtual_domain.dm"
#include "code\modules\bitrunning\virtual_domain\domains\ash_drake.dm"
diff --git a/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx b/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx
deleted file mode 100644
index 21d872ed6a0..00000000000
--- a/tgui/packages/tgui/interfaces/AntagInfoCyberAuth.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { useBackend } from '../backend';
-import { Divider, Section, Stack } from '../components';
-import { Window } from '../layouts';
-import { Objective } from './common/Objectives';
-
-type Info = {
- antag_name: string;
- objectives: Objective[];
-};
-
-const textStyles = {
- variable: {
- color: 'white',
- },
- danger: {
- color: 'red',
- },
-} as const;
-
-export const AntagInfoCyberAuth = (props, context) => {
- const { data } = useBackend(context);
- const { objectives = [] } = data;
-
- return (
-
-
-
-
- FN CYBER AUTHORITY UNIT (REF)
-
-
-
- You are a cyber authority unit.
-
-
-
- Your mission: Eliminate{' '}
- organic intruders to maintain the integrity of the system.
-
-
- Bitrunning is a crime. To
- assist your task, your program has been loaded with cutting edge{' '}
- martial arts skills.
-
-
- Ranged weaponry is{' '}
- forbidden. Ballistic
- defense is frowned upon. Style is paramount.
-
-
-
-
-
-
- const TARGETS ={' '}
-
-
- system.
- INTRUDERS;
-
-
- while TARGETS.LIFE !={' '}
- stat.DEAD
-
-
- action.
- KILL()
-
- cyber_authority_unit([0x70cf4020])
-
-
-
-
- );
-};
diff --git a/tgui/packages/tgui/interfaces/AntagInfoGlitch.tsx b/tgui/packages/tgui/interfaces/AntagInfoGlitch.tsx
new file mode 100644
index 00000000000..ca6ac70ccb3
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/AntagInfoGlitch.tsx
@@ -0,0 +1,109 @@
+import { useBackend } from '../backend';
+import { Divider, Section, Stack } from '../components';
+import { Window } from '../layouts';
+import { Objective } from './common/Objectives';
+
+type Data = {
+ antag_name: string;
+ objectives: Objective[];
+};
+
+const textStyles = {
+ variable: {
+ color: 'white',
+ },
+ danger: {
+ color: 'red',
+ },
+} as const;
+
+export const AntagInfoGlitch = (props, context) => {
+ const { data } = useBackend(context);
+ const { antag_name, objectives = [] } = data;
+
+ return (
+
+
+
+
+ FN TERMINATE_INTRUDERS (REF)
+
+
+ Initialize({antag_name})
+
+
+ Bitrunning is a crime. Your
+ mission: Eliminate{' '}
+ organic intruders to maintain the integrity of the system.
+
+
+
+
+
+
+
+ const TARGETS ={' '}
+
+
+ system.
+ INTRUDERS;
+
+
+ while TARGETS.LIFE !={' '}
+ stat.DEAD
+
+
+ action.
+ KILL()
+
+ terminate_intruders([0x70cf4020])
+
+
+
+
+ );
+};
+
+const SpecificInfo = (props, context) => {
+ const { data } = useBackend(context);
+ const { antag_name } = data;
+
+ switch (antag_name) {
+ case 'Cyber Police':
+ return (
+ <>
+
+ To assist your task, your program has been loaded with cutting edge{' '}
+ martial arts skills.
+
+
+ Ranged weaponry is forbidden.
+ Ballistic defense is frowned upon. Style is paramount.
+
+ >
+ );
+ case 'Cyber Tac':
+ return (
+ <>
+
+ You are an advanced combat unit. You have been outfitted with{' '}
+ lethal weaponry.
+
+
+ Terminate organic life at any
+ cost.
+
+ >
+ );
+ case 'NetGuardian Prime':
+ return (
+
+
+ ORGANIC LIFE MUST BE TERMINATED.
+
+
+ );
+ default:
+ return null;
+ }
+};
diff --git a/tgui/packages/tgui/interfaces/Orbit/constants.ts b/tgui/packages/tgui/interfaces/Orbit/constants.ts
index eb03e0ed921..b395a221769 100644
--- a/tgui/packages/tgui/interfaces/Orbit/constants.ts
+++ b/tgui/packages/tgui/interfaces/Orbit/constants.ts
@@ -4,7 +4,7 @@ export const ANTAG2COLOR = {
'Biohazards': 'brown',
'Bounty Hunters': 'yellow',
'CentCom': 'teal',
- 'Cyber Authority': 'teal',
+ 'Digital Anomalies': 'teal',
'Emergency Response Team': 'teal',
'Escaped Fugitives': 'orange',
'Xenomorph Infestation': 'violet',
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts
deleted file mode 100644
index 03fc370c1f4..00000000000
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cyberpolice.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Antagonist, Category } from '../base';
-import { multiline } from 'common/string';
-
-const CyberPolice: Antagonist = {
- key: 'cyberpolice',
- name: 'Cyber Police',
- description: [
- multiline`
- On the razor edge of the digital realm, the Cyber Authority has tasked
- enforcement officers with preserving system harmony.
- `,
-
- multiline`
- Using refined martial arts skills, terminate bitrunners in the virtual
- domain. Look snazzy while doing it. Cyber police are short lived combat
- roles that spawn from mobs (other than elites or players) in the virtual
- domain.
- `,
- ],
- category: Category.Midround,
-};
-
-export default CyberPolice;
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts
new file mode 100644
index 00000000000..89c7d19a2c2
--- /dev/null
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts
@@ -0,0 +1,20 @@
+import { Antagonist, Category } from '../base';
+import { multiline } from 'common/string';
+
+const Glitch: Antagonist = {
+ key: 'glitch',
+ name: 'Glitch',
+ description: [
+ multiline`
+ The virtual domain is a dangerous place for bitrunners. Make it so.
+ `,
+
+ multiline`
+ You are a short-term antagonist, a glitch in the system. Use martial arts \
+ and lethal weaponry to terminate organics.
+ `,
+ ],
+ category: Category.Midround,
+};
+
+export default Glitch;
diff --git a/tgui/packages/tgui/interfaces/QuantumConsole.tsx b/tgui/packages/tgui/interfaces/QuantumConsole.tsx
index 5e87e61bb46..c4a68c25d94 100644
--- a/tgui/packages/tgui/interfaces/QuantumConsole.tsx
+++ b/tgui/packages/tgui/interfaces/QuantumConsole.tsx
@@ -37,6 +37,7 @@ type Domain = {
desc: string;
difficulty: number;
id: string;
+ is_modular: BooleanLike;
name: string;
reward: number | string;
};
@@ -100,11 +101,19 @@ const AccessView = (props, context) => {
ready,
occupants,
points,
+ randomized,
} = data;
const sorted = available_domains.sort((a, b) => a.cost - b.cost);
- const selected = sorted.find(({ id }) => id === generated_domain);
+ let selected;
+ if (generated_domain) {
+ selected = randomized
+ ? '???'
+ : sorted.find(({ id }) => id === generated_domain)?.name;
+ } else {
+ selected = 'Nothing loaded';
+ }
return (
@@ -143,9 +152,7 @@ const AccessView = (props, context) => {
-
- {selected?.name ?? 'Nothing loaded'}
-
+ {selected}
{
const DomainEntry = (props: DomainEntryProps, context) => {
const {
- domain: { cost, desc, difficulty, id, name, reward },
+ domain: { cost, desc, difficulty, id, is_modular, name, reward },
} = props;
const { act, data } = useBackend(context);
if (!isConnected(data)) {
@@ -203,11 +210,14 @@ const DomainEntry = (props: DomainEntryProps, context) => {
<>
{name}
{difficulty === Difficulty.High && }
+ {!!is_modular && name !== '???' && }
>
}>
{desc}
+ {!!is_modular && ' (Modular)'}
+ {difficulty === Difficulty.High && ' (Hard)'}
@@ -316,7 +326,7 @@ const DisplayDetails = (props: DisplayDetailsProps, context) => {
const { amount = 0, color, icon = 'star' } = props;
if (amount === 0) {
- return No bandwidth;
+ return None;
}
if (typeof amount === 'string') {