diff --git a/_maps/virtual_domains/pirates.dmm b/_maps/virtual_domains/pirates.dmm index 18fd11f477a..5c0692f4efc 100644 --- a/_maps/virtual_domains/pirates.dmm +++ b/_maps/virtual_domains/pirates.dmm @@ -1,12 +1,16 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"af" = ( -/obj/structure/flora/rock/pile/style_2, -/turf/open/water/beach, -/area/virtual_domain/fullbright) "al" = ( /obj/structure/flora/bush/sunny, /turf/open/misc/grass, /area/virtual_domain/fullbright) +"aG" = ( +/obj/structure/flora/rock/pile, +/turf/open/water/beach, +/area/virtual_domain/protected_space/fullbright) +"aP" = ( +/obj/structure/flora/rock/pile/style_2, +/turf/open/water/beach, +/area/virtual_domain/protected_space/fullbright) "bb" = ( /obj/effect/turf_decal/weather/sand, /turf/open/floor/wood, @@ -16,39 +20,10 @@ dir = 10 }, /area/virtual_domain/fullbright) -"be" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/structure/flora/rock/pile, -/turf/open/water/beach, -/area/virtual_domain/fullbright) -"bI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/wood, -/obj/item/gun/energy/laser/musket{ - pixel_y = 7 - }, -/obj/item/gun/energy/laser/musket{ - pixel_y = 2 - }, -/obj/item/gun/energy/laser/musket{ - pixel_y = -3 - }, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) -"cr" = ( -/obj/item/stack/cannonball/shellball{ - pixel_x = 13; - pixel_y = 11 - }, -/obj/item/stack/cannonball{ - pixel_x = 9; - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) +"bw" = ( +/obj/structure/flora/rock/pile/style_3, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "cX" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/claymore/cutlass, @@ -64,16 +39,13 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) -"db" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/obj/effect/turf_decal/weather/dirt, -/turf/open/water/beach, -/area/virtual_domain/fullbright) "dc" = ( /turf/open/misc/beach/coast/corner, /area/virtual_domain/fullbright) +"dG" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "dN" = ( /obj/machinery/door/airlock/vault{ color = "#825427"; @@ -81,25 +53,21 @@ }, /turf/open/floor/wood/parquet, /area/virtual_domain) -"eO" = ( -/obj/structure/flora/rock/pile, -/turf/open/water/beach, -/area/virtual_domain/fullbright) -"eP" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/turf/open/misc/beach/coast{ - dir = 6 - }, -/area/virtual_domain/fullbright) "eS" = ( /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"fd" = ( -/obj/structure/flora/grass/jungle/b, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +"eT" = ( +/obj/item/stack/cannonball/shellball{ + pixel_x = 13; + pixel_y = 11 + }, +/obj/item/stack/cannonball{ + pixel_x = 9; + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "fh" = ( /obj/structure/flora/bush/sparsegrass, /obj/structure/flora/bush/lavendergrass, @@ -109,11 +77,9 @@ /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/misc/grass, /area/virtual_domain/fullbright) -"fw" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) +"fD" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain/protected_space/fullbright) "fR" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, @@ -143,25 +109,34 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) +"gJ" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/misc/beach/coast{ + dir = 6 + }, +/area/virtual_domain/protected_space) "gK" = ( /obj/structure/flora/bush/flowers_br/style_random, /obj/structure/flora/bush/ferny, /turf/open/misc/grass, /area/virtual_domain/fullbright) +"ha" = ( +/obj/structure/cannon{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "hb" = ( /turf/closed/indestructible/binary, /area/virtual_domain/fullbright) -"hn" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/turf/open/water/beach, -/area/virtual_domain/fullbright) -"hq" = ( -/obj/structure/closet/crate/grave, -/obj/structure/flora/grass/jungle/b, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +"iW" = ( +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "jp" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/misc/beach/sand, @@ -178,6 +153,12 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/misc/grass, /area/virtual_domain/fullbright) +"jZ" = ( +/obj/structure/flora/bush/sunny/style_3{ + pixel_y = 22 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "lF" = ( /obj/structure/table/wood, /obj/item/melee/energy/sword/pirate{ @@ -208,51 +189,45 @@ /obj/effect/decal/cleanable/oil/streak, /turf/open/floor/wood, /area/virtual_domain/fullbright) +"mj" = ( +/obj/structure/flora/rock/pile/jungle/large, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "mp" = ( /turf/open/misc/beach/coast{ dir = 4 }, /area/virtual_domain/fullbright) +"mv" = ( +/obj/structure/fermenting_barrel{ + pixel_x = 6; + pixel_y = 11 + }, +/obj/effect/turf_decal/weather/sand{ + dir = 9 + }, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate, +/turf/open/floor/wood{ + icon_state = "wood_large" + }, +/area/virtual_domain/fullbright) "mR" = ( /obj/machinery/smartfridge/drying_rack, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"nb" = ( -/obj/effect/turf_decal/weather/sand{ - dir = 9 - }, -/obj/structure/fermenting_barrel{ - pixel_x = 6; - pixel_y = 11 - }, -/obj/effect/mob_spawn/ghost_role/human/pirate/skeleton, -/turf/open/floor/wood{ - icon_state = "wood_large" - }, -/area/virtual_domain/fullbright) "nr" = ( /mob/living/basic/trooper/pirate/melee, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"nN" = ( +"ow" = ( /obj/structure/flora/rock, /turf/open/water/beach, -/area/virtual_domain/fullbright) -"oB" = ( -/obj/structure/flora/grass/jungle, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space/fullbright) "oL" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/bed/maint, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"oM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "pi" = ( /obj/structure/flora/rock/style_3, /turf/open/water/beach, @@ -261,14 +236,30 @@ /obj/structure/flora/bush/flowers_br/style_random, /turf/open/misc/grass, /area/virtual_domain/fullbright) -"qk" = ( -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +"pF" = ( +/turf/closed/mineral/random/jungle, +/area/virtual_domain/protected_space/fullbright) "qE" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/ordnance, /turf/open/floor/carpet/blue, /area/virtual_domain) +"qO" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/gun/energy/laser/musket{ + pixel_y = 7 + }, +/obj/item/gun/energy/laser/musket{ + pixel_y = 2 + }, +/obj/item/gun/energy/laser/musket{ + pixel_y = -3 + }, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "qS" = ( /obj/effect/decal/cleanable/ants, /turf/open/misc/grass, @@ -281,29 +272,6 @@ /mob/living/basic/trooper/pirate/ranged/space, /turf/open/floor/carpet/blue, /area/virtual_domain) -"rm" = ( -/obj/structure/closet/crate/goldcrate, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) -"rn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/wood, -/obj/item/flashlight/flare/torch{ - pixel_y = 10; - pixel_x = 7 - }, -/obj/item/reagent_containers/cup/bucket/wooden{ - pixel_y = -16; - pixel_x = 12 - }, -/obj/machinery/recharger{ - pixel_y = 6; - pixel_x = -5 - }, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "ru" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt/dust, @@ -315,6 +283,25 @@ /obj/item/toy/plush/beeplushie, /turf/open/floor/wood, /area/virtual_domain/fullbright) +"rE" = ( +/obj/structure/fermenting_barrel/gunpowder{ + pixel_x = -4; + pixel_y = 17 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) +"rZ" = ( +/obj/structure/flora/grass/jungle/b{ + pixel_x = -15; + pixel_y = 9 + }, +/obj/structure/flora/rock/pile/jungle/large/style_2{ + pixel_x = -3; + pixel_y = -1 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "sj" = ( /obj/effect/mine/explosive/light, /turf/open/misc/beach/sand, @@ -377,12 +364,10 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) -"vR" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, +"vB" = ( +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space/fullbright) "wj" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -391,17 +376,16 @@ /obj/effect/decal/cleanable/oil, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"wu" = ( -/obj/structure/flora/grass/jungle/b{ - pixel_x = -15; - pixel_y = 9 +"wE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/item/melee/sabre{ + pixel_y = 12; + pixel_x = -10 }, -/obj/structure/flora/rock/pile/jungle/large/style_2{ - pixel_x = -3; - pixel_y = -1 - }, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +/obj/item/gun/energy/laser/retro, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "wH" = ( /obj/structure/fluff/beach_umbrella{ pixel_x = -7; @@ -425,27 +409,19 @@ "xp" = ( /turf/open/water/beach, /area/virtual_domain/fullbright) -"zc" = ( -/obj/item/gun/energy/laser/hellgun{ - pixel_y = 10 - }, +"yB" = ( +/obj/structure/flora/rock/style_3, +/turf/open/water/beach, +/area/virtual_domain/protected_space/fullbright) +"yQ" = ( +/obj/structure/flora/grass/jungle/b, /turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space) "zj" = ( /obj/effect/mapping_helpers/burnt_floor, /obj/effect/decal/cleanable/garbage, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"zk" = ( -/obj/effect/turf_decal/siding/wood, -/obj/item/melee/sabre{ - pixel_y = 12; - pixel_x = -10 - }, -/obj/item/gun/energy/laser/retro, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "zR" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -466,12 +442,26 @@ }, /turf/open/misc/grass, /area/virtual_domain/fullbright) +"Am" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water/beach, +/area/virtual_domain/protected_space) "AB" = ( /obj/structure/headpike/bone{ pixel_y = 24 }, /turf/open/misc/beach/coast, /area/virtual_domain/fullbright) +"AF" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/item/storage/bag/money/dutchmen{ + pixel_y = 13 + }, +/obj/structure/rack/skeletal, +/turf/open/floor/wood/parquet, +/area/virtual_domain) "AP" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/wood/parquet, @@ -488,6 +478,9 @@ }, /turf/open/floor/wood, /area/virtual_domain/fullbright) +"BP" = ( +/turf/open/water/beach, +/area/virtual_domain/protected_space/fullbright) "BU" = ( /turf/open/floor/carpet/blue, /area/virtual_domain) @@ -495,15 +488,12 @@ /obj/structure/bonfire/prelit, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"BX" = ( -/obj/structure/flora/bush/sunny/style_3{ - pixel_y = 22 - }, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) "Ci" = ( /turf/closed/wall/mineral/wood/nonmetal, /area/virtual_domain/fullbright) +"Cr" = ( +/turf/open/water/beach, +/area/virtual_domain/protected_space) "Cu" = ( /obj/item/kirbyplants/organic/plant21{ pixel_x = -8 @@ -513,15 +503,15 @@ }, /turf/open/floor/wood/parquet, /area/virtual_domain) -"CL" = ( -/obj/structure/flora/rock/pile/jungle/large, +"CM" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/beach, +/area/virtual_domain/protected_space) +"DD" = ( +/obj/structure/flora/rock/pile/jungle/style_2, /turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) -"Dd" = ( -/obj/effect/turf_decal/siding/wood, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space) "DM" = ( /turf/closed/mineral/random/jungle, /area/virtual_domain/fullbright) @@ -546,6 +536,18 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) +"Fo" = ( +/obj/effect/turf_decal/weather/dirt, +/obj/structure/flora/rock/pile, +/turf/open/water/beach, +/area/virtual_domain/protected_space) +"Fq" = ( +/obj/structure/flora/rock/pile/jungle/style_3{ + pixel_x = -15; + pixel_y = -4 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "FP" = ( /obj/effect/turf_decal/weather/sand{ dir = 4 @@ -556,14 +558,33 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) -"Gl" = ( -/obj/structure/flora/rock/pile/style_3, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +"Gj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/flashlight/flare/torch{ + pixel_y = 10; + pixel_x = 7 + }, +/obj/item/reagent_containers/cup/bucket/wooden{ + pixel_y = -16; + pixel_x = 12 + }, +/obj/machinery/recharger{ + pixel_y = 6; + pixel_x = -5 + }, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "Gy" = ( /obj/structure/flora/rock/style_2, /turf/open/water/beach, /area/virtual_domain/fullbright) +"GH" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "Hn" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/wall/mineral/wood/nonmetal, @@ -575,16 +596,17 @@ }, /turf/open/floor/carpet/blue, /area/virtual_domain) -"ID" = ( -/obj/effect/landmark/bitrunning/cache_spawn, +"Iv" = ( +/obj/structure/closet/crate/goldcrate, /turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) -"IW" = ( +/area/virtual_domain/protected_space) +"IS" = ( /obj/effect/turf_decal/weather/dirt{ - dir = 5 + dir = 1 }, +/obj/effect/turf_decal/weather/dirt, /turf/open/water/beach, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space) "Jf" = ( /obj/structure/flora/bush/sparsegrass, /turf/open/misc/grass, @@ -623,25 +645,10 @@ /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/carpet/blue, /area/virtual_domain) -"KV" = ( -/obj/structure/flora/rock/pile/jungle/style_3{ - pixel_x = -15; - pixel_y = -4 - }, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) "LC" = ( /mob/living/basic/trooper/pirate/melee, /turf/open/misc/grass, /area/virtual_domain/fullbright) -"LK" = ( -/obj/structure/fermenting_barrel/gunpowder{ - pixel_x = -4; - pixel_y = 17 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "LP" = ( /obj/effect/turf_decal/weather/sand{ dir = 5 @@ -664,6 +671,12 @@ }, /turf/open/floor/wood, /area/virtual_domain/fullbright) +"NB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "NE" = ( /obj/effect/mob_spawn/corpse/human/damaged, /turf/open/water/beach, @@ -680,17 +693,11 @@ icon_state = "wood_large" }, /area/virtual_domain/fullbright) -"NU" = ( -/obj/structure/flora/grass/jungle/b/style_random{ - pixel_x = -13; - pixel_y = 18 - }, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) -"Oi" = ( -/obj/effect/mob_spawn/corpse/human/pirate, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) +"Oj" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "Ov" = ( /turf/open/misc/beach/coast{ dir = 6 @@ -703,37 +710,33 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/carpet/blue, /area/virtual_domain) -"Oz" = ( -/obj/structure/flora/rock/pile/jungle/style_2, -/turf/open/misc/dirt/jungle, -/area/virtual_domain/fullbright) "OD" = ( /obj/effect/turf_decal/weather/sand{ dir = 6 }, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"OW" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 1 - }, -/turf/open/water/beach, -/area/virtual_domain/fullbright) "Qc" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood{ icon_state = "wood_large" }, /area/virtual_domain/fullbright) -"QF" = ( +"Qi" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/water/beach, +/area/virtual_domain/protected_space) +"QA" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) +"QH" = ( /obj/effect/turf_decal/weather/dirt, /turf/open/water/beach, -/area/virtual_domain/fullbright) -"QG" = ( -/obj/effect/turf_decal/weather/dirt, -/obj/effect/turf_decal/weather/dirt, -/turf/open/water/beach, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space) "QN" = ( /obj/structure/barricade/sandbags, /obj/effect/turf_decal/weather/sand{ @@ -751,37 +754,11 @@ /obj/effect/mob_spawn/corpse/human/pirate/melee, /turf/open/water/beach, /area/virtual_domain/fullbright) -"QX" = ( -/obj/item/clothing/suit/armor/militia{ - pixel_x = -5; - pixel_y = 12 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/item/clothing/suit/armor/militia{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/clothing/suit/armor/militia{ - pixel_x = -5; - pixel_y = -3 - }, -/obj/item/clothing/head/costume/fancy{ - pixel_x = 6; - pixel_y = 12 - }, -/obj/item/clothing/head/costume/fancy{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/clothing/head/hats/coordinator{ - pixel_x = 8; - pixel_y = -5 - }, -/obj/structure/closet/cabinet, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) +"Rr" = ( +/obj/structure/closet/crate/grave, +/obj/structure/flora/grass/jungle/b, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "RJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -842,26 +819,66 @@ /obj/structure/bookcase/random/fiction, /turf/open/floor/wood/parquet, /area/virtual_domain) -"Ul" = ( -/turf/closed/wall/mineral/wood/nonmetal, -/area/virtual_domain) -"Uw" = ( -/obj/structure/cannon{ - dir = 1 +"Tr" = ( +/obj/item/clothing/suit/armor/militia{ + pixel_x = -5; + pixel_y = 12 }, /obj/effect/turf_decal/siding/wood{ dir = 1 }, +/obj/item/clothing/suit/armor/militia{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/clothing/suit/armor/militia{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/clothing/head/costume/fancy{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/clothing/head/costume/fancy{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/head/hats/coordinator{ + pixel_x = 8; + pixel_y = -5 + }, +/obj/structure/closet/cabinet, /turf/open/floor/wood, -/area/virtual_domain/fullbright) +/area/virtual_domain/protected_space/fullbright) +"Ua" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/turf/open/water/beach, +/area/virtual_domain/protected_space) +"Uf" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/protected_space/fullbright) +"Ul" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/virtual_domain) +"UL" = ( +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) +"UN" = ( +/obj/effect/mob_spawn/corpse/human/pirate, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) +"Vm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/virtual_domain/protected_space/fullbright) "Vx" = ( /obj/structure/flora/rock/style_4, /turf/open/water/beach, /area/virtual_domain/fullbright) -"VE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "VG" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -890,13 +907,15 @@ }, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"Wx" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "WW" = ( /turf/template_noop, /area/virtual_domain/fullbright) +"Xc" = ( +/obj/item/gun/energy/laser/hellgun{ + pixel_y = 10 + }, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) "Xn" = ( /obj/modular_map_root/safehouse{ key = "wood" @@ -922,9 +941,6 @@ /obj/effect/decal/cleanable/blood/gibs/old, /turf/open/misc/beach/sand, /area/virtual_domain/fullbright) -"Yy" = ( -/turf/open/floor/wood, -/area/virtual_domain/fullbright) "YJ" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -970,14 +986,17 @@ }, /turf/open/floor/wood, /area/virtual_domain/fullbright) -"ZF" = ( -/obj/effect/mapping_helpers/burnt_floor, -/obj/item/storage/bag/money/dutchmen{ - pixel_y = 13 +"ZM" = ( +/obj/structure/flora/grass/jungle/b/style_random{ + pixel_x = -13; + pixel_y = 18 }, -/obj/structure/rack/skeletal, -/turf/open/floor/wood/parquet, -/area/virtual_domain) +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) +"ZY" = ( +/obj/structure/flora/grass/jungle, +/turf/open/misc/dirt/jungle, +/area/virtual_domain/protected_space) (1,1,1) = {" xg @@ -1226,10 +1245,10 @@ DM hb hb hb -hb -hb -hb -hb +Uf +Uf +Uf +Uf xg xg xg @@ -1270,10 +1289,10 @@ DM hb hb DM -DM -DM -DM -hb +pF +pF +pF +Uf xg xg xg @@ -1314,10 +1333,10 @@ sj hb hb DM -DM -DM -DM -hb +pF +pF +pF +Uf xg xg xg @@ -1358,13 +1377,13 @@ mp Ov xp xp -xp -xp -xp -hb -hb -hb -hb +BP +BP +BP +Uf +Uf +Uf +Uf xg xg xg @@ -1402,15 +1421,15 @@ xp xp xp NE -xp -xp -xp -xp -xp -Ci -hb -hb -hb +BP +BP +BP +BP +BP +fD +Uf +Uf +Uf xg xg xg @@ -1446,15 +1465,15 @@ xp xp xp Gy -xp -xp -xp -xp -xp -Ci -bI -VE -hb +BP +BP +BP +BP +BP +fD +qO +vB +Uf hb hb hb @@ -1490,15 +1509,15 @@ xp xp xp xp -xp -xp -xp -xp -nN -Ci -rn -VE -fw +BP +BP +BP +BP +ow +fD +Gj +vB +Oj ub ub ub @@ -1534,15 +1553,15 @@ xp xp xp xp -xp -xp -xp -xp -pi -Ci -QX -Yy -zk +BP +BP +BP +BP +yB +fD +Tr +iW +wE ub ub ub @@ -1578,15 +1597,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -Ci -Ci -Yy -Dd +BP +BP +BP +BP +BP +fD +fD +iW +QA ub ub ub @@ -1600,7 +1619,7 @@ hb Ul tw To -ZF +AF tH Ul nr @@ -1622,15 +1641,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -Wx +BP +BP +BP +BP +BP +BP +BP +BP +dG ub ub ub @@ -1666,15 +1685,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -xp +BP +BP +BP +BP +BP +BP +BP +BP +BP ub ub ub @@ -1710,15 +1729,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -xp +BP +BP +BP +BP +BP +BP +BP +BP +BP ub ub ub @@ -1736,7 +1755,7 @@ BU td Ul Ci -nb +mv Mf gx tQ @@ -1754,15 +1773,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -Wx -xp +BP +BP +BP +BP +BP +BP +BP +dG +BP ub ub ub @@ -1798,15 +1817,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -Ci -fw -xp +BP +BP +BP +BP +BP +BP +fD +Oj +BP xp xp xp @@ -1842,15 +1861,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -Uw -cr -vR +BP +BP +BP +BP +BP +BP +ha +eT +Vm xp xp xp @@ -1886,15 +1905,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -af -Ci -LK -fw +BP +BP +BP +BP +BP +aP +fD +rE +Oj xp xp xp @@ -1930,15 +1949,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -oM -VE -eO +BP +BP +BP +BP +BP +BP +NB +vB +aG xp xp xp @@ -1974,15 +1993,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -xp +BP +BP +BP +BP +BP +BP +BP +BP +BP xp xp xp @@ -2018,15 +2037,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -xp +BP +BP +BP +BP +BP +BP +BP +BP +BP xp xp xp @@ -2062,15 +2081,15 @@ xp xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -xp +BP +BP +BP +BP +BP +BP +BP +BP +BP xp xp DM @@ -2097,8 +2116,8 @@ DM DM DM DM -eP -xp +gJ +Cr DM DM hb @@ -2106,15 +2125,15 @@ hb xp xp xp -xp -xp -xp -xp -xp -xp -xp -xp -xp +BP +BP +BP +BP +BP +BP +BP +BP +BP hb DM DM @@ -2141,8 +2160,8 @@ DM DM DM DM -fd -OW +yQ +Am DM DM DM @@ -2150,15 +2169,15 @@ hb hb xp xp -xp -xp -xp -xp -xp -xp -xp -xp -hb +BP +BP +BP +BP +BP +BP +BP +BP +Uf hb DM DM @@ -2185,8 +2204,8 @@ DM DM DM DM -KV -OW +Fq +Am DM DM DM @@ -2194,15 +2213,15 @@ DM hb hb hb -hb -xp -xp -xp -xp -xp -xp -hb -hb +Uf +BP +BP +BP +BP +BP +BP +Uf +Uf hb hb hb @@ -2229,23 +2248,23 @@ DM DM DM DM -qk -IW -xp +UL +Qi +Cr DM DM DM DM DM DM -hb -hb -hb -hb -hb -hb -hb -hb +Uf +Uf +Uf +Uf +Uf +Uf +Uf +Uf xg xg xg @@ -2273,11 +2292,11 @@ DM DM DM DM -Gl -qk -IW -hn -xp +bw +UL +Qi +Ua +Cr DM DM DM @@ -2318,13 +2337,13 @@ DM DM DM DM -qk -qk -Oi -OW -xp -be -Oz +UL +UL +UN +Am +Cr +Fo +DD DM DM DM @@ -2363,13 +2382,13 @@ DM DM DM DM -qk -CL -IW -xp -QG -qk -rm +UL +mj +Qi +Cr +CM +UL +Iv DM DM DM @@ -2407,14 +2426,14 @@ DM DM DM DM -oB -qk -wu -IW -QF -BX -qk -rm +ZY +UL +rZ +Qi +QH +jZ +UL +Iv DM DM hb @@ -2452,13 +2471,13 @@ DM DM DM DM -qk -qk -NU -db -hq -zc -ID +UL +UL +ZM +IS +Rr +Xc +GH DM DM hb diff --git a/_maps/virtual_domains/psyker_zombies.dmm b/_maps/virtual_domains/psyker_zombies.dmm index a20e260bbcf..1d4307ebdce 100644 --- a/_maps/virtual_domains/psyker_zombies.dmm +++ b/_maps/virtual_domains/psyker_zombies.dmm @@ -19,7 +19,7 @@ "h" = ( /obj/structure/rack, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/protected_space) "i" = ( /obj/structure/sign/warning/directional/east, /turf/open/chasm, @@ -61,10 +61,20 @@ /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/indestructible/dark, /area/ruin/space/has_grav/powered/virtual_domain) +"D" = ( +/turf/open/indestructible/dark, +/area/virtual_domain/protected_space) "F" = ( /obj/structure/mystery_box/guns, /turf/open/indestructible/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/protected_space) +"I" = ( +/turf/closed/indestructible/binary, +/area/virtual_domain/protected_space) +"J" = ( +/obj/machinery/door/airlock/abductor, +/turf/open/indestructible/dark, +/area/virtual_domain/protected_space) "K" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/closed/indestructible/binary, @@ -530,10 +540,10 @@ Y Y a Y -a -a -a -a +I +I +I +I a a a @@ -557,10 +567,10 @@ Y Y Y Y -a +I h -Y -Y +D +D t t t @@ -584,10 +594,10 @@ X Y Y Y -a +I F -Y -Y +D +D t t t @@ -611,10 +621,10 @@ a Y Y Y -a -Y -Y -Y +I +D +D +D t t t @@ -638,10 +648,10 @@ Y Y Y Y -T -Y -Y -Y +J +D +D +D t t t @@ -665,10 +675,10 @@ Y R Y Y -a -Y -Y -Y +I +D +D +D t t t @@ -692,10 +702,10 @@ Y Y Y Y -a +I F -Y -Y +D +D t t t @@ -719,10 +729,10 @@ a a Y Y -a +I h -Y -Y +D +D t t t @@ -746,10 +756,10 @@ a a a Y -a -a -a -a +I +I +I +I a a a diff --git a/_maps/virtual_domains/syndicate_assault.dmm b/_maps/virtual_domains/syndicate_assault.dmm index 5152cfcb503..a40f7c743ef 100644 --- a/_maps/virtual_domains/syndicate_assault.dmm +++ b/_maps/virtual_domains/syndicate_assault.dmm @@ -12,25 +12,23 @@ /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"aN" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/iron/fifty, -/obj/item/stack/sheet/plasteel/twenty, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 50 - }, -/obj/item/stack/sheet/glass/fifty, -/obj/item/stack/rods/fifty, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) "aO" = ( /obj/machinery/recharge_station, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"bg" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/silver{ + amount = 30 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "bh" = ( /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/powered/virtual_domain) @@ -42,9 +40,6 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"bG" = ( -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) "cc" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -52,10 +47,12 @@ /obj/effect/spawner/random/clothing/costume, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"cj" = ( -/obj/structure/transit_tube/crossing, -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +"cd" = ( +/obj/structure/table/reinforced, +/obj/item/gun/ballistic/automatic/l6_saw/unrestricted, +/obj/item/ammo_box/magazine/m7mm, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "ct" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -97,6 +94,10 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"cA" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain/protected_space) "cB" = ( /obj/machinery/camera/xray{ c_tag = "Medbay"; @@ -110,12 +111,6 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/powered/virtual_domain) -"cZ" = ( -/obj/structure/table/reinforced, -/obj/item/gun/ballistic/automatic/l6_saw/unrestricted, -/obj/item/ammo_box/magazine/m7mm, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "da" = ( /obj/machinery/stasis, /turf/open/floor/plastic, @@ -136,6 +131,9 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"dx" = ( +/turf/closed/mineral/random, +/area/virtual_domain/protected_space) "dz" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/mineral/plastitanium/red, @@ -149,34 +147,14 @@ /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"eB" = ( -/obj/machinery/camera/xray{ - c_tag = "Cargo pod"; - dir = 9; - network = list("fsci"); - screen_loc = "" - }, -/obj/structure/closet, -/obj/item/clothing/under/syndicate/tacticool, -/obj/item/clothing/under/syndicate/tacticool, -/obj/item/clothing/under/syndicate/tacticool, -/obj/item/card/id/advanced/black/syndicate_command/crew_id, -/obj/item/card/id/advanced/black/syndicate_command/crew_id, -/obj/item/card/id/advanced/black/syndicate_command/crew_id, +"ec" = ( +/obj/structure/tank_dispenser/oxygen, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"fc" = ( -/obj/structure/filingcabinet, -/obj/machinery/door/window/left/directional/west{ - name = "Syndicate Interior Door"; - req_access = list("syndicate") - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"fd" = ( -/obj/structure/transit_tube/crossing, -/turf/open/space/basic, -/area/space) +/area/virtual_domain/protected_space) +"fz" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain/protected_space) "fG" = ( /obj/structure/toilet{ dir = 1 @@ -192,17 +170,12 @@ /obj/machinery/atmospherics/components/unary/vent_pump, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"gw" = ( -/obj/machinery/door/window/left/directional/north{ - name = "Spare Equipment"; - req_access = list("syndicate") - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) -"gD" = ( -/obj/effect/mob_spawn/ghost_role/human/syndicatespace, +"gN" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/regular, +/obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/protected_space) "hg" = ( /obj/structure/window/reinforced/plasma/plastitanium, /obj/machinery/door/poddoor{ @@ -225,6 +198,9 @@ /obj/structure/table/reinforced, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"if" = ( +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "ip" = ( /obj/effect/landmark/bitrunning/mob_segment, /turf/open/floor/plastic, @@ -233,18 +209,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"iL" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) -"iU" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/melee/energy/sword/saber/red, -/obj/machinery/light/small/directional/north, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) "iW" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ @@ -266,6 +230,13 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"ja" = ( +/obj/machinery/door/window/left/directional/north{ + name = "Spare Equipment"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) "jl" = ( /obj/structure/bodycontainer/crematorium{ id = "fscremate" @@ -310,6 +281,21 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"kD" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/disk/surgery/forgottenship, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) +"kF" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/clothing/head/helmet/space/syndicate/black/engie, +/obj/item/clothing/suit/space/syndicate/black/engie, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "kI" = ( /obj/machinery/computer/atmos_alert{ dir = 8 @@ -322,12 +308,6 @@ }, /turf/template_noop, /area/virtual_domain/safehouse) -"li" = ( -/obj/structure/transit_tube/station/dispenser/reverse{ - dir = 4 - }, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "ln" = ( /obj/machinery/turretid{ control_area = "/area/ruin/space/has_grav/syndicate_forgotten_ship"; @@ -352,6 +332,9 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"mm" = ( +/turf/closed/indestructible/syndicate, +/area/virtual_domain/protected_space) "mo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 8 @@ -365,12 +348,39 @@ /obj/item/wrench, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) +"mW" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Syndicate Ship Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/obj/structure/cable, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/virtual_domain/protected_space) +"mY" = ( +/obj/structure/table/reinforced, +/obj/item/dualsaber/green, +/obj/machinery/light/small/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "nk" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/effect/mapping_helpers/apc/syndicate_access, /obj/structure/cable, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"nn" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/sheet/mineral/titanium{ + amount = 40 + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 15 + }, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "nB" = ( /turf/closed/mineral/random, /area/space) @@ -433,15 +443,19 @@ "qx" = ( /turf/open/space/basic, /area/space) -"qU" = ( -/obj/structure/sign/poster/contraband/c20r, -/turf/closed/wall/r_wall/syndicate, -/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) +"re" = ( +/obj/structure/table/reinforced, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/ammo_box/magazine/smgm45, +/obj/item/gun/ballistic/automatic/c20r/unrestricted, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "rm" = ( /obj/machinery/button/crematorium{ id = "fscremate"; @@ -469,14 +483,12 @@ /obj/effect/spawner/random/contraband/armory, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"rP" = ( -/obj/effect/mob_spawn/ghost_role/human/syndicatespace, -/obj/machinery/light/small/directional/south, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) -"sg" = ( -/obj/machinery/ore_silo, -/turf/open/floor/mineral/plastitanium, +"sq" = ( +/obj/machinery/door/window/left/directional/south{ + name = "Control Room"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) "sz" = ( /obj/machinery/atmospherics/components/unary/vent_pump{ @@ -491,18 +503,6 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"sK" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/stack/sheet/mineral/titanium{ - amount = 40 - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 15 - }, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) "sL" = ( /obj/structure/chair/comfy, /turf/open/floor/mineral/plastitanium, @@ -562,6 +562,28 @@ "we" = ( /turf/closed/mineral/random/high_chance, /area/space) +"wi" = ( +/obj/machinery/ore_silo, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) +"wn" = ( +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) +"wu" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/plasteel/twenty, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 50 + }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "wK" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" @@ -569,12 +591,10 @@ /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered/virtual_domain) -"wL" = ( -/obj/structure/table/reinforced, -/obj/item/storage/medkit/regular, -/obj/machinery/light/small/directional/north, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) +"xl" = ( +/obj/structure/transit_tube/crossing, +/turf/closed/mineral/random, +/area/virtual_domain/protected_space) "xJ" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -643,10 +663,10 @@ /obj/structure/chair/comfy/shuttle, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"Bm" = ( -/obj/effect/baseturf_helper/virtual_domain, -/turf/closed/indestructible/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +"Bn" = ( +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "BK" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -682,6 +702,10 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"Cy" = ( +/obj/structure/transit_tube/crossing, +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain/protected_space) "CK" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 @@ -711,14 +735,6 @@ /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"Dj" = ( -/obj/structure/table/reinforced, -/obj/item/ammo_box/magazine/smgm45, -/obj/item/ammo_box/magazine/smgm45, -/obj/item/ammo_box/magazine/smgm45, -/obj/item/gun/ballistic/automatic/c20r/unrestricted, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "DA" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -735,6 +751,10 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) +"EF" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "Fp" = ( /obj/structure/tank_dispenser/oxygen, /turf/open/floor/mineral/plastitanium, @@ -790,10 +810,6 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"Ia" = ( -/obj/effect/mob_spawn/ghost_role/human/syndicatespace/captain, -/turf/open/floor/carpet/royalblack, -/area/ruin/space/has_grav/powered/virtual_domain) "Id" = ( /obj/machinery/power/shuttle_engine/huge{ dir = 8 @@ -828,21 +844,22 @@ /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"It" = ( +/turf/open/space/basic, +/area/virtual_domain/protected_space) +"IA" = ( +/obj/structure/cable, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/syndicate, +/obj/item/storage/toolbox/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "IC" = ( /obj/structure/table/reinforced, /obj/item/paper, /obj/item/pen, /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/powered/virtual_domain) -"IH" = ( -/obj/machinery/door/airlock/external/ruin{ - name = "Syndicate Ship Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, -/obj/structure/cable, -/obj/structure/fans/tiny, -/turf/open/floor/plating, -/area/ruin/space/has_grav/powered/virtual_domain) "IV" = ( /obj/machinery/door/airlock/grunge{ name = "Syndicate Ship Airlock" @@ -850,6 +867,10 @@ /obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/plating, /area/ruin/space/has_grav/powered/virtual_domain) +"Jd" = ( +/obj/structure/transit_tube/crossing, +/turf/open/space/basic, +/area/virtual_domain/protected_space) "Jg" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium/red, @@ -866,6 +887,10 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"JM" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/syndicate, +/area/virtual_domain/protected_space) "JN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2{ @@ -883,10 +908,26 @@ "Kz" = ( /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"Lk" = ( -/obj/structure/transit_tube/crossing, -/turf/closed/mineral/random, -/area/space) +"Lo" = ( +/obj/structure/filingcabinet, +/obj/machinery/door/window/left/directional/west{ + name = "Syndicate Interior Door"; + req_access = list("syndicate") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/ruin/space/has_grav/powered/virtual_domain) +"LV" = ( +/obj/machinery/door/password/voice/sfc{ + password = null + }, +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/grunge{ + desc = "Vault airlock preventing air from going out."; + name = "Syndicate Vault Airlock" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "Mc" = ( /obj/structure/closet/syndicate{ anchored = 1; @@ -919,6 +960,10 @@ /obj/item/clothing/shoes/combat, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) +"MQ" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) "MR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 4 @@ -926,43 +971,10 @@ /obj/machinery/light/small/directional/south, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"Nm" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"Nr" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 30 - }, -/obj/item/stack/sheet/mineral/silver{ - amount = 30 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) -"Of" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/disk/surgery/forgottenship, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) "Ox" = ( /obj/machinery/atmospherics/components/unary/vent_pump, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"OH" = ( -/obj/structure/cable, -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/syndicate, -/obj/item/storage/toolbox/syndicate, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "OI" = ( /obj/structure/chair/comfy/shuttle{ dir = 1 @@ -970,18 +982,12 @@ /obj/structure/cable, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"PR" = ( -/obj/machinery/door/password/voice/sfc{ - password = null +"Pv" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") }, -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/grunge{ - desc = "Vault airlock preventing air from going out."; - name = "Syndicate Vault Airlock" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, /turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/protected_space) "Qg" = ( /obj/machinery/suit_storage_unit/syndicate{ helmet_type = /obj/item/clothing/head/helmet/space/syndicate/black; @@ -997,12 +1003,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"QF" = ( -/obj/structure/table/reinforced, -/obj/item/dualsaber/green, -/obj/machinery/light/small/directional/east, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "QG" = ( /obj/structure/tank_dispenser/oxygen, /turf/closed/mineral/random, @@ -1016,6 +1016,9 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"RD" = ( +/turf/closed/wall/r_wall/syndicate, +/area/virtual_domain/protected_space) "RQ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ @@ -1023,10 +1026,6 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/powered/virtual_domain) -"RU" = ( -/obj/machinery/suit_storage_unit/syndicate, -/turf/open/floor/mineral/plastitanium, -/area/ruin/space/has_grav/powered/virtual_domain) "Sc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1065,17 +1064,36 @@ "Sz" = ( /turf/open/floor/iron/dark, /area/ruin/space/has_grav/powered/virtual_domain) +"SD" = ( +/obj/structure/closet/crate/secure/gear{ + req_access = list("syndicate") + }, +/obj/item/melee/energy/sword/saber/red, +/obj/machinery/light/small/directional/north, +/turf/open/floor/pod/dark, +/area/virtual_domain/protected_space) "SX" = ( /obj/machinery/vending/medical/syndicate_access/cybersun, /turf/open/floor/plastic, /area/ruin/space/has_grav/powered/virtual_domain) -"TB" = ( -/turf/closed/indestructible/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +"Ta" = ( +/obj/structure/transit_tube/station/dispenser/reverse{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) +"TT" = ( +/obj/machinery/suit_storage_unit/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "UQ" = ( /obj/structure/sign/poster/contraband/syndicate_recruitment, /turf/closed/wall/r_wall/syndicate, /area/ruin/space/has_grav/powered/virtual_domain) +"UR" = ( +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, +/turf/open/floor/carpet/royalblack, +/area/ruin/space/has_grav/powered/virtual_domain) "Vk" = ( /obj/machinery/porta_turret/syndicate/energy{ dir = 4; @@ -1091,10 +1109,10 @@ }, /turf/template_noop, /area/virtual_domain/safehouse) -"Wd" = ( -/obj/structure/sign/poster/contraband/tools, +"Wl" = ( +/obj/structure/sign/poster/contraband/c20r, /turf/closed/wall/r_wall/syndicate, -/area/ruin/space/has_grav/powered/virtual_domain) +/area/virtual_domain/protected_space) "Wy" = ( /obj/structure/closet/crate/secure/gear{ req_access = list("syndicate") @@ -1104,6 +1122,11 @@ }, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) +"WD" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie, +/turf/open/floor/mineral/plastitanium, +/area/ruin/space/has_grav/powered/virtual_domain) "WR" = ( /obj/machinery/power/port_gen/pacman/super{ anchored = 1 @@ -1118,14 +1141,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/powered/virtual_domain) -"Yb" = ( -/obj/structure/closet/crate/secure/gear{ - req_access = list("syndicate") - }, -/obj/item/clothing/head/helmet/space/syndicate/black/engie, -/obj/item/clothing/suit/space/syndicate/black/engie, -/turf/open/floor/pod/dark, -/area/ruin/space/has_grav/powered/virtual_domain) "Yi" = ( /obj/effect/landmark/bitrunning/cache_spawn, /turf/open/floor/plastic, @@ -1151,6 +1166,22 @@ }, /turf/open/floor/carpet/royalblack, /area/ruin/space/has_grav/powered/virtual_domain) +"Yq" = ( +/obj/machinery/camera/xray{ + c_tag = "Cargo pod"; + dir = 9; + network = list("fsci"); + screen_loc = "" + }, +/obj/structure/closet, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/card/id/advanced/black/syndicate_command/crew_id, +/obj/item/card/id/advanced/black/syndicate_command/crew_id, +/obj/item/card/id/advanced/black/syndicate_command/crew_id, +/turf/open/floor/mineral/plastitanium, +/area/virtual_domain/protected_space) "Yr" = ( /obj/effect/baseturf_helper/virtual_domain, /turf/template_noop, @@ -1171,13 +1202,6 @@ "Zb" = ( /turf/open/floor/plastic, /area/ruin/space/has_grav/powered/virtual_domain) -"Zf" = ( -/obj/machinery/door/window/left/directional/south{ - name = "Control Room"; - req_access = list("syndicate") - }, -/turf/open/floor/mineral/plastitanium/red, -/area/ruin/space/has_grav/powered/virtual_domain) "ZA" = ( /obj/machinery/power/shuttle_engine/propulsion{ dir = 8 @@ -2127,7 +2151,7 @@ ru ru vp ru -Ia +UR Ci ru Sq @@ -2196,7 +2220,7 @@ Mc uP uP uP -rP +WD ru qx qx @@ -2264,10 +2288,10 @@ qx qx nB nB -TB -TB -TB -TB +mm +mm +mm +mm nB nB qx @@ -2321,12 +2345,12 @@ qx qx nB nB -TB -TB -Yb -Yb -TB -Bm +mm +mm +kF +kF +mm +JM nB qx qx @@ -2370,7 +2394,7 @@ Sd uP uP uP -gD +MQ ru qx qx @@ -2379,12 +2403,12 @@ qx nB QG nB -TB -aN -bG -bG -sK -TB +mm +wu +if +if +nn +mm nB qx qx @@ -2415,7 +2439,7 @@ qx qx Ig ru -fc +Lo ru tv ki @@ -2437,12 +2461,12 @@ qx nB we nB -TB -iU -bG -bG -Nr -TB +mm +SD +if +if +bg +mm nB we qx @@ -2495,12 +2519,12 @@ qx qx nB nB -TB -Nm -bG -bG -Of -TB +mm +Pv +if +if +kD +mm nB nB qx @@ -2553,12 +2577,12 @@ qx nB nB nB -TB -TB -PR -TB -TB -TB +mm +mm +LV +mm +mm +mm nB nB nB @@ -2611,21 +2635,21 @@ qx nB nB we -ru -ru -uP -sg -ru -ru -nB -nB -nB -nB -qx -qx -qx -qx -qx +RD +RD +wn +wi +RD +RD +dx +dx +dx +dx +It +It +It +It +It sM sM sM @@ -2669,21 +2693,21 @@ qx qx nB nB -qU -Fp -uP -uP -li -cj -Lk -Lk -fd -fd -fd -fd -fd -fd -fd +Wl +ec +wn +wn +Ta +Cy +xl +xl +Jd +Jd +Jd +Jd +Jd +Jd +Jd BN Vq sM @@ -2727,21 +2751,21 @@ qx qx nB nB -ru -eB -uP -uP -uP -ru -nB -qx -qx -qx -qx -qx -qx -qx -qx +RD +Yq +wn +wn +wn +RD +dx +It +It +It +It +It +It +It +It sM sM sM @@ -2785,12 +2809,12 @@ qx qx qx nB -ru -wL -oM -uP -dw -ru +RD +gN +Bn +wn +EF +RD yZ nB nB @@ -2843,12 +2867,12 @@ qx qx qx qx -Wd -OH -oM -uP -RU -ru +cA +IA +Bn +wn +TT +RD we nB nB @@ -2901,12 +2925,12 @@ BK BK BK BK -IH -oM -oM -uP -RU -ru +mW +Bn +Bn +wn +TT +RD nB nB qx @@ -2959,12 +2983,12 @@ qx qx qx qx -iL -cZ -uP -uP -RU -ru +fz +cd +wn +wn +TT +RD nB nB qx @@ -3017,12 +3041,12 @@ qx qx qx nB -ru -ru -Dj -QF -ru -ru +RD +RD +re +mY +RD +RD nB nB qx @@ -3076,10 +3100,10 @@ qx nB nB nB -ru -ru -ru -ru +RD +RD +RD +RD nB nB we @@ -3344,7 +3368,7 @@ qx ru Kz dz -Zf +sq Kz CK Kz @@ -3354,7 +3378,7 @@ vU Kz CK Kz -gw +ja Kz Jg ru diff --git a/code/__DEFINES/_flags.dm b/code/__DEFINES/_flags.dm index 74af498376e..6d034fb0f40 100644 --- a/code/__DEFINES/_flags.dm +++ b/code/__DEFINES/_flags.dm @@ -129,6 +129,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define EVENT_PROTECTED (1<<15) /// This Area Doesn't have Flood or Bomb Admin Messages, but will still log #define QUIET_LOGS (1<<16) +/// This area does not allow virtual entities to enter. +#define VIRTUAL_SAFE_AREA (1<<17) /* These defines are used specifically with the atom/pass_flags bitmask diff --git a/code/__DEFINES/dcs/signals/signals_bitrunning.dm b/code/__DEFINES/dcs/signals/signals_bitrunning.dm index 74d418182d5..150c2608022 100644 --- a/code/__DEFINES/dcs/signals/signals_bitrunning.dm +++ b/code/__DEFINES/dcs/signals/signals_bitrunning.dm @@ -44,3 +44,6 @@ // Ladder /// from /obj/structure/hololadder/disconnect() #define COMSIG_BITRUNNER_LADDER_SEVER "bitrunner_ladder_sever" + +/// Sent when a server console is emagged +#define COMSIG_BITRUNNER_SERVER_EMAGGED "bitrunner_server_emagged" diff --git a/code/modules/bitrunning/antagonists/ghost_role.dm b/code/modules/bitrunning/antagonists/ghost_role.dm new file mode 100644 index 00000000000..3bf88e16dfb --- /dev/null +++ b/code/modules/bitrunning/antagonists/ghost_role.dm @@ -0,0 +1,22 @@ +/datum/antagonist/domain_ghost_actor + name = "Virtual Domain Actor" + antagpanel_category = ANTAG_GROUP_GLITCH + job_rank = ROLE_GLITCH + show_to_ghosts = TRUE + suicide_cry = "FATAL ERROR" + ui_name = "AntagInfoGlitch" + +/datum/antagonist/domain_ghost_actor/on_gain() + . = ..() + owner.current.AddComponent(/datum/component/npc_friendly) //Just in case + forge_objectives() + +/datum/antagonist/domain_ghost_actor/forge_objectives() + var/datum/objective/bitrunner_ghost_fluff/objective = new() + objective.owner = owner + objectives += objective + +/datum/objective/bitrunner_ghost_fluff + +/datum/objective/bitrunner_ghost_fluff/New() + explanation_text = "Defend your domain from the intruders!" diff --git a/code/modules/bitrunning/areas.dm b/code/modules/bitrunning/areas.dm index 8ac07bcc8f2..31a2fef9f3c 100644 --- a/code/modules/bitrunning/areas.dm +++ b/code/modules/bitrunning/areas.dm @@ -26,7 +26,7 @@ /area/virtual_domain/safehouse name = "Virtual Domain Safehouse" - area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | VIRTUAL_SAFE_AREA icon_state = "bit_safe" requires_power = FALSE sound_environment = SOUND_ENVIRONMENT_ROOM @@ -49,3 +49,13 @@ icon_state = "bit_space" area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | HIDDEN_AREA +///Areas that virtual entities should not be in + +/area/virtual_domain/protected_space + name = "Virtual Domain Safe Zone" + area_flags = UNIQUE_AREA | NOTELEPORT | ABDUCTOR_PROOF | EVENT_PROTECTED | VIRTUAL_SAFE_AREA + icon_state = "bit_safe" + +/area/virtual_domain/protected_space/fullbright + static_lighting = FALSE + base_lighting_alpha = 255 diff --git a/code/modules/bitrunning/components/virtual_entity.dm b/code/modules/bitrunning/components/virtual_entity.dm new file mode 100644 index 00000000000..12e5305ba9a --- /dev/null +++ b/code/modules/bitrunning/components/virtual_entity.dm @@ -0,0 +1,36 @@ +/// Handles all special considerations for "virtual entities" such as bitrunning ghost roles or digital anomaly antagonists. +/datum/component/virtual_entity + ///The cooldown for balloon alerts, so the player isn't spammed while trying to enter a restricted area. + COOLDOWN_DECLARE(OOB_cooldown) + +/datum/component/virtual_entity/Initialize(obj/machinery/quantum_server) + . = ..() + + if(quantum_server.obj_flags & EMAGGED) + jailbreak_mobs() //This just sends a message and self-deletes, a bit messy but it works. + return + + RegisterSignal(parent, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(on_parent_pre_move)) + RegisterSignal(quantum_server, COMSIG_ATOM_EMAG_ACT, PROC_REF(jailbreak_mobs)) + +///Prevents entry to a certain area if it has flags preventing virtual entities from entering. +/datum/component/virtual_entity/proc/on_parent_pre_move(atom/movable/source, atom/new_location) + SIGNAL_HANDLER + + var/area/location_area = get_area(new_location) + if(!location_area) + stack_trace("Virtual entity entered a location with no area!") + return + + if(location_area.area_flags & VIRTUAL_SAFE_AREA) + source.balloon_alert(source, "out of bounds!") + COOLDOWN_START(src, OOB_cooldown, 2 SECONDS) + return COMPONENT_MOVABLE_BLOCK_PRE_MOVE + +///Self-destructs the component, allowing free-roam by all entities with this restriction. +/datum/component/virtual_entity/proc/jailbreak_mobs() + SIGNAL_HANDLER + + to_chat(parent, span_big("You shiver for a moment, then suddenly feel a sense of clarity you haven't felt before. \ + You can go anywhere, do anything! You could leave this simulation right now if you wanted!")) + qdel(src) diff --git a/code/modules/bitrunning/server/_parent.dm b/code/modules/bitrunning/server/_parent.dm index 06b49d790a5..113ed6b2126 100644 --- a/code/modules/bitrunning/server/_parent.dm +++ b/code/modules/bitrunning/server/_parent.dm @@ -88,11 +88,14 @@ /obj/machinery/quantum_server/emag_act(mob/user, obj/item/card/emag/emag_card) . = ..() + if(obj_flags & EMAGGED) + return + obj_flags |= EMAGGED glitch_chance = 0.09 add_overlay(mutable_appearance('icons/obj/machines/bitrunning.dmi', "emag_overlay")) - balloon_alert(user, "bzzzt...") + balloon_alert(user, "system jailbroken...") playsound(src, 'sound/effects/sparks1.ogg', 35, vary = TRUE) /obj/machinery/quantum_server/update_appearance(updates) diff --git a/code/modules/bitrunning/server/threats.dm b/code/modules/bitrunning/server/threats.dm index 6c42322d0cf..58c6cbdd33c 100644 --- a/code/modules/bitrunning/server/threats.dm +++ b/code/modules/bitrunning/server/threats.dm @@ -2,6 +2,7 @@ /obj/machinery/quantum_server/proc/add_threats(mob/living/threat) spawned_threat_refs.Add(WEAKREF(threat)) SEND_SIGNAL(src, COMSIG_BITRUNNER_THREAT_CREATED) + threat.AddComponent(/datum/component/virtual_entity, src) /// Choses which antagonist role is spawned based on threat /obj/machinery/quantum_server/proc/get_antagonist_role() diff --git a/code/modules/bitrunning/spawners.dm b/code/modules/bitrunning/spawners.dm new file mode 100644 index 00000000000..4f8aab322ff --- /dev/null +++ b/code/modules/bitrunning/spawners.dm @@ -0,0 +1,51 @@ +/obj/effect/mob_spawn/ghost_role/human/virtual_domain + outfit = /datum/outfit/pirate + prompt_name = "a virtual domain debug entity" + flavour_text = "You probably shouldn't be seeing this, contact a coder!" + you_are_text = "You are NOT supposed to be here. How did you let this happen?" + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/Initialize(mapload) + . = ..() + notify_ghosts("The [name] has been created. The virtual world calls for aid!", src, "Virtual Insanity!") + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/special(mob/living/spawned_mob, mob/mob_possessor) + . = ..() + + spawned_mob.mind.add_antag_datum(/datum/antagonist/domain_ghost_actor) + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate + name = "Virtual Pirate Remains" + desc = "Some inanimate bones. They feel like they could spring to life at any moment!" + density = FALSE + icon = 'icons/effects/blood.dmi' + icon_state = "remains" + prompt_name = "a virtual skeleton pirate" + you_are_text = "You are a virtual pirate. Yarrr!" + flavour_text = "You have awoken, without instruction. There's a LANDLUBBER after yer booty. Stop them!" + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/pirate/special(mob/living/spawned_mob, mob/mob_possessor) + . = ..() + spawned_mob.fully_replace_character_name(spawned_mob.real_name, "[pick(strings(PIRATE_NAMES_FILE, "generic_beginnings"))][pick(strings(PIRATE_NAMES_FILE, "generic_endings"))]") + +/obj/effect/mob_spawn/ghost_role/human/virtual_domain/syndie + name = "Virtual Syndicate Sleeper" + icon = 'icons/obj/machines/sleeper.dmi' + icon_state = "sleeper_s" + prompt_name = "a virtual syndicate operative" + you_are_text = "You are a virtual syndicate operative." + flavour_text = "You have awoken, without instruction. Alarms blare! We are being boarded!" + outfit = /datum/outfit/virtual_syndicate + spawner_job_path = /datum/job/space_syndicate + +/datum/outfit/virtual_syndicate + name = "Virtual Syndie" + id = /obj/item/card/id/advanced/chameleon + id_trim = /datum/id_trim/chameleon/operative + uniform = /obj/item/clothing/under/syndicate + back = /obj/item/storage/backpack + gloves = /obj/item/clothing/gloves/tackler/combat/insulated + shoes = /obj/item/clothing/shoes/combat + implants = list(/obj/item/implant/weapons_auth) + +/datum/outfit/virtual_syndicate/post_equip(mob/living/carbon/human/user, visualsOnly) + user.faction |= ROLE_SYNDICATE diff --git a/tgstation.dme b/tgstation.dme index 34a6ac16c70..e3b896d2934 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3556,16 +3556,19 @@ #include "code\modules\bitrunning\event.dm" #include "code\modules\bitrunning\job.dm" #include "code\modules\bitrunning\outfits.dm" +#include "code\modules\bitrunning\spawners.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\ghost_role.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\npc_friendly.dm" +#include "code\modules\bitrunning\components\virtual_entity.dm" #include "code\modules\bitrunning\objects\byteforge.dm" #include "code\modules\bitrunning\objects\clothing.dm" #include "code\modules\bitrunning\objects\debug.dm"