diff --git a/_maps/virtual_domains/beach_bar.dmm b/_maps/virtual_domains/beach_bar.dmm index 9c4289ec6cc..408d3c0cda1 100644 --- a/_maps/virtual_domains/beach_bar.dmm +++ b/_maps/virtual_domains/beach_bar.dmm @@ -5,11 +5,6 @@ /obj/structure/sign/poster/contraband/have_a_puff/directional/west, /turf/open/floor/iron, /area/virtual_domain/powered) -"af" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/chair/stool/bar/directional/south, -/turf/open/floor/wood, -/area/virtual_domain/powered) "ag" = ( /turf/open/floor/carpet/red, /area/virtual_domain/powered) @@ -44,12 +39,6 @@ }, /turf/open/misc/beach/sand, /area/virtual_domain/powered) -"bm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/closed/wall/mineral/wood/nonmetal, -/area/virtual_domain/powered) "bC" = ( /obj/effect/turf_decal/sand, /mob/living/basic/crab{ @@ -72,7 +61,6 @@ name = "CondiMaster Neo"; pixel_x = -4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/wood, /area/virtual_domain/powered) "cb" = ( @@ -95,13 +83,6 @@ /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/water/beach, /area/virtual_domain/powered) -"cK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "db" = ( /obj/item/reagent_containers/cup/glass/bottle/beer/light, /obj/item/reagent_containers/cup/glass/bottle/beer/light, @@ -153,25 +134,12 @@ }, /turf/open/floor/sepia, /area/virtual_domain/powered) -"dG" = ( -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/virtual_domain/powered) -"dH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "dI" = ( /obj/machinery/light/directional/south, /turf/open/floor/wood, /area/virtual_domain/powered) "dZ" = ( /obj/structure/bookcase/random/reference, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, /turf/open/floor/wood, /area/virtual_domain/powered) "ed" = ( @@ -202,15 +170,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/pod/light, /area/virtual_domain/powered) -"fF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 1 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "gh" = ( /obj/structure/flora/bush/stalky/style_random, /obj/structure/flora/bush/sparsegrass/style_random, @@ -241,23 +200,9 @@ }, /turf/open/floor/wood, /area/virtual_domain/powered) -"hI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/virtual_domain/powered) -"hU" = ( -/turf/closed/mineral/random/volcanic, -/area/virtual_domain/powered) "iz" = ( /turf/closed/indestructible/binary, /area/lavaland/surface/outdoors/virtual_domain) -"iL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/wood, -/area/virtual_domain/powered) "iR" = ( /obj/structure/table, /obj/item/book/manual/wiki/barman_recipes, @@ -286,12 +231,6 @@ density = 1 }, /area/virtual_domain/powered) -"jW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/mineral/wood/nonmetal, -/area/virtual_domain/powered) "ke" = ( /obj/structure/marker_beacon/bronze, /turf/open/misc/asteroid/basalt/lava_land_surface/no_ruins, @@ -316,14 +255,6 @@ "kK" = ( /obj/structure/mirror/directional/west, /obj/structure/sink/kitchen/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/wood, -/area/virtual_domain/powered) -"kM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/chair/stool/bar/directional/south, /turf/open/floor/wood, /area/virtual_domain/powered) "kT" = ( @@ -371,9 +302,6 @@ /area/virtual_domain/powered) "nP" = ( /obj/item/stack/sheet/iron/fifty, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/virtual_domain/powered) @@ -417,8 +345,6 @@ /turf/open/floor/wood, /area/virtual_domain/powered) "qR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/effect/spawner/structure/window, /obj/structure/curtain, /turf/open/floor/plating, @@ -430,13 +356,6 @@ }, /turf/open/misc/beach/sand, /area/virtual_domain/powered) -"qZ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "rc" = ( /obj/machinery/light/directional/east, /turf/open/floor/wood, @@ -457,35 +376,11 @@ /obj/item/toy/seashell, /turf/open/misc/beach/sand, /area/virtual_domain/powered) -"sp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) -"sB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/pod/light, -/area/virtual_domain/powered) "sT" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, /area/virtual_domain/safehouse) -"tm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "tE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/door/airlock/public/glass{ name = "Resort Casino" }, @@ -493,9 +388,6 @@ /area/virtual_domain/powered) "tF" = ( /obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, /turf/open/floor/wood, /area/virtual_domain/powered) "tZ" = ( @@ -503,10 +395,9 @@ /turf/open/floor/wood, /area/virtual_domain/powered) "uc" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/wood, +/obj/machinery/light/small/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/misc/asteroid/basalt/lava_land_surface, /area/virtual_domain/powered) "ug" = ( /obj/structure/closet/secure_closet{ @@ -553,13 +444,11 @@ /obj/item/toy/dodgeball, /obj/item/toy/dodgeball, /obj/item/toy/dodgeball, -/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/virtual_domain/powered) "vp" = ( /obj/machinery/light/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/chair/stool/bar/directional/south, /turf/open/floor/wood, /area/virtual_domain/powered) @@ -567,34 +456,10 @@ /obj/machinery/oven/range, /turf/open/floor/wood, /area/virtual_domain/powered) -"vr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "vv" = ( /obj/structure/chair/stool/directional/south, /turf/open/misc/beach/sand, /area/virtual_domain/powered) -"vJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/pod/light, -/area/virtual_domain/powered) -"vM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "vN" = ( /obj/structure/table/wood, /obj/item/reagent_containers/pill/morphine, @@ -608,13 +473,6 @@ }, /turf/open/misc/beach/coast/corner, /area/virtual_domain/powered) -"vW" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/virtual_domain/powered) "wb" = ( /obj/structure/closet/crate/freezer{ name = "Cooler" @@ -645,15 +503,7 @@ "xb" = ( /turf/open/misc/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/virtual_domain) -"xh" = ( -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/wood, -/area/virtual_domain/powered) "xk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/structure/table/wood/poker, /obj/item/storage/dice, /obj/item/stack/spacecash/c1000, @@ -723,15 +573,6 @@ }, /turf/open/floor/carpet/red, /area/virtual_domain/powered) -"yn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/mineral/wood/nonmetal, -/area/virtual_domain/powered) "ys" = ( /obj/effect/turf_decal/sand, /obj/machinery/light/directional/east, @@ -760,12 +601,6 @@ dir = 8 }, /area/virtual_domain/powered) -"zt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/pod/light, -/area/virtual_domain/powered) "zw" = ( /obj/structure/punching_bag, /turf/open/floor/pod/dark, @@ -811,16 +646,8 @@ dir = 1 }, /obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/wood, /area/virtual_domain/powered) -"Bl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plating, -/area/virtual_domain/powered) "Br" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck/cas{ @@ -847,7 +674,6 @@ /turf/open/floor/wood, /area/virtual_domain/powered) "BJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, /turf/open/floor/wood, @@ -857,9 +683,6 @@ /area/virtual_domain/powered) "BQ" = ( /obj/machinery/seed_extractor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, /turf/open/floor/pod/light, /area/virtual_domain/powered) "Cb" = ( @@ -887,38 +710,19 @@ /obj/machinery/barsign/all_access, /turf/closed/wall/mineral/wood/nonmetal, /area/virtual_domain/powered) -"Dc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/wood, -/area/virtual_domain/powered) "Ds" = ( /obj/machinery/door/airlock/public/glass{ name = "Resort Lobby" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/wood, /area/virtual_domain/powered) "Dt" = ( /obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/sand, /turf/open/misc/beach/sand, /area/virtual_domain/powered) "DL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 5 - }, +/obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/mineral/sandstone, /area/virtual_domain/powered) "Em" = ( @@ -933,7 +737,6 @@ /area/virtual_domain/powered) "Et" = ( /obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/virtual_domain/powered) @@ -942,32 +745,17 @@ /turf/open/floor/wood, /area/virtual_domain/powered) "EC" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/structure/sign/warning/gas_mask/directional/west, /turf/open/floor/plating, /area/virtual_domain/powered) "EP" = ( /obj/machinery/light/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /obj/machinery/washing_machine, /turf/open/floor/wood, /area/virtual_domain/powered) -"EQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/open/floor/wood, -/area/virtual_domain/powered) "Fn" = ( /turf/closed/wall/mineral/sandstone, /area/virtual_domain/powered) -"FD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/closed/wall/mineral/wood/nonmetal, -/area/virtual_domain/powered) "FM" = ( /obj/effect/landmark/bitrunning/safehouse_spawn, /turf/template_noop, @@ -988,12 +776,6 @@ /obj/structure/mineral_door/wood, /turf/open/floor/wood, /area/virtual_domain/powered) -"Ge" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/virtual_domain/powered) "Gh" = ( /obj/effect/turf_decal/sand, /obj/structure/sign/poster/contraband/starkist/directional/north, @@ -1018,20 +800,10 @@ /area/virtual_domain/powered) "HF" = ( /obj/machinery/deepfryer, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/wood, -/area/virtual_domain/powered) -"HH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, /turf/open/floor/wood, /area/virtual_domain/powered) "Ia" = ( /obj/structure/urinal/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, /turf/open/floor/wood, /area/virtual_domain/powered) "Ii" = ( @@ -1043,10 +815,6 @@ /obj/effect/turf_decal/sand, /turf/open/floor/iron, /area/virtual_domain/powered) -"Is" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/layer4, -/turf/open/misc/asteroid/basalt/lava_land_surface, -/area/virtual_domain/powered) "Iv" = ( /obj/structure/table/wood, /obj/item/reagent_containers/condiment/peppermill, @@ -1067,11 +835,6 @@ /obj/effect/turf_decal/sand, /turf/open/floor/iron, /area/virtual_domain/powered) -"IT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "Jt" = ( /obj/item/reagent_containers/cup/glass/bottle/beer, /turf/open/misc/beach/sand, @@ -1088,32 +851,15 @@ /obj/item/reagent_containers/condiment/flour, /turf/open/floor/wood, /area/virtual_domain/powered) -"JS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "JY" = ( /obj/structure/flora/rock/style_random, /turf/open/misc/beach/sand, /area/virtual_domain/powered) "Kd" = ( /obj/structure/sign/warning/secure_area, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/closed/wall/mineral/sandstone, /area/virtual_domain/powered) "KH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 8 - }, /obj/structure/mineral_door/wood{ name = "Croupier's Booth" }, @@ -1147,27 +893,11 @@ /obj/structure/chair/sofa/left/brown, /turf/open/floor/wood, /area/virtual_domain/powered) -"Nh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/wood, -/area/virtual_domain/powered) -"Nq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 1 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "Nr" = ( /obj/machinery/light/directional/north, /turf/open/misc/beach/sand, /area/virtual_domain/powered) "Nw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/item/bedsheet/dorms{ dir = 4 }, @@ -1176,15 +906,6 @@ }, /turf/open/floor/wood, /area/virtual_domain/powered) -"NF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/misc/beach/sand, -/area/virtual_domain/powered) "NM" = ( /obj/structure/closet/crate/hydroponics, /obj/item/food/grown/ambrosia/vulgaris, @@ -1199,15 +920,6 @@ /obj/item/food/grown/ambrosia/vulgaris, /turf/open/floor/iron/grimy, /area/virtual_domain/powered) -"NO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/mineral/wood/nonmetal, -/area/virtual_domain/powered) "NX" = ( /obj/effect/landmark/bitrunning/loot_signal, /turf/open/floor/light/colour_cycle/dancefloor_a, @@ -1257,33 +969,10 @@ /obj/machinery/griddle, /turf/open/floor/wood, /area/virtual_domain/powered) -"Qj" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/turf/open/floor/iron/grimy, -/area/virtual_domain/powered) -"Qk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "Qu" = ( /obj/structure/curtain, /turf/open/floor/iron/white, /area/virtual_domain/powered) -"QB" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "QP" = ( /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/wood, @@ -1293,20 +982,12 @@ dir = 1 }, /obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/light/small/directional/east, /turf/open/floor/wood, /area/virtual_domain/powered) "Rx" = ( /turf/open/floor/iron/stairs/medium, /area/virtual_domain/powered) -"RB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/turf/open/floor/wood, -/area/virtual_domain/powered) "RL" = ( /obj/structure/closet/cabinet, /obj/item/storage/backpack/duffelbag, @@ -1349,15 +1030,6 @@ /obj/structure/fluff/beach_umbrella/security, /turf/open/misc/beach/sand, /area/virtual_domain/powered) -"TM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/closed/wall/mineral/sandstone, -/area/virtual_domain/powered) "TX" = ( /obj/structure/sign/poster/contraband/ambrosia_vulgaris/directional/north, /turf/open/floor/iron/grimy, @@ -1382,10 +1054,6 @@ /obj/machinery/processor, /turf/open/floor/wood, /area/virtual_domain/powered) -"Vf" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/virtual_domain/powered) "VA" = ( /obj/machinery/computer/slot_machine, /turf/open/floor/wood, @@ -1394,12 +1062,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/wood, /area/virtual_domain/powered) -"VO" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/pod/light, -/area/virtual_domain/powered) "VX" = ( /obj/structure/flora/bush/large/style_random, /turf/open/misc/beach/sand, @@ -1475,8 +1137,6 @@ /obj/machinery/door/airlock/maintenance{ name = "Supply Room" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating, /area/virtual_domain/powered) "YJ" = ( @@ -1906,24 +1566,24 @@ Al Al xb xb -xb +uc Al Al gl gl gl Al -TM -IT -IT -IT -IT -IT -IT -IT -IT -IT -DL +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn Al gl gl @@ -1951,12 +1611,12 @@ PM PM Fn Fn -hU -hU -hU -TM -IT -vM +Al +Al +Al +Fn +Fn +Fn Pc bf Bw @@ -1966,7 +1626,7 @@ Pg iR kG di -sp +Fn DL Al gl @@ -1988,16 +1648,16 @@ Al Al Al Al -hU +Al Fn pT LD LD Fn -TM +Fn Kd -IT -vM +Fn +Fn bQ cv wD @@ -2007,10 +1667,10 @@ Fn db TG TG -Vf -EQ +TG +TG AP -Qk +Fn Al gl ml @@ -2037,7 +1697,7 @@ LD pT LD EC -hI +LD pT PM wD @@ -2050,10 +1710,10 @@ Fn ug TG TG -iL -Nh +TG +TG QX -tm +Fn Al gl ml @@ -2080,7 +1740,7 @@ Fn yU LD Et -Bl +LD LD PM wD @@ -2096,7 +1756,7 @@ Mp uq fc Fn -QB +Fn Al gl gl @@ -2119,11 +1779,11 @@ ag kT Br TG -TM -IT -IT -IT -vM +Fn +Fn +Fn +Fn +Fn Fn Fn Gz @@ -2139,7 +1799,7 @@ kn kn kn Aa -QB +Fn Al gl gl @@ -2159,10 +1819,10 @@ Fn pC yX ag -kM +kT BJ -af -tm +kT +Fn as ab Ir @@ -2182,7 +1842,7 @@ lS lS lS uU -QB +Fn Al gl gl @@ -2204,8 +1864,8 @@ ag ag vp xk -EQ -cK +TG +Fn Ud Ud bC @@ -2225,7 +1885,7 @@ lS NX lS cz -QB +Fn Al gl gl @@ -2245,10 +1905,10 @@ Fn Mz TG TG -TM -IT +Fn +Fn KH -vM +Fn Zd wD wD @@ -2268,7 +1928,7 @@ lS lS lS uU -QB +Fn Al gl gl @@ -2284,13 +1944,13 @@ iz (19,1,1) = {" iz Al -TM -IT +Fn +Fn tE tE -vM +Fn uV -NF +wD wD wD wD @@ -2311,8 +1971,8 @@ uU uU uU uU -sp -DL +Fn +Fn gl gl gl @@ -2327,7 +1987,7 @@ iz (20,1,1) = {" iz Al -QB +Fn zU wD wD @@ -2355,7 +2015,7 @@ gJ gJ gJ oE -QB +Fn gl gl Al @@ -2370,13 +2030,13 @@ iz (21,1,1) = {" iz Al -QB +Fn wD wD Bw wD wD -FD +BM BM BM We @@ -2398,7 +2058,7 @@ Ww Ww cG dj -QB +Fn Al Al Al @@ -2413,13 +2073,13 @@ iz (22,1,1) = {" iz Al -sp -DL +Fn +Fn wD wD wD wD -yn +BM Zg VH TG @@ -2441,7 +2101,7 @@ Ww Ww Ww dj -QB +Fn Al iz iz @@ -2456,15 +2116,15 @@ iz (23,1,1) = {" iz Al -dG -QB +xb +Fn Cb wD JC wD -NO +BM HF -HH +TG JE BM aw @@ -2484,7 +2144,7 @@ Ww Ww Ww dj -QB +Fn Al iz pr @@ -2499,13 +2159,13 @@ xW (24,1,1) = {" iz Al -Is -Qk +xb +Fn wD Gz WX wD -jW +BM Em TG mq @@ -2527,7 +2187,7 @@ KZ KZ Ww pZ -QB +Fn Al iz pr @@ -2542,15 +2202,15 @@ xW (25,1,1) = {" iz Al -dG -QB +xb +Fn OK Gz LW wD -bm +BM bS -Dc +TG oP BM vq @@ -2570,7 +2230,7 @@ KZ gh Ww dj -QB +Fn Al iz pr @@ -2585,8 +2245,8 @@ xW (26,1,1) = {" iz Al -dG -QB +xb +Fn Sg wD wD @@ -2613,7 +2273,7 @@ Ww Ww Ww dj -QB +Fn Al iz pr @@ -2628,8 +2288,8 @@ xW (27,1,1) = {" iz Al -TM -vM +Fn +Fn Bw wD wD @@ -2656,7 +2316,7 @@ Ww Ww KZ dj -QB +Fn Al iz pr @@ -2671,7 +2331,7 @@ xW (28,1,1) = {" iz Al -QB +Fn Nr wD wD @@ -2699,7 +2359,7 @@ Ww Ww Ww pZ -QB +Fn Al iz pr @@ -2714,7 +2374,7 @@ xW (29,1,1) = {" iz Al -QB +Fn wD wD wD @@ -2742,7 +2402,7 @@ Bu Bu Bu Xt -QB +Fn Al iz pr @@ -2757,10 +2417,10 @@ xW (30,1,1) = {" iz Al -Nq +Fn Ds Ds -DL +Fn VX wD wD @@ -2783,9 +2443,9 @@ Fn Fn Fn Fn -TM -IT -vM +Fn +Fn +Fn Al iz pr @@ -2800,17 +2460,17 @@ xW (31,1,1) = {" iz Al -QB +Fn TG TG -sp -DL +Fn +Fn jl -TM -dH +Fn +Fn qR -qZ -DL +Fn +Fn WO wD Bw @@ -2826,7 +2486,7 @@ aE lq fr hk -QB +Fn Al Al Al @@ -2843,21 +2503,21 @@ xW (32,1,1) = {" iz Al -JS -Nh -HH +Fn TG -sp -IT -vM +TG +TG +Fn +Fn +Fn dZ OE Nw -sp -dH +Fn +Fn qR -qZ -DL +Fn +Fn wD wD wD @@ -2869,8 +2529,8 @@ Uq aE aE aE -sp -DL +Fn +Fn Al Al iz @@ -2886,21 +2546,21 @@ xW (33,1,1) = {" iz Al -fF +Fn EP -Dc +TG TG TG TG hG -uc TG -Ge +TG +TG Fn dZ OE Nw -QB +Fn Gz uV wD @@ -2909,12 +2569,12 @@ Ud xw xw xw -zt aE -sB +aE +aE OW -sp -DL +Fn +Fn Al iz pr @@ -2929,7 +2589,7 @@ xW (34,1,1) = {" iz Al -QB +Fn Xv TG hE @@ -2940,10 +2600,10 @@ Wg rc xJ Fn -uc TG -RB -QB +TG +dI +Fn wD wD Bw @@ -2952,12 +2612,12 @@ lB zw xw Uq -vJ +aE FQ -VO +aE aE jg -QB +Fn Al iz pr @@ -2972,7 +2632,7 @@ xW (35,1,1) = {" iz Al -QB +Fn Fn SB Fn @@ -2986,7 +2646,7 @@ Fn Wg TG RL -QB +Fn Gh Ud Ud @@ -2995,12 +2655,12 @@ FS aE aE aE -vJ +aE AI BQ aE NM -QB +Fn Al iz pr @@ -3015,7 +2675,7 @@ xW (36,1,1) = {" iz Al -JS +Fn kK TG Fn @@ -3029,21 +2689,21 @@ Fn Fn SY Fn -sp +Fn Ds Ds -vr +Fn YI -dH -IT -DL +Fn +Fn +Fn TX -vJ aE -VO +aE +aE aE uk -QB +Fn Al iz pr @@ -3058,7 +2718,7 @@ xW (37,1,1) = {" iz Al -fF +Fn Ia dI Fn @@ -3075,18 +2735,18 @@ TG TG TG TG -QB +Fn ve nP ed -QB +Fn +Cv Cv -Qj IM -vW Cv -TM -vM +Cv +Fn +Fn Al iz pr @@ -3101,34 +2761,34 @@ xW (38,1,1) = {" iz Al -QB +Fn tZ TG Qu Hs -TM -IT -DL +Fn +Fn +Fn TG rc TG TG TG tF -xh +rc TG TG -QB +Fn Yq aZ Fn -sp -IT -Qk -IT -tm -IT -vM +Fn +Fn +Fn +Fn +Fn +Fn +Fn Al Al iz @@ -3144,24 +2804,24 @@ xW (39,1,1) = {" iz Al -sp -IT -IT -IT -IT -vM -hU -sp -IT -IT -IT -IT -IT -tm -Qk -IT -IT -vM +Fn +Fn +Fn +Fn +Fn +Fn +Al +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn +Fn Fn Fn Fn diff --git a/_maps/virtual_domains/vaporwave.dmm b/_maps/virtual_domains/vaporwave.dmm index 6667692fdb2..984bbbe2914 100644 --- a/_maps/virtual_domains/vaporwave.dmm +++ b/_maps/virtual_domains/vaporwave.dmm @@ -1,8 +1,25 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/open/space/basic, -/area/space) -"b" = ( +"aA" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"bs" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"bF" = ( +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"cz" = ( +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"cL" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/glass/drinkingglass{ pixel_x = 6; @@ -15,108 +32,83 @@ }, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"c" = ( +"df" = ( /obj/effect/turf_decal/sand, -/turf/open/floor/iron/airless, +/turf/open/floor/iron/airless{ + icon_state = "stairs-l" + }, /area/ruin/space/has_grav/powered/virtual_domain) -"d" = ( -/obj/structure/window/spawner/directional/east, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"e" = ( -/turf/open/floor/holofloor/beach/coast, -/area/ruin/space/has_grav/powered/virtual_domain) -"f" = ( +"eF" = ( +/turf/closed/indestructible/binary, +/area/space) +"fx" = ( /obj/item/statuebust, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"g" = ( -/turf/closed/wall/rust, -/area/ruin/space/has_grav/powered/virtual_domain) -"h" = ( -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"i" = ( +"fQ" = ( /obj/structure/flora/tree/palm, -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"j" = ( -/obj/item/instrument/eguitar, /turf/open/floor/holofloor/beach, /area/ruin/space/has_grav/powered/virtual_domain) -"k" = ( -/obj/structure/window/spawner/directional/west, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"l" = ( -/obj/structure/closet/crate/bin, -/obj/effect/spawner/random/exotic/technology, -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"m" = ( -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"n" = ( -/obj/structure/chair/comfy/black{ - dir = 8 +"gM" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/sunglasses/big{ + name = "aesthetic sunglasses" }, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"o" = ( -/obj/structure/chair/comfy/black{ - dir = 4 - }, +"hN" = ( +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"il" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"iP" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/turf/template_noop, +/area/virtual_domain/safehouse) +"kj" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/closet/crate/secure/bitrunning/encrypted, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"p" = ( -/obj/machinery/light/small/directional/south, +"ku" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"kF" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "stairs-r" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"ll" = ( +/obj/structure/sign/poster/contraband/clown/directional/north, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"lu" = ( +/turf/closed/wall/rust, +/area/ruin/space/has_grav/powered/virtual_domain) +"lB" = ( +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/tank/internals/emergency_oxygen, +/turf/template_noop, +/area/virtual_domain/safehouse) +"lI" = ( /obj/structure/table/reinforced, /obj/machinery/chem_dispenser/drinks/beer/fullupgrade, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"q" = ( -/obj/structure/chair/comfy/black{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"r" = ( -/obj/effect/turf_decal/sand, -/obj/effect/turf_decal/sand, -/turf/open/floor/iron/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"s" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/table/reinforced, -/obj/item/storage/fancy/cigarettes/cigars/havana, -/obj/effect/spawner/random/special_lighter, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"t" = ( -/mob/living/basic/butterfly, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"u" = ( -/turf/closed/indestructible/binary, -/area/space) -"v" = ( -/obj/structure/closet/crate/bin, -/obj/item/tape/random, -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"w" = ( -/obj/structure/table/reinforced, -/obj/item/taperecorder, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"x" = ( +"qm" = ( +/obj/structure/flora/tree/palm, +/obj/machinery/light/directional/west, /turf/open/floor/holofloor/beach, /area/ruin/space/has_grav/powered/virtual_domain) -"y" = ( +"qu" = ( +/turf/open/floor/holofloor/beach/water, +/area/ruin/space/has_grav/powered/virtual_domain) +"rn" = ( /obj/structure/statue/sandstone/venus{ anchored = 1; dir = 4 @@ -126,7 +118,133 @@ initial_gas_mix = "TEMP=2.7" }, /area/ruin/space/has_grav/powered/virtual_domain) -"z" = ( +"xb" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"xp" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"xK" = ( +/turf/closed/wall, +/area/ruin/space/has_grav/powered/virtual_domain) +"ym" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/space) +"AX" = ( +/obj/effect/turf_decal/stripes/asteroid/line, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"Cq" = ( +/obj/item/instrument/eguitar, +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"CR" = ( +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Dk" = ( +/obj/structure/window/spawner/directional/east, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Es" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Fd" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/wall/rust, +/area/ruin/space/has_grav/powered/virtual_domain) +"Hf" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "recharge_floor_asteroid" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"HA" = ( +/turf/open/floor/holofloor/beach/coast, +/area/ruin/space/has_grav/powered/virtual_domain) +"HV" = ( +/obj/structure/chair/comfy/black{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"Jr" = ( +/obj/structure/window/spawner/directional/west, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"KO" = ( +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"KY" = ( +/obj/effect/turf_decal/sand, +/turf/open/floor/iron/airless{ + icon_state = "stairs-m" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"LG" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"LJ" = ( +/obj/structure/lattice, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"LP" = ( +/obj/structure/flora/tree/palm, +/obj/machinery/light/directional/east, +/turf/open/floor/holofloor/beach, +/area/ruin/space/has_grav/powered/virtual_domain) +"Nz" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table/reinforced, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/effect/spawner/random/entertainment/lighter, +/turf/open/floor/iron/vaporwave, +/area/ruin/space/has_grav/powered/virtual_domain) +"NT" = ( +/turf/open/space/basic, +/area/space) +"Qh" = ( +/obj/structure/closet/crate/bin, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"Uy" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"UE" = ( +/obj/effect/turf_decal/sand, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/virtual_domain) +"UV" = ( +/obj/structure/lattice, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"Vc" = ( +/obj/structure/flora/tree/palm, +/turf/open/misc/asteroid/airless, +/area/ruin/space/has_grav/powered/virtual_domain) +"XJ" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/hatch, +/turf/open/floor/pod/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Yo" = ( /obj/structure/statue/sandstone/venus{ anchored = 1; desc = "Ugh, this is merely an ugly amateurish replica of the other statue! The letters RIPGOAT are scribbled onto the base."; @@ -137,879 +255,763 @@ initial_gas_mix = "TEMP=2.7" }, /area/ruin/space/has_grav/powered/virtual_domain) -"A" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"B" = ( -/obj/effect/landmark/bitrunning/safehouse_spawn, -/turf/template_noop, -/area/virtual_domain/safehouse) -"C" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/turf/template_noop, -/area/virtual_domain/safehouse) -"D" = ( -/turf/template_noop, -/area/virtual_domain/safehouse) -"E" = ( -/turf/open/floor/holofloor/beach/water, -/area/ruin/space/has_grav/powered/virtual_domain) -"F" = ( -/obj/machinery/light/small/directional/south, +"YE" = ( +/mob/living/basic/butterfly, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"G" = ( -/obj/effect/turf_decal/sand, -/turf/open/floor/iron/airless{ - icon_state = "recharge_floor_asteroid" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"H" = ( -/obj/effect/turf_decal/sand, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"I" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) -"J" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/wall/rust, -/area/ruin/space/has_grav/powered/virtual_domain) -"K" = ( -/obj/effect/turf_decal/sand, -/turf/open/floor/iron/airless{ - icon_state = "stairs-l" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"L" = ( -/obj/effect/turf_decal/stripes/asteroid/line, -/obj/effect/turf_decal/sand/plating, -/turf/open/floor/plating{ - initial_gas_mix = "TEMP=2.7" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"M" = ( -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"N" = ( -/obj/item/tank/internals/emergency_oxygen, -/obj/item/tank/internals/emergency_oxygen, -/turf/template_noop, -/area/virtual_domain/safehouse) -"O" = ( -/obj/structure/lattice, -/turf/open/floor/plating/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"P" = ( -/obj/effect/turf_decal/sand, -/turf/open/floor/iron/airless{ - icon_state = "stairs-r" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"Q" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/closet/crate/secure/bitrunning/encrypted, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"R" = ( -/turf/closed/wall, -/area/ruin/space/has_grav/powered/virtual_domain) -"S" = ( +"ZI" = ( /obj/effect/spawner/random/structure/musician/piano/random_piano, /obj/structure/window/spawner/directional/west, /turf/open/floor/iron/vaporwave, /area/ruin/space/has_grav/powered/virtual_domain) -"T" = ( -/obj/structure/lattice, -/turf/open/misc/asteroid/airless, -/area/ruin/space/has_grav/powered/virtual_domain) -"U" = ( -/obj/effect/turf_decal/sand, -/turf/open/floor/iron/airless{ - icon_state = "stairs-m" - }, -/area/ruin/space/has_grav/powered/virtual_domain) -"V" = ( -/obj/structure/chair/stool/directional/west, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"W" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/glasses/sunglasses/big{ - name = "aesthetic sunglasses" - }, -/turf/open/floor/iron/vaporwave, -/area/ruin/space/has_grav/powered/virtual_domain) -"X" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/hatch, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"Y" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/template_noop, -/area/virtual_domain/safehouse) -"Z" = ( -/obj/structure/flora/tree/palm, -/turf/open/floor/holofloor/beach, -/area/ruin/space/has_grav/powered/virtual_domain) (1,1,1) = {" -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF "} (2,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (3,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (4,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (5,1,1) = {" -u -a -a -a -a -a -a -M -T -M -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +cz +LJ +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (6,1,1) = {" -u -a -a -a -a -a -M -M -T -M -M -T -M -M -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +cz +cz +LJ +cz +cz +LJ +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (7,1,1) = {" -u -a -a -a -a -M -M -M -O -T -M -O -M -M -M -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +cz +cz +cz +UV +LJ +cz +UV +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (8,1,1) = {" -u -a -a -a -a -M -R -R -g -g -g -R -g -H -M -M -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +cz +xK +xK +lu +lu +lu +xK +lu +UE +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (9,1,1) = {" -u -a -a -a -T -l -R -Z -x -Z -e -E -R -A -M -M -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +LJ +Qh +xK +fQ +hN +qm +HA +qu +xK +aA +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (10,1,1) = {" -u -a -a -a -T -O -g -S -k -k -k -k -R -m -i -M -M -a -a -a -D -D -D -D -D -B -a -u +eF +NT +NT +NT +LJ +UV +lu +ZI +Jr +Jr +Jr +Jr +xK +bF +Vc +cz +cz +NT +NT +NT +ku +ku +ku +ku +ku +Uy +NT +eF "} (11,1,1) = {" -u -a -a -a -M -M -R -V -h -h -f -F -R -z -r -H -M -a -a -a -D -C -C -C -D -D -a -u +eF +NT +NT +NT +cz +cz +xK +xb +CR +CR +fx +CR +xK +Yo +il +UE +cz +NT +NT +NT +ku +iP +iP +iP +ku +ku +NT +eF "} (12,1,1) = {" -u -a -a -a -M -M -R -h -h -h -h -h -R -G -K -r -M -a -a -a -D -D -D -D -D -D -a -u +eF +NT +NT +NT +cz +cz +xK +ll +CR +CR +CR +CR +xK +Hf +df +il +cz +NT +NT +NT +ku +ku +ku +ku +ku +ku +NT +eF "} (13,1,1) = {" -u -a -a -a -M -T -R -o -o -h -h -h -X -c -U -c -r -a -a -a -D -D -D -D -D -D -a -u +eF +NT +NT +NT +cz +LJ +xK +HV +Es +CR +CR +CR +XJ +bs +KY +bs +il +NT +NT +NT +ku +ku +ku +ku +ku +ku +NT +eF "} (14,1,1) = {" -u -a -a -a -M -T -g -w -W -h -h -b -R -G -P -c -r -a -a -a -D -D -D -D -D -D -a -u +eF +NT +NT +NT +cz +LJ +lu +xp +gM +CR +CR +cL +xK +Hf +kF +bs +il +NT +NT +NT +ku +ku +ku +ku +ku +ku +NT +eF "} (15,1,1) = {" -u -a -a -a -M -T -g -q -n -h -t -p -g -y -r -H -H -a -a -a -D -D -D -D -N -D -a -u +eF +NT +NT +NT +cz +LJ +lu +KO +KO +CR +YE +lI +lu +rn +il +UE +UE +NT +NT +NT +ku +ku +ku +ku +lB +ku +NT +eF "} (16,1,1) = {" -u -a -a -a -T -O -R -Q -d -d -d -s -R -L -i -M -M -a -a -a -D -D -D -D -D -Y -a -u +eF +NT +NT +NT +LJ +UV +xK +kj +Dk +Dk +Dk +Nz +xK +AX +Vc +cz +cz +NT +NT +NT +ku +ku +ku +ku +ku +LG +NT +eF "} (17,1,1) = {" -u -a -a -a -M -M -g -Z -j -Z -e -E -g -A -M -M -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +cz +cz +lu +fQ +Cq +LP +HA +qu +lu +aA +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (18,1,1) = {" -u -a -a -a -M -M -R -R -g -R -g -g -J -H -M -M -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +cz +cz +xK +xK +lu +xK +lu +lu +Fd +UE +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (19,1,1) = {" -u -a -a -a -a -M -M -M -O -T -v -O -M -M -M -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +cz +cz +cz +UV +LJ +Qh +UV +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (20,1,1) = {" -u -a -a -a -a -a -a -M -T -M -M -T -M -M -M -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +cz +LJ +cz +cz +LJ +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (21,1,1) = {" -u -a -a -a -a -a -a -a -I -M -M -M -M -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +ym +cz +cz +cz +cz +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (22,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (23,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (24,1,1) = {" -u -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -a -u +eF +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +NT +eF "} (25,1,1) = {" -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u -u +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF +eF "} diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 571f67f5b7d..cbd60fea4c9 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -892,6 +892,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai ///Trait given to a mob with a ckey currently in a temporary body, allowing people to know someone will re-enter the round later. #define TRAIT_MIND_TEMPORARILY_GONE "temporarily_gone" +/// Similar trait given to temporary bodies inhabited by players +#define TRAIT_TEMPORARY_BODY "temporary_body" + /// Trait given to mechs that can have orebox functionality on movement #define TRAIT_OREBOX_FUNCTIONAL "orebox_functional" diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 42dc8485d67..a9f125e8885 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -75,7 +75,10 @@ if (length(exclusive_roles) && !(creature.mind.assigned_role.title in exclusive_roles)) // Is the rule exclusive to their job? trimmed_list.Remove(creature) continue - if(HAS_TRAIT(creature, TRAIT_MIND_TEMPORARILY_GONE)) // are they in the vdom? + if(HAS_TRAIT(creature, TRAIT_MIND_TEMPORARILY_GONE)) // are they out of body? + trimmed_list.Remove(creature) + continue + if(HAS_TRAIT(creature, TRAIT_TEMPORARY_BODY)) // are they an avatar? trimmed_list.Remove(creature) continue return trimmed_list diff --git a/code/modules/bitrunning/components/avatar_connection.dm b/code/modules/bitrunning/components/avatar_connection.dm index cdd31afce71..5136241aa15 100644 --- a/code/modules/bitrunning/components/avatar_connection.dm +++ b/code/modules/bitrunning/components/avatar_connection.dm @@ -31,6 +31,7 @@ var/mob/living/avatar = parent avatar.key = old_body.key ADD_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) + ADD_TRAIT(avatar, TRAIT_TEMPORARY_BODY, REF(src)) connect_avatar_signals(avatar) RegisterSignal(pod, COMSIG_BITRUNNER_CROWBAR_ALERT, PROC_REF(on_netpod_crowbar)) @@ -262,6 +263,7 @@ old_mind.set_current(old_body) REMOVE_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) + REMOVE_TRAIT(avatar, TRAIT_TEMPORARY_BODY, REF(src)) old_mind = null old_body = null diff --git a/code/modules/bitrunning/objects/hololadder.dm b/code/modules/bitrunning/objects/hololadder.dm index dc425252668..906801f1fc0 100644 --- a/code/modules/bitrunning/objects/hololadder.dm +++ b/code/modules/bitrunning/objects/hololadder.dm @@ -29,8 +29,7 @@ if(isnull(user.mind)) return - var/datum/component/avatar_connection/connection = user.GetComponent(/datum/component/avatar_connection) - if(isnull(connection)) + if(!HAS_TRAIT(user, TRAIT_TEMPORARY_BODY)) balloon_alert(user, "no connection detected.") return diff --git a/code/modules/bitrunning/objects/netpod.dm b/code/modules/bitrunning/objects/netpod.dm index 8c8cd15af2f..088f354f314 100644 --- a/code/modules/bitrunning/objects/netpod.dm +++ b/code/modules/bitrunning/objects/netpod.dm @@ -397,11 +397,15 @@ /obj/machinery/netpod/proc/on_examine(datum/source, mob/examiner, list/examine_text) SIGNAL_HANDLER + 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_infoplain("It is currently unoccupied.") + examine_text += span_notice("It is currently unoccupied.") return - examine_text += span_infoplain("It is currently occupied by [occupant].") + 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.") /// On unbuckle or break, make sure the occupant ref is null diff --git a/code/modules/bitrunning/server/obj_generation.dm b/code/modules/bitrunning/server/obj_generation.dm index 00b205cfa9b..221308e0487 100644 --- a/code/modules/bitrunning/server/obj_generation.dm +++ b/code/modules/bitrunning/server/obj_generation.dm @@ -5,16 +5,30 @@ var/outfit_path = generated_domain.forced_outfit || netsuit var/datum/outfit/to_wear = new outfit_path() - to_wear.suit_store = null to_wear.belt = /obj/item/bitrunning_host_monitor to_wear.glasses = null - to_wear.suit = null to_wear.gloves = null + to_wear.l_hand = null + to_wear.l_pocket = null + to_wear.r_hand = null + to_wear.r_pocket = null + to_wear.suit = null + to_wear.suit_store = null avatar.equipOutfit(to_wear, visualsOnly = TRUE) + var/thing = avatar.get_active_held_item() + if(!isnull(thing)) + qdel(thing) + + thing = avatar.get_inactive_held_item() + if(!isnull(thing)) + qdel(thing) + var/obj/item/storage/backpack/bag = avatar.back if(istype(bag)) + QDEL_LIST(bag.contents) + bag.contents += list( new /obj/item/storage/box/survival, new /obj/item/storage/medkit/regular, diff --git a/code/modules/bitrunning/server/signal_handlers.dm b/code/modules/bitrunning/server/signal_handlers.dm index b6a79c7c3bf..b0464b351fa 100644 --- a/code/modules/bitrunning/server/signal_handlers.dm +++ b/code/modules/bitrunning/server/signal_handlers.dm @@ -32,6 +32,8 @@ /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]%.") diff --git a/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm b/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm index 3b846c85887..02bb91abc58 100644 --- a/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm +++ b/code/modules/bitrunning/virtual_domain/domains/ash_drake.dm @@ -12,7 +12,7 @@ /mob/living/simple_animal/hostile/megafauna/dragon/virtual_domain can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - health = 1400 + health = 1600 loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - maxHealth = 1400 + maxHealth = 1600 true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm b/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm index dcec15fe5c0..abf2e0fc5a9 100644 --- a/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm +++ b/code/modules/bitrunning/virtual_domain/domains/blood_drunk_miner.dm @@ -12,7 +12,7 @@ /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/virtual_domain can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - health = 1500 + health = 1600 loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - maxHealth = 1500 + maxHealth = 1600 true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm b/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm index fb2b8f74619..bede97177cb 100644 --- a/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm +++ b/code/modules/bitrunning/virtual_domain/domains/bubblegum.dm @@ -13,7 +13,7 @@ /mob/living/simple_animal/hostile/megafauna/bubblegum/virtual_domain can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - health = 1100 + health = 2000 loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - maxHealth = 1100 + maxHealth = 2000 true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/colossus.dm b/code/modules/bitrunning/virtual_domain/domains/colossus.dm index 3843311904e..35ba4eee0ca 100644 --- a/code/modules/bitrunning/virtual_domain/domains/colossus.dm +++ b/code/modules/bitrunning/virtual_domain/domains/colossus.dm @@ -13,6 +13,6 @@ can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - health = 1200 - maxHealth = 1200 + health = 2000 + maxHealth = 2000 true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/hierophant.dm b/code/modules/bitrunning/virtual_domain/domains/hierophant.dm index 352a68fca9a..142623f4f81 100644 --- a/code/modules/bitrunning/virtual_domain/domains/hierophant.dm +++ b/code/modules/bitrunning/virtual_domain/domains/hierophant.dm @@ -12,7 +12,7 @@ /mob/living/simple_animal/hostile/megafauna/hierophant/virtual_domain can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - health = 1600 + health = 1700 loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - maxHealth = 1600 + maxHealth = 1700 true_spawn = FALSE diff --git a/code/modules/bitrunning/virtual_domain/domains/legion.dm b/code/modules/bitrunning/virtual_domain/domains/legion.dm index 07fa6ef5894..f1ba146f380 100644 --- a/code/modules/bitrunning/virtual_domain/domains/legion.dm +++ b/code/modules/bitrunning/virtual_domain/domains/legion.dm @@ -12,9 +12,9 @@ /mob/living/simple_animal/hostile/megafauna/legion/virtual_domain can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - health = 1100 + health = 1500 loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - maxHealth = 1100 + maxHealth = 1500 true_spawn = FALSE -// You may be thinking, well, what about those mini-legions? They're not part of the created_atoms list +// You may be thinking, what about those mini-legions? They're not part of the initial created_atoms list diff --git a/code/modules/bitrunning/virtual_domain/domains/wendigo.dm b/code/modules/bitrunning/virtual_domain/domains/wendigo.dm index f9a1c12fa86..fcad3db6faf 100644 --- a/code/modules/bitrunning/virtual_domain/domains/wendigo.dm +++ b/code/modules/bitrunning/virtual_domain/domains/wendigo.dm @@ -13,7 +13,7 @@ can_be_cybercop = FALSE crusher_loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) guaranteed_butcher_results = list(/obj/item/wendigo_skull = 1) - health = 1500 + health = 2000 loot = list(/obj/structure/closet/crate/secure/bitrunning/encrypted) - maxHealth = 1500 + maxHealth = 2000 true_spawn = FALSE diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 72e5d5a821e..e5fd6e09507 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -100,6 +100,7 @@ #include "baseturfs.dm" #include "bespoke_id.dm" #include "binary_insert.dm" +#include "bitrunning.dm" #include "blindness.dm" #include "bloody_footprints.dm" #include "breath.dm" diff --git a/code/modules/unit_tests/bitrunning.dm b/code/modules/unit_tests/bitrunning.dm new file mode 100644 index 00000000000..69f16756c0a --- /dev/null +++ b/code/modules/unit_tests/bitrunning.dm @@ -0,0 +1,221 @@ +#define TEST_MAP "test_only" +#define TEST_MAP_EXPENSIVE "test_only_expensive" + +/// The qserver and qconsole should find each other on init +/datum/unit_test/qserver_find_console + +/datum/unit_test/qserver_find_console/Run() + var/obj/machinery/computer/quantum_console/console = allocate(/obj/machinery/computer/quantum_console) + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server, locate(run_loc_floor_bottom_left.x + 1, run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z)) + + TEST_ASSERT_NOTNULL(console.server_ref, "Quantum console did not set server_ref") + TEST_ASSERT_NOTNULL(server.console_ref, "Quantum server did not set console_ref") + + var/obj/machinery/computer/quantum_console/connected_console = server.console_ref.resolve() + var/obj/machinery/quantum_server/connected_server = console.server_ref.resolve() + TEST_ASSERT_EQUAL(connected_console, console, "Quantum console did not set server_ref correctly") + TEST_ASSERT_EQUAL(connected_server, server, "Quantum server did not set console_ref correctly") + +/// Tests the connection between avatar and pilot +/datum/unit_test/avatar_connection_basic + +/datum/unit_test/avatar_connection_basic/Run() + var/obj/machinery/netpod/pod = allocate(/obj/machinery/netpod) + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server, locate(run_loc_floor_bottom_left.x + 1, run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z)) + var/mob/living/carbon/human/labrat = allocate(/mob/living/carbon/human/consistent) + var/mob/living/carbon/human/target = allocate(/mob/living/carbon/human/consistent) + + labrat.mind_initialize() + labrat.mock_client = new() + + var/datum/weakref/initial_mind = labrat.mind + var/datum/weakref/labrat_mind_ref = WEAKREF(labrat.mind) + pod.occupant = labrat + + var/datum/component/avatar_connection/connection = target.AddComponent( \ + /datum/component/avatar_connection, \ + old_mind = labrat.mind, \ + old_body = labrat, \ + server = server, \ + pod = pod, \ + ) + + var/mob/living/carbon/human/labrat_resolved = connection.old_body_ref?.resolve() + TEST_ASSERT_EQUAL(labrat, labrat_resolved, "Wrong pilot ref") + + var/obj/machinery/netpod/connected_pod = connection.netpod_ref?.resolve() + TEST_ASSERT_EQUAL(connected_pod, pod, "Wrong netpod ref") + + target.apply_damage(10, damagetype = BURN, def_zone = BODY_ZONE_HEAD, blocked = 0, forced = TRUE) + TEST_ASSERT_EQUAL(labrat.getFireLoss(), 10, "Damage was not transferred to pilot") + TEST_ASSERT_NOTNULL(locate(/obj/item/bodypart/head) in labrat.get_damaged_bodyparts(burn = TRUE), "Pilot did not get damaged bodypart") + + connection.full_avatar_disconnect() + TEST_ASSERT_EQUAL(labrat.mind, initial_mind, "Should reconnect mind on full disconnect") + + for(var/i in 1 to 5) // so sick of this failing + target.apply_damage(500, damagetype = BURN, def_zone = BODY_ZONE_HEAD, blocked = 0, forced = TRUE, spread_damage = TRUE) + TEST_ASSERT_EQUAL(target.stat, DEAD, "Target should be very dead") + TEST_ASSERT_NOTEQUAL(labrat.stat, DEAD, "Pilot should be very alive") + +/// Gibbing specifically +/datum/unit_test/avatar_connection_gib + +/datum/unit_test/avatar_connection_gib/Run() + var/obj/machinery/netpod/pod = allocate(/obj/machinery/netpod) + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server, locate(run_loc_floor_bottom_left.x + 1, run_loc_floor_bottom_left.y, run_loc_floor_bottom_left.z)) + + var/mob/living/carbon/human/to_gib = allocate(/mob/living/carbon/human/consistent) + var/mob/living/carbon/human/pincushion = allocate(/mob/living/carbon/human/consistent) + pincushion.mind_initialize() + pincushion.mock_client = new() + var/datum/mind/initial_mind = pincushion.mind + pod.occupant = pincushion + + to_gib.AddComponent( \ + /datum/component/avatar_connection, \ + old_mind = pincushion.mind, \ + old_body = pincushion, \ + server = server, \ + pod = pod, \ + ) + + to_gib.gib() + TEST_ASSERT_EQUAL(initial_mind, pincushion.mind, "Pilot should have been transferred back on avatar gib") + TEST_ASSERT_EQUAL(pincushion.get_organ_loss(ORGAN_SLOT_BRAIN), pod.disconnect_damage, "Pilot should have taken brain dmg on gib disconnect") + +/// Tests the server's ability to generate a loot crate +/datum/unit_test/qserver_generate_rewards + +/datum/unit_test/qserver_generate_rewards/Run() + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server) + var/mob/living/carbon/human/labrat = allocate(/mob/living/carbon/human/consistent) + labrat.mind_initialize() + labrat.mock_client = new() + + var/turf/tiles = get_adjacent_open_turfs(server) + TEST_ASSERT_NOTEQUAL(length(tiles), 0, "Sanity: Did not find an open turf") + + server.cold_boot_map(labrat, map_key = TEST_MAP) + TEST_ASSERT_EQUAL(server.generated_domain.key, TEST_MAP, "Sanity: Did not load test map correctly") + + server.receive_turfs = tiles + TEST_ASSERT_EQUAL(server.generate_loot(), TRUE, "Should generate loot with a receive turf") + +/// Server side randomization of domains +/datum/unit_test/qserver_get_random_domain_id + +/datum/unit_test/qserver_get_random_domain_id/Run() + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server) + + var/id = server.get_random_domain_id() + TEST_ASSERT_NULL(id, "Shouldn't return a random domain with no points") + + server.points = 3 + id = server.get_random_domain_id() + TEST_ASSERT_NOTNULL(id, "Should return a random domain with points") + +/// Tests the ability to create hololadders and effectively, retries +/datum/unit_test/qserver_generate_hololadder + +/datum/unit_test/qserver_generate_hololadder/Run() + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server) + var/mob/living/carbon/human/labrat = allocate(/mob/living/carbon/human/consistent) + + server.generate_hololadder() + TEST_ASSERT_EQUAL(length(server.exit_turfs), 0, "Sanity: Shouldn't exist any exit turfs until boot") + TEST_ASSERT_EQUAL(server.retries_spent, 0, "Shouldn't create a hololadder without exit turfs") + + server.cold_boot_map(labrat, map_key = TEST_MAP) + TEST_ASSERT_NOTNULL(server.generated_domain, "Sanity: Did not load test map correctly") + TEST_ASSERT_EQUAL(length(server.exit_turfs), 3, "Should create 3 exit turfs") + + server.generate_hololadder() + TEST_ASSERT_EQUAL(server.retries_spent, 1, "Should've spent a retry") + + server.generate_hololadder() + server.generate_hololadder() + TEST_ASSERT_EQUAL(server.retries_spent, 3, "Should've spent 3 retries") + + server.generate_hololadder() + TEST_ASSERT_EQUAL(server.retries_spent, 3, "Shouldn't spend more than 3 retries") + + server.reset(fast = TRUE) + TEST_ASSERT_EQUAL(server.retries_spent, 0, "Should reset retries on reset()") + +/// Tests the calculate rewards function +/datum/unit_test/qserver_calculate_rewards + +/datum/unit_test/qserver_calculate_rewards/Run() + var/obj/machinery/quantum_server/server = allocate(/obj/machinery/quantum_server) + var/mob/living/carbon/human/labrat = allocate(/mob/living/carbon/human/consistent) + var/datum/weakref/labrat_mind_ref = WEAKREF(labrat.mind) + + server.cold_boot_map(labrat, map_key = TEST_MAP) + TEST_ASSERT_NOTNULL(server.generated_domain, "Sanity: Did not load test map correctly") + + var/rewards = server.calculate_rewards() + TEST_ASSERT_EQUAL(rewards, 1, "Should return base rewards when unmodded") + + server.domain_randomized = TRUE + rewards = server.calculate_rewards() + TEST_ASSERT_EQUAL(rewards, 1.2, "Should increase rewards when randomized") + + server.domain_randomized = FALSE + server.avatar_connection_refs += labrat_mind_ref + server.avatar_connection_refs += labrat_mind_ref + server.avatar_connection_refs += labrat_mind_ref + rewards = server.calculate_rewards() + var/totalA = ROUND_UP(rewards) + var/totalB = ROUND_UP(1 + server.multiplayer_bonus * 2) + TEST_ASSERT_EQUAL(totalA, totalB, "Should increase rewards with occupants") + + for(var/datum/stock_part/servo/servo in server.component_parts) + server.component_parts -= servo + server.component_parts += new /datum/stock_part/servo/tier4 + + server.RefreshParts() + server.avatar_connection_refs.Cut() + rewards = server.calculate_rewards() + TEST_ASSERT_EQUAL(rewards, 1.6, "Should increase rewards with modded servos") + +/// Ensures loot crates can spawn a proper number of items +/datum/unit_test/bitrunning_loot_crate_rewards + +/datum/unit_test/bitrunning_loot_crate_rewards/Run() + var/obj/structure/closet/crate/secure/bitrunning/decrypted/crate = allocate(/obj/structure/closet/crate/secure/bitrunning/decrypted) + + var/total = 0 + total = crate.calculate_loot(1, 1, 1) + TEST_ASSERT_NOTEQUAL(total, 0, "Should return a number") + + total = crate.calculate_loot(1, 1, 3) + TEST_ASSERT_NOTEQUAL(total, 0, "Should return a number") + + total = crate.calculate_loot(1, 1, 0.5) + TEST_ASSERT_NOTEQUAL(total, 0, "Should return a number") + + total = crate.calculate_loot(3, 4, 0.3) + TEST_ASSERT_NOTEQUAL(total, 0, "Should return a number") + + total = crate.calculate_loot(3, 3.2, 0.2) + TEST_ASSERT_NOTEQUAL(total, 0, "Should return a number") + +/// Ensures settings on vdoms are being set correctly +/datum/unit_test/bitrunner_vdom_settings + +/datum/unit_test/bitrunner_vdom_settings/Run() + var/obj/structure/closet/crate/secure/bitrunning/decrypted/crate = allocate(/obj/structure/closet/crate/secure/bitrunning/decrypted) + + for(var/path in subtypesof(/datum/lazy_template/virtual_domain)) + var/datum/lazy_template/virtual_domain/vdom = new path + TEST_ASSERT_NOTNULL(vdom.key, "[path] should have a key") + TEST_ASSERT_NOTNULL(vdom.map_name, "[path] should have a map name") + + if(!length(vdom.extra_loot)) + continue + + TEST_ASSERT_EQUAL(crate.spawn_loot(vdom.extra_loot), TRUE, "[path] didn't spawn loot. Extra loot should be an associative list") + +#undef TEST_MAP +#undef TEST_MAP_EXPENSIVE